Résumé TL;DR : pour ARM SWD, TI Spy-Bi-Wire, ou Microchip ICD, utilisez l'empreinte Tag-Connect No-Legs avec des affectations de broches/pads standard, et obtenez des câbles Tag-Connect.
Lors de la conception de dispositifs qui utilisent des microcontrôleurs, il faut prévoir un connecteur de débogage et de programmation. Cela peut être utilisé uniquement pour le développement, lors de l'écriture et du débogage du logiciel, ou peut également être laissé dans les unités de production, pour la programmation en usine.
Les fabricants et les fabricants d'outils ont fait en sorte que nous vivions dans un monde où il y a une multitude de connecteurs de débogage avec beaucoup de confusion autour d'eux. C'est pourquoi nous finissons avec ceci :
Alors, quel connecteur choisir pour un nouveau design ?
Cet article se concentre principalement sur les appareils ARM qui ont l'interface SWD (Single-Wire Debug), mais il est également applicable à d'autres composants, comme le MSP430 de Texas Instruments qui utilise le protocole Spy Bi-Wire (2-wire JTAG), le ICD de Microchip, ou même des composants qui nécessitent un ensemble plus complet de broches JTAG.
Certaines des options courantes qui sont souvent considérées :
Une observation immédiate est que la plupart de ces connecteurs nécessitent, eh bien, des connecteurs. C'est un composant supplémentaire que vous devez placer sur la carte, ce qui coûte de l'argent. Pour les unités de production ou les prototypes en plus grande quantité, ce connecteur ne sera utilisé qu'une seule fois dans toute la durée de vie du produit, ce qui est un gaspillage.
Les solutions Tag-Connect ou les empreintes personnalisées avec des connecteurs basés sur des broches pogo ont un avantage évident ici en ce qu'elles ne nécessitent aucun composant à être placé sur le PCB, donc le coût du connecteur de débogage par carte chute à 0, ce qui est génial !
Voici à quoi ressemble une empreinte Tag-Connect sur une vraie carte :
Et voici à quoi ressemble le câble avec des broches pogo : La deuxième considération majeure est la taille, et les exigences d'espace de la carte qui en résultent. Les seuls concurrents sont le micro-connecteur 10 broches 0,05" et une empreinte Tag-Connect 6 broches. Le micro-connecteur 10 broches est en fait un peu plus petit dans une direction, mais la différence n'est pas significative. Voici à quoi ressemble un micro-connecteur 10 broches 0,05" (celui-ci provient d'une carte de développement Nordic Semiconductor nRF52832, la PCA10040) :
Il existe deux variantes d'un câble connecteur Tag-Connect : une avec des "pattes" et une sans "pattes". Quelle est la différence ?
Tag-Connect utilise des broches pogo, qui ont des ressorts à l'intérieur et poussent contre le PCB. Si vous voulez que le connecteur reste en place, vous devez continuellement appliquer une force dessus. C'est bien pour une programmation rapide, où vous pouvez utiliser une main pour maintenir le connecteur en place et une autre pour lancer ce travail de programmation, mais cela ne fonctionne pas très bien pour des sessions de débogage prolongées. Pour cela, l'empreinte "jambes" (et le connecteur) fonctionne beaucoup mieux. Les jambes agissent comme de petits clips, donc une fois que vous insérez le connecteur, ils se clipsent en place et maintiennent les broches pogo serrées contre la carte, pour une durée indéfinie.
Le problème avec l'empreinte "jambes" est sa taille : elle est nettement plus grande que la variante "sans jambes". Ce qui est pire, c'est qu'elle nécessite quatre grands trous dans la carte. Les grands trous sont toujours un problème : ils doivent (évidemment) passer à travers toutes les couches, et vous avez besoin d'une zone de dégagement autour d'eux. Cela signifie que l'impact d'une empreinte "jambes" sur votre conception est beaucoup plus grand que celui de la variante "sans jambes".
Pour les unités de production, où la connexion ne sera probablement faite qu'une seule fois dans la durée de vie d'un produit, et peut facilement être tenue à la main tout le temps, il n'y a pas de question : vous préférez définitivement l'empreinte "sans jambes", qui économise de l'espace sur la carte. Mais que faire à propos des prototypes ? D'une part, vous pouvez vous permettre l'espace de la carte, mais d'autre part, vous ne voulez pas redessiner le PCB juste parce que vous devez enlever les trous dans la révision finale.
Heureusement, il y a une autre solution. Tag-Connect vend une petite pince de retenue. C'est un morceau de PCB avec trois prises qui s'adaptent aux broches du câble Tag-Connect. Ce n'est pas une solution mécaniquement parfaite et les pinces ont tendance à s'user avec le temps (elles sont aussi incroyablement faciles à perdre !), mais en pratique, cela fonctionne assez bien.
Ma recommandation est de toujours opter pour l'empreinte "sans pattes" et les câbles, d'acheter un tas de clips de retenue, et d'économiser de l'espace sur la carte et de ne pas avoir à la redessiner.
J'ai vu du matériel dans la nature, où les concepteurs ont utilisé une empreinte Tag-Connect pour ARM SWD (sur un Cortex-M0), mais ont attribué les signaux différemment. Il est probable que la motivation était d'obscurcir l'interface.
Ce n'est pas quelque chose que je recommanderais : l'obfuscation est facilement découverte, et on finit par avoir un empreinte incompatible, qui causera inévitablement des problèmes à l'avenir.
Tag-Connect recommande de ne pas placer de composants (ou de tracer des routes) de l'autre côté de l'empreinte. Bien que ce soit une bonne recommandation, on n'a pas toujours ce luxe, surtout sur les petites cartes avec des contraintes de disposition serrées.
Comme je l'ai découvert, vous pouvez vous en sortir en plaçant des composants de l'autre côté, même lorsque vous utilisez le clip de retenue pour maintenir le câble en place. Je suggérerais d'utiliser un morceau d'isolant entre les composants et le clip de retenue, cependant, pour éviter tout court-circuit possible (le papier fonctionne bien). Bien que ce ne soit pas la pratique recommandée, cela fonctionne, bien que la fixation du connecteur de débogage en place devienne un peu plus compliquée.
Voici un exemple d'une carte prototype (veuillez excuser la qualité de soudure du prototype) où les composants sont placés dans la zone de l'empreinte de débogage :
Tout n'est pas rose avec Tag-Connect. Le site web n'est pas bien organisé, il est donc difficile de trouver l'information que vous recherchez. Il existe une multitude de variantes proposées, et même si la plupart des gens n'auront besoin que d'un seul type de câble, il n'est pas mis en évidence. Malheureusement, cela semble être une tradition chez les entreprises qui fabriquent du matériel de débogage et de programmation dans le monde embarqué.
La deuxième critique que j'ai est que l'entreprise propose des bibliothèques CAD téléchargeables avec des empreintes Tag-Connect, mais déclare que :
Ces fichiers sont fournis 'EN L'ÉTAT' et sans garantie qu'ils sont complets, exempts d'erreurs ou adaptés à l'utilisation. Vérifiez soigneusement les décalcomanies importées par rapport à la dernière fiche technique fournie sur le site web de Tag-Connect (voir ci-dessous). En particulier, vérifiez les tailles des trous, la numérotation des broches, et faites particulièrement attention à la couche de masque de soudure pour vous assurer qu'aucune pâte à souder n'est déposée sur les pads de l'empreinte.
Si vous regardez dans les fichiers ZIP fournis, il y aura généralement plusieurs variantes d'empreintes pour un même CAD. Lequel dois-je utiliser ? Et pourquoi est-ce à moi de le vérifier ?
Je pense que Tag-Connect devrait nettoyer cette bibliothèque et fournir un ensemble d'empreintes supportées, au moins pour les packages CAD les plus populaires, sans avertissement. Cela devrait faire partie de la valeur de cette solution.
Tout bien considéré, Tag-Connect est toujours la meilleure solution de débogage et de programmation disponible sur le marché. Je recommanderais de le standardiser et de l'utiliser dans tous vos designs.
PartsBox est une application en ligne qui vous permet de prendre le contrôle de votre inventaire de composants électroniques, de la tarification des nomenclatures, et de la production à petite échelle. Elle garde une trace de l'endroit où les composants sont stockés, de ce que sont les niveaux de stock actuels, et de quels composants sont utilisés dans quels projets/nomenclatures.