ICSP ou microcontrôleur préprogrammé


11

J'ai conçu un PCB pour une production à petite échelle; actuellement, je les soude à la main par lots de 20 à la fois. Ce PCB utilise un microcontrôleur ATMEGA168 que je programme avant de souder à la carte - cette méthode fonctionne bien pour moi en ce moment.

Je cherche à faire fabriquer et assembler un lot de 200 planches car le produit que j'ai conçu semble être très populaire. Serait-il préférable d'inclure un en-tête ICSP sur la carte ou de continuer à préprogrammer les CI moi-même? La reprogrammation de la carte après la fabrication ou l'assemblage n'est pas une fonctionnalité voulue ou requise.

Je ne sais pas comment cela se fait dans un environnement de production à plus grande échelle? L'ajout d'un en-tête ICSP augmenterait légèrement le coût de fabrication. La pré-programmation est-elle donc une pratique standard?

Réponses:


18

Je suggérerais toujours d'inclure un en-tête dans ce genre de quantité (petite). Si vous atteignez de plus grandes quantités, vous pouvez envisager des tampons pour broches pogo (vous devrez faire un montage pour maintenir le PCB en alignement) ou, dans vos quantités, vous pouvez utiliser l'un des câbles Tag Connect qui ne nécessitent que des trous et non peuplés coussinets (ils s'enclenchent sur la planche).

entrez la description de l'image ici

En plus de vous permettre de récupérer d'un besoin de mise à jour de la programmation, cela vous permettra d'avoir une maison de montage peupler les cartes avant la programmation, ce qui pourrait améliorer la logistique.

La pré-programmation est certainement une option, même en quantité de production (vous pouvez même demander au distributeur de le faire pour vous), mais elle semble être principalement utilisée dans les applications les plus simples. Habituellement, les puces sur les cartes sont programmées (ou peuvent être programmées) après assemblage.


Cela ressemble à une bonne solution - merci pour votre aide, ces câbles semblent assez utiles!
edcs

1
Tag-Connect fonctionne bien pour cela. Vous pouvez également obtenir des versions sans les goupilles de verrouillage (le plastique noir à droite de l'image) qui dépendent plutôt de la pression ou d'une plaque arrière qui capture les broches. Notez que le câble illustré coûte environ 50 $. Sur le plan positif, les contacts PCB sont d'environ 0 $.
Ben Jackson du

20

Si vous avez l'espace pour un en-tête, c'est probablement la meilleure option, et les broches légèrement décalées que Majenko recommande sont un bon moyen de maintenir un connecteur en place sans ajouter de complexité.

Mais voici une approche alternative, pour les cartes où vous n'avez pas d'espace pour insérer un en-tête, ou où l'en-tête standard n'accomplit pas toutes vos tâches de programmation / configuration / test de carte.

Étant donné un PCB de petit facteur de forme comme ici (33 mm de diamètre) entrez la description de l'image ici

vous pouvez le disposer avec des points de test (étiquetés au dos) entrez la description de l'image ici

et créer un appareil de test pour celui-ci (à l'aide de broches Pogo ) entrez la description de l'image ici

Cela nécessite une certaine capacité d'usinage et au moins un foret à colonne (car les broches pogo doivent être exactement verticales). Cependant, si vous êtes prêt à risquer un prototype de PCB, vous pouvez le fixer sur une feuille de matériau et le "repérer" à travers les trous du point de test pour placer les broches pogo exactement au bon endroit. (J'obtiens 10 PCB pour un prix ridiculement bas d'Itead, donc en perdre un n'est pas un gros problème).

Avec un tour et un broyeur, faire les piliers et les pinces pour localiser le PCB exactement au bon endroit est un jeu d'enfant, mais ce n'est pas trop difficile avec des outils plus simples.

Il vous suffit ensuite d'adapter chaque PCB, de le programmer et de le tester. Le connecteur lâche va normalement aux broches d'en-tête d'un TI Launchpad, utilisé pour programmer ce MPU (TI MSP430) via l'interface SBW, mais le même principe s'appliquerait à JTAG ou à d'autres interfaces. (Le câble marron en haut est un câble coaxial transportant un signal d'étalonnage vers un compteur de fréquence). entrez la description de l'image ici

La base en acajou poli est facultative; Il se trouve que je préfère un style steampunk pour mes appareils de test.


C'est une excellente réponse et merci d'avoir pris le temps de fournir une réponse détaillée aussi utile! Je ne l'ai pas marqué comme réponse parce que dans mon cas, j'ai l'espace pour tenir dans un en-tête ICSP mais c'est quelque chose que je garderai à l'esprit si je dois construire quelque chose de minuscule.
edcs

2
C'est un joli gabarit (ou est-ce un accessoire?). Y a-t-il quelque chose pour régler l'angle du PCB ou est-il simplement aligné à l'œil?
Spehro Pefhany

Je regarde les broches pogo à travers les trous visibles du point de test avant de pousser vers le bas et de faire pivoter les pinces. Brut mais ça marche. Sur un PCB plus grand, je recommanderais quelques broches de positionnement, par exemple dans les trous de montage du PCB.
Brian Drummond

13

J'ajoute toujours de l'espace pour un en-tête ICSP, même s'il n'est pas rempli. J'ai trois façons de le faire en ce moment en fonction de la situation.

L'une de mes conceptions a un en-tête à pas très fin pour lequel j'ai construit un adaptateur (un fil à âme solide de 0,6 mm est parfait pour cela):

entrez la description de l'image ici

J'utilise ce connecteur lorsque l'espace est absolu. (Désolé, il est flou, l'appareil photo de mon téléphone est nul).

Le deuxième arrangement que j'utilise souvent est d'incorporer l'ICSP dans un autre en-tête. Si les broches ICSP peuvent également être utilisées comme broches GPIO et que vous pouvez les utiliser avec une connexion détachable, il est assez simple d'inclure toutes les autres connexions ICSP dont vous pourriez avoir besoin (MCLR, par exemple) à un coût minimal. Ensuite, il vous suffit de brancher votre programmeur dans cet en-tête avec un adaptateur qui devrait être assez simple à réaliser.

La troisième façon consiste à fournir une empreinte d'en-tête "décalée" ou "décalée" pour ICSP. Je l'utilise principalement sur les cartes de développement où l'utilisateur final peut vouloir faire ICSP mais ne veut pas ruiner sa carte en soudant un en-tête de manière permanente. Cette empreinte permet à un en-tête standard de s'emboîter et d'établir un bon contact solide sans aucune soudure:

entrez la description de l'image ici

Lorsque vous commencez à traiter des quantités beaucoup plus importantes, il peut certainement être plus rentable de demander au fabricant de puces de préprogrammer les puces pour vous avec votre micrologiciel. Je pense que tous les principaux fabricants fournissent cette installation.


Merci pour la réponse détaillée - informations certainement utiles ici! Je n'ai pas accepté votre réponse car je vais utiliser le câble Tag Connect suggéré, bien que la méthode des broches décalées fonctionnerait tout aussi bien.
edcs

Atmel le propose définitivement en option.
Ignacio Vazquez-Abrams

2
L'empreinte de tête décalée est pure génie. +1
Vladimir Cravero

5

Si l'on utilise un processeur qui peut être reprogrammé en circuit, je recommanderais fortement que les cartes soient conçues de manière à permettre son utilisation, même si l'utilisation réelle de la fonctionnalité nécessiterait de construire un luminaire à cette fin spécifique et on ne le fait pas 'ai pas l'intention d'en avoir un. Si un problème de micrologiciel est découvert après la fabrication d'un grand lot de cartes, la construction d'un appareil qui peut reprogrammer ces cartes peut être beaucoup moins cher que de devoir les retravailler ou les reconstruire.

Dans certains cas, une bonne approche peut être de sélectionner la disposition d'E / S d'une carte de sorte que les broches du contrôleur nécessaires à la reprogrammation en circuit soient affectées à des fins qui, naturellement, les exposent à des points de contact facilement accessibles. Par exemple, une carte conçue pour être utilisée avec des contacts à dôme métallique peut avoir les contacts eux-mêmes câblés aux broches de programmation en circuit. Une telle conception ne nécessiterait pas de consacrer de l'espace dans la disposition pour un connecteur de programmation, mais - surtout si le contact de la batterie était également généralement dimensionné, laissez un connecteur de programmation s'en sortir avec de simples contacts à ressort.

Notez que cela n'a pas nécessairement d'importance si le code semble être bien testé; les changements d'un lot de puces au suivant peuvent toujours provoquer des problèmes inattendus. Par exemple, j'ai conçu un produit qui était censé s'éteindre sous le contrôle du processeur en ayant la sortie du processeur "haute" sur une broche alors qu'elle était censée être "allumée". Sur le premier lot de 10 000 unités, tout fonctionnait bien, mais sur un lot ultérieur, le processeur commençait à mal fonctionner lorsque sa tension atteignait environ 2 volts et pouvait ramener cette broche à "haut"; la sortie "haute" de 2 volts était à peine suffisante pour rallumer l'appareil. Étant donné que le processeur a été spécifié pour rester en mode veille jusqu'à IIRC 1,6 volts, il a été possible de corriger le problème en reprogrammant les unités afin qu'elles passent en mode veille lors de l'activation de leur état d'arrêt. Si une telle reprogrammation n'avait pas été possible, des retouches beaucoup plus coûteuses (ou bien la mise au rebut et la reconstruction) auraient été nécessaires.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.