PEmicro-erlebniswelt

Programación Flash automatizada con C

La línea PEmicro de programadores autónomos Cyclone ofrece una solución rápida, robusta y automatizada para la programación de microprocesadores a escala de producción. Sin embargo, las instalaciones de producción pueden desear un nivel de automatización aún mayor que el que ofrece el Cyclone con un solo botón. PEmicro ofrece varias opciones para automatizar el control, como una aplicación de consola, comunicación por protocolo Ethernet / serie o el SDK incluido en la nueva Suite de Control Cyclone de PEmicro. En este artículo analizamos el uso del SDK para automatizar el control de la programación y la flexibilidad y escalabilidad que ofrece a nuestros clientes.

NOTA: Este ejemplo se muestra en C. El código y las aplicaciones de demostración de las interfaces del SDK de Control Cyclone se incluyen para GCC, LabView, Microsoft Visual C, Microsoft Visual C # y Delphi / FPC.

1. Introducción - Control de un Ciclón a través del PC

El nuevo SDK de Control del Ciclón de PEmicro proporciona al desarrollador una DLL (Biblioteca de Enlace Dinámico), aplicaciones de ejemplo y documentación de apoyo para que las aplicaciones de software personalizadas puedan controlar directamente el Ciclón.

La información de los datos binarios, la información del algoritmo, las operaciones de programación y otros ajustes se almacenan juntos en una imagen SAP que se guarda directamente en la memoria FLASH del Cyclone. Las operaciones de programación pueden iniciarse en el Cyclone con sólo pulsar un botón. Sin embargo, el SDK permite que un PC emita una orden al Ciclón para iniciar la misma secuencia de programación y también proporciona otras funciones, como la posibilidad de añadir datos dinámicos a cada tarjeta que se esté programando y la posibilidad de restaurar la información de errores.

Utilizar un PC para controlar el ciclón mejora la funcionalidad de las operaciones de programación autónomas e introduce nuevas funciones que antes no estaban disponibles. Las siguientes secciones explican las funciones del SDK y proporcionan ejemplos prácticos para utilizar en tu propia línea de producción automatizada.

2. Utilizar el SDK - Ejemplo sencillo

Using_the_SDK__8211__Simple_Example

El ejemplo de código anterior muestra una operación muy básica soportada por el SDK. A continuación se muestran los pasos que seguimos:

Dirígete al ciclón deseado especificando su nombre ("Fixture1Ciclón1"). También se puede especificar la enumeración de puertos ("USB1", "ETHERNET1" o "COM1") o la dirección IP ("192.168.1.10") del dispositivo. El "handle" del Cyclone se devuelve y se utiliza para identificar el Cyclone en todas las llamadas a funciones posteriores.
Envía una orden al Cyclone para que inicie las operaciones de programación especificadas en la Imagen 1. Estas operaciones se especificaron durante la creación de la imagen.
Espera a que el Cyclone complete las operaciones de programación antes de continuar.
Comprueba si hay errores durante la programación y devuelve el código de error y un mensaje al usuario.
Finaliza la sesión actual con el Cyclone.

3. Uso del SDK - Funciones Avanzadas

a.) Programar el número de serie
El Cyclone ya dispone de un mecanismo de programación del número de serie integrado en la imagen SAP. El Cyclone puede rastrear e incrementar automáticamente el número de serie después de que una tarjeta haya sido programada con éxito. Los números de serie también se pueden programar como datos dinámicos en las tarjetas de destino a través del SDK. En este caso, no se utiliza la capacidad de número de serie del Cyclone. En su lugar, la aplicación que llama proporciona los datos dinámicos y los programa después de que ya se hayan programado los datos de la imagen principal.

Programming_a_serial_number

Nota: Las siguientes funciones de marcador de posición se utilizan para simplificar el ejemplo y no las proporciona el paquete de control automatizado:

get_serial_from_file
increment_serial_number
save_serial_back_to_file
El código del ejemplo anterior se basa en el ejemplo sencillo anterior, que indica al ciclón que realice las operaciones de programación autónoma de la imagen almacenada en el ciclón. A continuación, programamos un número de serie dinámico de 2 bytes en la dirección 0x1000 del procesador de destino. A continuación, el número de serie se incrementa y se escribe en un archivo para su uso posterior.

El SDK ofrece mucha flexibilidad al tratar con números de serie. Este ejemplo de código puede modificarse fácilmente para programar datos dinámicos que no sean secuenciales. Por ejemplo, si queremos programar la fecha actual o un número de lote. Este ejemplo de código también puede ampliarse para utilizar varios ciclones (ver apartado 5) que compartan un número de serie incremental entre todas las unidades del ciclón. Cualquiera de estos requisitos puede cumplirse fácilmente escribiendo tu propia aplicación personalizada utilizando el SDK.

b.) Actualizar automáticamente la imagen almacenada en el Ciclón

Automatically_update_image_stored_on_the_Cyclone

Éste es un ejemplo muy sencillo de cómo garantizar que la imagen almacenada en un Cyclone está siempre actualizada. Se realiza una comparación entre la imagen que hay actualmente en el Cyclone y un archivo de imagen en una ubicación específica del PC anfitrión. Si no coincide, actualizamos la imagen. Después continuamos con las operaciones normales de programación, tal y como se muestra en los ejemplos anteriores.

c.) Trabajar con propiedades
Los ajustes del Ciclón, de la red del Ciclón y de las imágenes guardadas pueden recuperarse ahora directamente de un Ciclón utilizando el mecanismo de propiedades. Con las propiedades de la imagen, puedes leer información como el CRC de la imagen, el número de serie actual y los ajustes de alimentación. Con las propiedades del ciclón, puedes leer o establecer valores como el nombre del ciclón, que puede utilizarse para abrir el ciclón en el futuro. Puedes ver una lista de categorías y propiedades en el archivo de cabecera de los ejemplos de programación incluidos en el SDK.

Working_with_properties

La rutina getPropertyList devuelve una lista de categorías válidas y sus propiedades. La rutina getPropertyValue devuelve el valor de la categoría y la propiedad que pases como argumentos.

 

4. Utilización del SDK - Ejemplo de funcionamiento en pasillo

En ejemplos anteriores, hemos tratado algunos usos del SDK con una sola unidad de ciclón. Dado que el PC anfitrión envía una información de control mínima para controlar cada ciclón, un único PC puede controlar en realidad varias unidades de ciclón simultáneamente.

Gang_Operation_Example

Aquí empezamos a programar 3 unidades Cyclone distintas conectadas al PC anfitrión. Esto también funciona si todos los Ciclones están conectados a una mezcla de puertos diferentes. Luego esperamos a que terminen antes de continuar. Básicamente, estamos programando 3 unidades distintas en paralelo. Esto puede ampliarse fácilmente hasta 100 unidades Cyclone en red controladas en paralelo desde un único PC anfitrión.

Más información - Configurar una imagen de programación autónoma
El primer paso es siempre crear las imágenes autónomas reales que se almacenarán en el Cyclone. Estas imágenes contienen el algoritmo necesario para programar la FLASH / EEPROM, los datos binarios reales que se van a programar, la secuencia de operaciones de programación y muchos ajustes personalizados del Cyclone. Con la utilidad PEmicro para crear imágenes del ciclón, el usuario puede configurar el orden de las imágenes autónomas.

Setting_Up_a_Stand_Alone_Programming_Image

Arriba hay una captura de pantalla del cuadro de diálogo de la utilidad de creación de imágenes ciclón que permite al usuario configurar la imagen autónoma. El cuadro de la derecha muestra los pasos de programación y el orden en que se realizan.

En primer lugar, seleccionamos el algoritmo adecuado para nuestro procesador. En este ejemplo, utilizamos el NXP Kinetis KL25Z128.
A continuación, especificamos el archivo objeto de destino que representa los datos binarios que se van a programar en la memoria FLASH del procesador. Aquí utilizamos un archivo S-Record de Motorola.
Una vez especificados el algoritmo y el archivo objeto de destino, podemos empezar a programar. Normalmente, borramos el dispositivo para asegurarnos de que está vacío, programamos el objetivo y comprobamos que el contenido se ha escrito correctamente. Si seleccionas la opción Iniciar asistente de script, la utilidad creará automáticamente la secuencia de programación por ti.

vorletzt

Además de la secuencia de programación, también hay ajustes para el Cyclone que podemos configurar. En la captura de pantalla anterior, utilizamos los relés de alimentación del Cyclone Universal para proporcionar los 3,0 voltios para encender nuestro procesador. De esta forma no necesitamos una fuente de alimentación independiente para nuestra placa objetivo, lo que simplifica nuestra línea de producción.

Finally_image_Description

Por último, damos la descripción de la imagen para que podamos identificarla fácilmente más adelante. Este es el texto que se mostrará en la pantalla del Ciclón. Con la opción "Guardar imagen en disco" podemos guardar esta imagen y su configuración como un archivo .SAP para su uso futuro con el SDK.

Programador Ciclón PEmicro

pemicro cyclone fx universalCyclone FX Universal Header Layout
Cyclone Universal FX
CYCLONE-FX-UNIV
El PEmicro Cyclone FX Universal es un programador autónomo para ARM y procesadores de 8/16/32 bits.

1.369,00 €*
PEmicro cyclone lc universalpemicro cyclone lc universal header layout
Cyclone LC Universal
CYCLONE-LC-UNIV
El PEmicro Cyclone LC Universal es un programador autónomo para ARM y procesadores de 8/16/32 bits.

979,00 €*
PEmicro cyclone lc armpemicro cyclone lc arm header layout
Cyclone LC ARM
CYCLONE-LC-ARM
El PEmicro Cyclone LC ARM es un programador autónomo para procesadores ARM Cortex M.

799,00 €*