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?
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)
vous pouvez le disposer avec des points de test (étiquetés au dos)
et créer un appareil de test pour celui-ci (à l'aide de broches Pogo )
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).
La base en acajou poli est facultative; Il se trouve que je préfère un style steampunk pour mes appareils de test.
la source
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):
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:
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.
la source
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.
la source