Choisir un connecteur de débogage/programmation pour un microcontrôleur

Résumé TL;DR : pour ARM SWD, TI Spy-Bi-Wire ou Microchip ICD, utilisez l'empreinte Tag-Connect No-Legs avec les affectations de broches/pads standard, et procurez-vous des câbles Tag-Connect.

Lors de la conception d'appareils utilisant des microcontrôleurs, il faut prévoir un connecteur de débogage et de programmation. Celui-ci peut être utilisé uniquement pour le développement, lors de l'écriture et du débogage du logiciel, ou pourrait également être laissé dans les unités de production, pour la programmation en usine.

Les fabricants et les outilleurs ont fait en sorte que nous vivions dans un monde où il existe une multitude de connecteurs de débogage avec beaucoup de confusion autour d'eux. C'est pourquoi nous nous retrouvons avec ceci :

Alors, quel connecteur choisir pour une nouvelle conception ?

Cet article se concentre principalement sur les dispositifs ARM dotés de 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 (JTAG à 2 fils), le Microchip ICD, ou même des composants nécessitant un ensemble plus complet de broches JTAG.

Connecteurs de débogage populaires

Certains des choix courants qui sont souvent envisagés :

  • JTAG 10 broches sur un connecteur IDC 0,1". Habituellement, un connecteur mâle est utilisé. Inconvénient : c'est énorme, et le connecteur coûte de l'argent.
  • Connecteur Cortex Debug utilisant un micro-connecteur 0,05" (10 broches ou 20 broches, Samtec FTSH-110 et FTSH-105). Le connecteur 10 broches est raisonnablement petit et disponible en tant que composant CMS, mais plus cher que les connecteurs IDC.
  • Connecteur IDC 20 broches 0,1". Vous n'envisagez pas sérieusement ce dinosaure, n'est-ce pas ? Il est plus grand que certaines des cartes que j'ai conçues.
  • Ensemble personnalisé de 4 ou 6 broches (ou vias, ou pastilles de cuivre). Le problème ici est la partie "personnalisée". Cela reviendra inévitablement vous mordre à l'avenir, le jour où votre connecteur personnalisé se cassera à l'usine et que vous devrez en expédier un nouveau depuis l'étranger, alors que la production est arrêtée.
  • Empreinte Tag-Connect 6 broches dans l'une des variantes (avec jambes ou sans jambes). Notez qu'il n'y a pas de connecteur ici : juste une empreinte standardisée sur le PCB.
  • Tag-Connect 6 broches + Tag-Connect 10 broches (pour les signaux ETM) : pour cette combinaison, il existe même un câble pré-construit disponible, avec un connecteur IDC 20 broches et des affectations de broches standard ARM Cortex 20 broches.

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 séries de prototypes plus importantes, 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 à broches pogo ont un avantage évident ici car elles ne nécessitent aucun composant à placer 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 les pogo-pins : La deuxième considération majeure est la taille et l'espace requis sur la carte. Les seuls concurrents sont le micro-connecteur 10 broches de 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 de 0,05" (celui-ci provient d'une carte de développement Nordic Semiconductor nRF52832, la PCA10040) :

Avec ou sans pattes ?

Il existe deux variantes d'un câble connecteur Tag-Connect : une avec "jambes" et une "sans jambes". 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 lui appliquer une force continue. C'est très 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 "legs" (et le connecteur) fonctionne beaucoup mieux. Les pattes agissent comme de petits clips, donc une fois que vous insérez le connecteur, elles s'enclenchent et maintiennent les broches pogo serrées contre la carte, pour une durée indéfinie.

Le problème avec l'empreinte « avec pattes » est sa taille : elle est nettement plus grande que la variante « sans pattes ». Pire encore, elle nécessite quatre grands trous dans la carte. Les grands trous sont toujours un problème : ils doivent (évidemment) traverser toutes les couches, et vous avez également besoin d'une zone d'exclusion autour d'eux. Cela signifie que l'impact d'une empreinte « avec pattes » sur votre conception est beaucoup plus important que celui de la variante « sans pattes ».

Pour les unités de production, où la connexion ne sera probablement effectuée qu'une seule fois au cours de la 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 certainement l'empreinte "sans pattes", qui économise de l'espace sur la carte. Mais que faire pour les prototypes ? D'un côté, vous pouvez vous permettre l'espace sur la carte, mais de l'autre, vous ne voulez pas redessiner le PCB juste parce que vous devez supprimer les trous dans la révision finale.

Heureusement, il existe une autre solution. Tag-Connect vend un petit clip 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 clips ont tendance à s'user avec le temps (ils 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 ainsi que la refonte des cartes.

Utiliser une affectation de signal standard

J'ai vu du matériel sur le terrain où les concepteurs utilisaient une empreinte Tag-Connect pour ARM SWD (sur un Cortex-M0), mais assignaient 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 se retrouve avec une empreinte incompatible, ce qui causera inévitablement des problèmes à l'avenir.

Aspects pratiques

Tag-Connect recommande qu'aucun composant ne soit placé (ou tracé routé) de l'autre côté de l'empreinte. Bien que ce soit une bonne recommandation, on n'a pas toujours ce luxe, surtout sur de petites cartes avec des contraintes de routage strictes.

Comme je l'ai découvert, vous pouvez vous en sortir en plaçant les 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 cependant d'utiliser un morceau d'isolant entre les composants et le clip de retenue, 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 complexe.

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 :

Critique

Tout n'est pas rose avec Tag-Connect. Le site web n'est pas bien organisé, il est donc difficile de trouver les informations que vous cherchez. Il y a une multitude de variantes proposées, et même si la plupart des gens auront besoin d'un seul type de câble, il n'est pas mis en évidence. Malheureusement, cela semble être une tradition chez les entreprises fabriquant des équipements de débogage et de programmation dans le monde de l'embarqué.

Le deuxième reproche que j'ai est que l'entreprise propose des bibliothèques CAO téléchargeables avec des empreintes Tag-Connect, mais déclare que :

Ces fichiers sont fournis « TELS QUELS » et sans aucune garantie qu'ils soient complets, exempts d'erreurs ou adaptés à l'utilisation. Vérifiez soigneusement les empreintes importées par rapport à la dernière fiche technique fournie sur le site Web de Tag-Connect (voir ci-dessous). En particulier, vérifiez la taille des trous, la numérotation des broches et portez une attention particulière à la couche de masque de pâte à braser pour vous assurer qu'aucune pâte à braser n'est déposée sur les plages d'accueil de l'empreinte.

Si vous regardez dans les fichiers ZIP fournis, il y aura généralement plusieurs variantes d'empreinte pour un logiciel de CAO donné. Laquelle dois-je utiliser ? Et pourquoi est-ce ma responsabilité de la vérifier ?

Je pense que Tag-Connect devrait nettoyer cette bibliothèque et fournir un ensemble d'empreintes prises en charge, au moins pour les logiciels de CAO les plus populaires, sans clause de non-responsabilité. Cela devrait faire partie de la valeur de cette solution.

Conclusion

Tout bien considéré, Tag-Connect reste la meilleure solution de débogage et de programmation prête à l'emploi. Je recommanderais de standardiser là-dessus et de l'utiliser dans toutes vos conceptions.

Articles de blog précédents : KiCon 2019 (2019-03-27)
Articles de blog ultérieurs : Quoi de neuf : Mai 2020 (2020-05-16)

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 (BOM) et de la production à petite échelle. Elle garde une trace de l'endroit où les composants sont stockés, quels sont les niveaux de stock actuels et quels composants sont utilisés dans quels projets/nomenclatures.

Index du blog

KiCon 2019 (2019-03-27)
Tags (2016-04-26)