PEmicro-erlebniswelt

Programmation flash automatisée avec C

La ligne de produits PEmicro de programmateurs individuels Cyclone offre une solution rapide, robuste et automatisée pour la programmation de microprocesseurs à l'échelle de la production. Cependant, les installations de production peuvent souhaiter un niveau d'automatisation encore plus élevé que la fonction tactile à un bouton offerte par le Cyclone. PEmicro propose différentes possibilités pour automatiser le contrôle, notamment une application de console, une communication par protocole Ethernet / série ou le SDK inclus dans la nouvelle Cyclone Control Suite de PEmicro. Dans cet article, nous discutons de l'utilisation du SDK pour automatiser le contrôle de programmation et de la flexibilité et de l'évolutivité qu'il offre à nos clients.

REMARQUE : cet exemple est présenté en C. Le code et les applications de démonstration des interfaces Cyclone Control SDK sont inclus pour GCC, LabView, Microsoft Visual C, Microsoft Visual C # et Delphi / FPC.

1. Introduction - Contrôle d'un cyclone via le PC

Le nouveau Cyclone Control SDK de PEmicro offre aux développeurs une DLL (Dynamic Link Library), des exemples d'applications et une documentation de soutien pour que les applications logicielles personnalisées puissent contrôler directement le Cyclone.

Les informations sur les données binaires, les informations sur les algorithmes, les processus de programmation et les autres paramètres sont enregistrés ensemble dans une image SAP qui est directement stockée dans la mémoire FLASH du Cyclone. Les processus de programmation peuvent être lancés sur le Cyclone en appuyant sur un bouton. Cependant, le SDK permet à un PC d'ordonner au Cyclone de lancer la même séquence de programmation et de fournir également d'autres fonctions, comme la possibilité d'ajouter des données dynamiques à chaque carte à programmer et la possibilité de récupérer des informations d'erreur.

L'utilisation d'un PC pour contrôler le cyclone améliore la fonctionnalité des processus de programmation autonomes et introduit de nouvelles fonctions qui n'étaient pas disponibles auparavant. Les sections suivantes expliquent les fonctions du SDK et présentent des exemples pratiques à utiliser dans ta propre ligne de production automatisée.

2. Utiliser le SDK - Exemple simple

Using_the_SDK__8211__Simple_Example

L'exemple de code ci-dessus montre une opération très basique supportée par le SDK. Ci-dessous, tu trouveras les étapes que nous avons suivies :

Adresse-toi au cyclone souhaité en indiquant son nom ("Fixture1Cyclone1"). L'énumération des ports ("USB1", "ETHERNET1" ou "COM1") ou l'adresse IP ("192.168.1.10") de l'appareil peuvent également être indiqués. Le handle du cyclone est renvoyé et utilisé pour identifier le cyclone dans tous les appels de fonction ultérieurs.
Envoyer une commande au cyclone pour lancer les opérations de programmation indiquées dans l'image 1. Ces opérations ont été définies lors de la création de l'image.
Attendre que le Cyclone ait terminé les opérations de programmation avant de continuer.
Vérifier si des erreurs se sont produites pendant la programmation et renvoyer le code d'erreur et un message à l'utilisateur.
Terminer la session en cours avec le Cyclone.

3. Utiliser le SDK - Fonctions avancées

a.) Programmer un numéro de série
Le Cyclone dispose déjà d'un mécanisme de programmation des numéros de série intégré dans l'image SAP. Le Cyclone peut suivre le numéro de série et l'augmenter automatiquement après qu'une carte ait été programmée avec succès. Les numéros de série peuvent aussi être programmés via le SDK comme données dynamiques sur les cartes cibles. Dans ce cas, la capacité de numéro de série du Cyclone n'est pas utilisée. C'est plutôt l'application appelante qui fournit les données dynamiques et les programme après que les données d'image principales aient déjà été programmées.

Programming_a_serial_number

Remarque : les fonctions de remplacement suivantes servent à simplifier l'exemple et ne sont pas fournies par le paquet de contrôle automatisé :

get_serial_from_file
increment_serial_number
save_serial_back_to_file
L'exemple de code ci-dessus est basé sur l'exemple simple précédent, qui demande au cyclone d'exécuter les opérations de programmation indépendantes de l'image stockée sur le cyclone. Ensuite, nous programmons un numéro de série dynamique de 2 octets à l'adresse 0x1000 du processeur cible. Le numéro de série est ensuite incrémenté et réécrit dans un fichier pour une utilisation ultérieure.

Le SDK offre une grande flexibilité dans la gestion des numéros de série. Cet exemple de code peut être facilement modifié pour programmer des données dynamiques qui ne sont pas séquentielles. Par exemple, si nous voulons programmer la date du jour ou un numéro de lot. Cet exemple de code peut également être étendu pour utiliser plusieurs cyclones (voir section 5) qui partagent un numéro de série incrémental entre toutes les unités du cyclone. Chacune de ces exigences peut être facilement satisfaite en écrivant ta propre application personnalisée à l'aide du SDK.

b.) Mettre à jour automatiquement l'image enregistrée dans le cyclone

Automatically_update_image_stored_on_cyclone

C'est un exemple très simple de la manière dont tu peux t'assurer que l'image stockée sur un cyclone est toujours à jour. Une comparaison est effectuée entre l'image qui se trouve actuellement sur le cyclone et un fichier image situé à un certain endroit sur le PC hôte. S'il y a une non-concordance, nous mettons à jour l'image. Ensuite, nous continuons avec les processus de programmation normaux, comme montré dans les exemples précédents.

c.) Travailler avec les propriétés
Les paramètres du cyclone, du réseau du cyclone et de l'image enregistrée peuvent maintenant être récupérés directement depuis un cyclone à l'aide du mécanisme des propriétés. Avec les propriétés de l'image, tu peux lire des informations telles que le CRC de l'image, le numéro de série actuel et les paramètres d'énergie. Avec les propriétés du cyclone, tu peux lire ou définir des valeurs comme le nom du cyclone, qui pourront ensuite être utilisées pour ouvrir le cyclone à l'avenir. Tu peux voir une liste des catégories et des propriétés dans le fichier d'en-tête des exemples de programmation inclus dans le SDK.

Working_with_properties

La routine getPropertyList renvoie une liste de catégories valides et leurs propriétés. La routine getPropertyValue renvoie la valeur de la catégorie et de la propriété que tu as passées en arguments.

 

4. Utiliser le SDK - Exemple de fonctionnement de couloir

Dans des exemples précédents, nous avons discuté de certaines utilisations du SDK avec une seule unité de cyclone. Comme le PC hôte n'envoie que des informations de contrôle minimales pour contrôler chaque cyclone, un seul PC peut en fait contrôler plusieurs unités de cyclone en même temps.

Gang_Operation_Example

Nous commençons ici avec la programmation de 3 unités de cyclones séparées connectées au PC hôte. Cela fonctionne également lorsque tous les cyclones sont connectés à un mélange de ports différents. Ensuite, nous attendons leur finalisation avant de continuer. En gros, nous programmons 3 appareils séparés en parallèle. Cela peut facilement être étendu jusqu'à 100 unités de cyclones dans un réseau qui est contrôlé en parallèle depuis un seul PC hôte.

Plus d'informations - Mise en place d'une image de programmation autonome
La première étape consiste toujours à créer les véritables images autonomes qui seront stockées sur le Cyclone. Ces images contiennent l'algorithme nécessaire pour programmer FLASH / EEPROM, les données binaires réelles à programmer, l'ordre des programmations et de nombreux paramètres du cyclone définis par l'utilisateur. Avec l'utilitaire PEmicro de création d'images de cyclones, l'utilisateur peut configurer les images autonomes de manière appropriée.

Setting_Up_a_Stand_Alone_Programming_Image

En haut, tu peux voir une capture d'écran de la boîte de dialogue dans l'utilitaire de création d'image cyclone, qui permet à l'utilisateur de configurer l'image autonome. Le champ à droite montre les étapes de programmation ainsi que l'ordre dans lequel ces étapes sont exécutées.

Tout d'abord, nous choisissons l'algorithme approprié pour notre processeur. Dans cet exemple, nous utilisons le NXP Kinetis KL25Z128.
Ensuite, nous indiquons le fichier objet cible qui représente les données binaires qui doivent être programmées dans la mémoire FLASH du processeur. Ici, nous utilisons un fichier Motorola S-Record.
Une fois que l'algorithme et le fichier objet cible sont indiqués, nous pouvons commencer la programmation. En général, on efface l'appareil pour s'assurer qu'il est vide, on programme la cible et on vérifie que le contenu a été écrit correctement. Si tu sélectionnes l'option Lancer l'assistant de script, l'utilitaire créera automatiquement la séquence de programmation pour toi.

vorletzt

En plus de la séquence de programmation, il y a aussi des paramètres pour le Cyclone que nous pouvons configurer. Dans la capture d'écran ci-dessus, nous utilisons les relais de puissance du Cyclone Universal pour fournir les 3,0 volts nécessaires à l'allumage de notre processeur. De cette façon, nous n'avons pas besoin d'une alimentation séparée pour notre carte cible, ce qui simplifie notre ligne de production.

Finally_image_Description

Enfin, nous indiquons la description de l'image afin de pouvoir l'identifier facilement par la suite. Il s'agit du texte qui s'affichera sur l'écran de Cyclone. Avec l'option "Enregistrer l'image sur le disque dur", nous pouvons enregistrer cette image et sa configuration en tant que fichier .SAP pour une utilisation future avec le SDK.

PEmicro Cyclone Programmer

pemicro cyclone fx universalCyclone FX Universal Header Layout
Cyclone Universal FX
CYCLONE-FX-UNIV
Le PEmicro Cyclone FX Universal est un programmeur autonome pour les processeurs ARM et 8/16/32 bits.

1 369,00 €*
PEmicro cyclone lc universalpemicro cyclone lc universal header layout
Cyclone LC Universel
CYCLONE-LC-UNIV
Le PEmicro Cyclone LC Universal est un programmeur autonome pour les processeurs ARM et 8/16/32 bits.

979,00 €*
Bras PEmicro cyclone lcpemicro cyclone lc arm header layout
Cyclone LC ARM
CYCLONE-LC-ARM
Le PEmicro Cyclone LC ARM est un programmeur autonome pour les processeurs ARM Cortex M.

799,00 €*