Question:
Quelles options existe-t-il pour programmer des MCU en production?
Thomas O
2010-11-28 03:31:06 UTC
view on stackexchange narkive permalink

Pour mon projet Super OSD, je vais devoir programmer de gros lots de MCU, probablement environ 10 à 15 cartes par heure. Je pourrais simplement utiliser mon fidèle PICkit 2 pour les programmer (il y en a deux - peut-être trois - sur chaque carte) mais il serait très laborieux de charger chaque fichier (jusqu'à 128 Ko et 256 Ko de taille), lancer le programme et répéter pour chaque MCU, et ne me permettrait probablement pas d'atteindre ma vitesse cible. De plus, les MCU sont montés en surface, je dois donc avoir des en-têtes sur la carte pour permettre cela. Idéalement, j'aimerais supprimer ces en-têtes, mais ce n'est peut-être pas une option.

Alors, quelles sont les options disponibles pour la programmation de masse des MCU - y a-t-il des moyens plus rapides de le faire? Mon budget est en quelque sorte inférieur à 100 USD, donc des choses comme le MPLAB PM3 de Microchip à 895 USD, bien que jolies, ne seraient pas une option.

J'ai affaire à des microcontrôleurs PIC de divers les types. Il y a un PIC16F887, PIC24FJ64GA002 et dsPIC33FJ128GP802. Cependant, je suis également intéressé par les options pour les processeurs AT32 et STM32, car je les utilise peut-être également.

Veuillez noter que je n'envisage pas actuellement de commander des puces auprès des fabricants préprogrammés car le logiciel peut changer au moment où les puces arrivent, et en raison du coût supplémentaire impliqué.

15 planches par heure, soit quatre minutes par planche. Combien de temps faut-il au PICkit 2 pour programmer votre pièce?
@markrages: C'est environ 20 secondes avec une petite base de code (~ 6 Ko). J'imagine qu'avec plus de code, cela pourrait prendre jusqu'à une minute et demie pour chaque carte, ce qui ne me laisse pas beaucoup de répit.
@Markrages, Je peux me porter garant, j'ai écrit un très gros projet avec l'ICD2 LE et le programme prendrait 2 ou 3 minutes. Assez ennuyeux. Avec le pickit 3 cependant, il hurle vite.
Sept réponses:
tcrosley
2010-11-28 06:36:49 UTC
view on stackexchange narkive permalink

Ce que nous faisons pour la production, c'est d'abord charger un programme dans le PIC qui teste la carte (en utilisant une petite carte de test qui vérifie indépendamment que le rail 3.3v est conforme aux spécifications en utilisant quelques comparateurs, puis nous utilisons le ADC sur le PIC pour vérifier tout le reste. Il nous restait assez de broches pour permettre cela (il fallait des résistances supplémentaires pour agir comme diviseurs de tension pour les tensions supérieures à 3 V).

Une fois les tests réussis, le le code de production réel est flashé dans le micro. Quelques tests supplémentaires sont exécutés et le PCB est prêt à être assemblé dans un boîtier.

Tout cela se fait via un programme sur le PC qui ne nécessite qu'un opérateur pour se connecter la carte, cliquez sur un bouton et attendez le résultat PASS / FAIL. Tous les résultats des tests (y compris les lectures ADC) sont enregistrés. L'ensemble du processus (y compris la programmation des PIC via un ICD 3) est contrôlé via le programme PC, qui exécute des scripts batch pour effectuer la programmation proprement dite. La communication avec le PIC pour contrôler les tests se fait via un des UART, dont les broches sont amenées à la carte de test (donc en plus des broches nécessaires à la programmation, nous avons également TX / RX au minimum).

Nous avons installé plusieurs stations comme celle-ci à notre fabricant sous contrat.

D'ailleurs, l'ICD 3 est beaucoup plus rapide que l'ICD 2 (USB 2.0 vs 1.1).

Le pickit 3 fonctionne également sur USB 2.0, c'est pourquoi je l'adore. ICD3 est un peu cher pour moi. Mon entreprise utilise des MSP430, donc c'est assez différent.
Pouvez-vous clarifier comment vous programmez le CI?Votre propre ICSP préparé ou quoi?
@ErikFriesen J'utilise un ICD 3 ou REAL Ice pour les PIC Microchip.Les deux sont probablement trop chers pour la plupart des amateurs (200 $ et 500 $ respectivement).D'autres familles de puces (Freescale, Silicon Labs, etc.) ont leur propre ligne de programmeurs.J'inclus des en-têtes sur les PCB pour me connecter avec les programmeurs.Une fois qu'un appareil est sur le terrain, s'il dispose d'une connectivité sans fil (cellulaire ou WiFi), il peut être mis à jour par liaison radio.
J'ai les deux et le pm3.Le pm3 ne fera pas toutes les pièces sans se connecter au pc sur> X2.15, il se divise sur la ligne pic32.
Kortuk
2010-11-28 06:23:40 UTC
view on stackexchange narkive permalink

Obtenez un pickit 3 et mettez-le en mode programmeur pour aller.

Vous lui dites que vous voulez que le programmeur passe en mode et vous chargez votre rom, alors vous n'avez plus besoin d'un port USB pour plus que de la puissance (oui, vous en avez toujours besoin pour l'alimentation).

Lorsque vous vous connectez aux appareils, vous appuyez sur le bouton du programme et il charge le programme et vous permet de savoir quand il est fait, prend moins de 20 secondes par carte. Ne coûte pas plus de 50 $

Leon Heller
2010-11-28 04:01:23 UTC
view on stackexchange narkive permalink

Le PICkit 2 n'est pas un programmeur de production. Vous avez vraiment besoin d'un ICD 3, qui est classé comme programmeur de production, si vous voulez être sûr que les appareils sont correctement programmés. Vous pouvez également acheter vos puces préprogrammées auprès de Microchip ou d'un distributeur, si vous avez finalisé le code.

Ce serait la bonne façon de procéder.
Veuillez fournir une citation pour le commentaire "programmeur de production". De toute évidence, le Pickit n'est pas suffisamment robuste physiquement pour une application industrielle. Mais les signaux qu'il présente à la cible sont les mêmes que tout autre programmeur. (La signification originale de "programmeur de production" est que certains programmeurs ont pu faire varier la tension d'alimentation et relire le contenu du programme pour vérifier la programmation correcte. Microchip ne l'a pas mentionné dans ses fiches techniques depuis environ une décennie, mais le folklore perdure. . Ironiquement, le PICkit 2 * peut * faire varier la tension d'alimentation ...)
Cela est apparu récemment sur le forum Microchip. La documentation de l'ICD 3 indique qu'il s'agit d'un programmeur de production, contrairement au PICkit 2/3 qui, selon quelqu'un de Microchip, n'était pas des programmeurs de production.
markrages
2010-11-28 05:45:48 UTC
view on stackexchange narkive permalink

La programmation des microcontrôleurs est généralement une petite partie d'un processus de test fonctionnel plus large. À quoi ressemble le reste de votre plan de test?

Pour tout produit non trivial, vous devrez concevoir une autre carte pour tester la carte en cours de production. En général, la carte de test aura une interface informatique et connectera la cible à un équipement de test avec des capacités RS-232 ou GPIB. Ensuite, un ordinateur peut exécuter un script, programmer la carte, puis exécuter les tests appropriés.

Il est également utile que cette carte de test fonctionne pour le développement de micrologiciels. Implémentez suffisamment de tests pour détecter les régressions dans le firmware.

Le début de votre carte de test est probablement le circuit PICkit 2. Le firmware est open-source, il s'occupera de la partie programmation, il a un bootloader pratique, et vous pouvez l'étendre pour faire tout ce dont votre test fonctionnel aura besoin.

J'aime écrire ma production tester des scripts en Python, mais je pense que la norme de l'industrie est Labview.

J'utilise beaucoup Python, mais jamais pour les scripts généraux - en général, je laisse cela à bash / shell ou à Perl. Merci pour les conseils.
Yann Vernier
2010-11-28 04:42:41 UTC
view on stackexchange narkive permalink

Une méthode que vous pouvez utiliser est de créer une pince ou quelque chose qui ressemble à un banc d'essai ( exemple de vidéo) avec des broches pogo, de sorte que vous n'ayez pas besoin de broches à souder pour les connecteurs de programmation. Un connecteur de bord PCB, tel qu'un câble de disquette de style ancien, pourrait être une option moins chère (mais plus exigeante en termes de surface de carte).

Vous devrez trouver un moyen de programmer chaque microcontrôleur, probablement en utilisant soit plusieurs programmeurs ou un fichier batch comme David l'a suggéré. Vous pouvez le combiner avec un gros commutateur (peut-être l'un des commutateurs rotatifs d'un ancien boîtier de commutation de partage d'imprimante, ou quelques relais), pour reconnecter le programmateur d'un PIC à un autre sans déplacer le connecteur.

Les techniques s'appliquent également à d'autres contrôleurs programmables intégrés au système, bien que les contrôleurs compatibles JTAG puissent le rendre encore plus facile car JTAG TAP est conçu pour être enchaîné, il n'y aurait donc pas de déplacement du programmeur de puce à puce. De plus, pour les puces comme les AVR qui peuvent utiliser des niveaux logiques ordinaires pour la programmation, la commutation pourrait devenir plus facile.

Vous n'avez même pas besoin de broches pogo: je mets une broche d'en-tête dans le PICkit 2 et je peux programmer en l'insérant dans les trous de la carte et en appuyant un peu sur le côté, puis en maintenant cette pression jusqu'à ce que la programmation soit terminée.
@Markrages, c'est comme ça que je le fais au travail.
DavidEGrayson
2010-11-28 03:52:18 UTC
view on stackexchange narkive permalink

Il existe un utilitaire de ligne de commande appelé PK2CMD pour Windows et Linux qui vous permet de programmer vos PIC avec PicKit (vous n'avez donc pas besoin d'utiliser MPLAB ou une autre interface graphique). Vous pouvez utiliser votre langage de script préféré pour créer un petit programme qui exécute la commande PK2CMD correcte lorsque vous appuyez sur une touche. Cela rendrait le côté ordinateur de votre production moins laborieux (juste une pression sur une touche par MCU), mais vous auriez toujours besoin d'un moyen de connecter le PicKit à chacun de vos 3 MCU.

mikeselectricstuff
2010-11-28 04:51:27 UTC
view on stackexchange narkive permalink

Le service de programmation de Microchip est très bon marché la dernière fois que je l'ai utilisé, une fois que vous avez couvert le coût d'installation, il est très bon marché - quelques centimes par puce pour les 12F - pas pour les plus haut de gamme. Ils peuvent également faire du marquage / étiquetage, etc. Même si vous avez l'intention de changer le FW, avoir un bootloader préprogrammé peut rendre cela plus facile.

Pour un programmeur de production, j'aime Asix Presto - des tonnes d'options pour des trucs comme la sérialisation, et très rapide



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 2.0 sous laquelle il est distribué.
Loading...