Brochage JTAG et SWD : embases de débogage Arm
Le JTAG utilise quatre signaux obligatoires (TCK, TMS, TDI, TDO) et le SWD, son équivalent Arm à deux fils, n’en utilise que deux (SWCLK, SWDIO), sur les mêmes broches. Trois embases dominent : le JTAG Arm 20 broches au pas de 2,54 mm, le Cortex Debug 10 broches au pas de 1,27 mm et sa version 20 broches avec trace ETM.
Par Hugues Orgitello · Mis à jour le ·
Cortex Debug, 10 broches, pas de 1,27 mm
L’embase la plus courante sur les cartes Cortex-M récentes. Noms SWD puis JTAG quand une broche porte les deux. La broche 7 est retirée pour servir de détrompeur.
| Broche | Signal | Sens | Description |
|---|---|---|---|
| 1 | VTref | Tension de référence de la cible, lue par la sonde pour ses niveaux logiques (Alimentation) | |
| 2 | SWDIO / TMS | E/S | Données SWD bidirectionnelles, ou sélection de mode JTAG (Signal) |
| 3 | GND | Masse (Masse) | |
| 4 | SWCLK / TCK | Entrée | Horloge de débogage, fournie par la sonde (Signal) |
| 5 | GND | Masse (Masse) | |
| 6 | SWO / TDO | Sortie | Sortie de trace SWO, ou données JTAG sortantes (Signal) |
| 7 | KEY | Pas de broche (détrompeur) (Non connectée) | |
| 8 | NC / TDI | Entrée | Données JTAG entrantes, non utilisée en SWD (Signal) |
| 9 | GNDDetect | Masse, permet à la cible de détecter la sonde (Masse) | |
| 10 | nRESET | E/S | Reset de la cible, actif bas (Signal) |
Cortex Debug + ETM, 20 broches, pas de 1,27 mm
Les broches 1 à 10 reprennent l’embase 10 broches ; les broches 11 à 20 ajoutent la trace parallèle ETM sur 4 bits.
| Broche | Signal | Sens | Description |
|---|---|---|---|
| 1 | VTref | Tension de référence de la cible, lue par la sonde pour ses niveaux logiques (Alimentation) | |
| 2 | SWDIO / TMS | E/S | Données SWD ou TMS (Signal) |
| 3 | GND | Masse (Masse) | |
| 4 | SWCLK / TCK | Entrée | Horloge de débogage (Signal) |
| 5 | GND | Masse (Masse) | |
| 6 | SWO / TDO | Sortie | Trace SWO ou TDO (Signal) |
| 7 | KEY | Pas de broche (détrompeur) (Non connectée) | |
| 8 | NC / TDI | Entrée | TDI en JTAG (Signal) |
| 9 | GNDDetect | Masse de détection de sonde (Masse) | |
| 10 | nRESET | E/S | Reset de la cible, actif bas (Signal) |
| 11 | GND / TgtPwr+Cap | Masse, ou alimentation de la cible par la sonde (Masse) | |
| 12 | TRACECLK | Sortie | Horloge de trace ETM (Signal) |
| 13 | GND / TgtPwr+Cap | Masse, ou alimentation de la cible par la sonde (Masse) | |
| 14 | TRACEDATA0 | Sortie | Donnée de trace, bit 0 (Signal) |
| 15 | GND | Masse (Masse) | |
| 16 | TRACEDATA1 | Sortie | Donnée de trace, bit 1 (Signal) |
| 17 | GND | Masse (Masse) | |
| 18 | TRACEDATA2 | Sortie | Donnée de trace, bit 2 (Signal) |
| 19 | GND | Masse (Masse) | |
| 20 | TRACEDATA3 | Sortie | Donnée de trace, bit 3 (Signal) |
JTAG Arm 20 broches, pas de 2,54 mm
L’embase historique des sondes J-Link, ULINK et de nombreuses cartes d’évaluation. Toutes les broches paires de 4 à 20 sont des masses côté cible. Attention : SEGGER indique que les broches 14 à 20 d’une J-Link sont réservées et ne sont pas forcément reliées à la masse dans la sonde.
| Broche | Signal | Sens | Description |
|---|---|---|---|
| 1 | VTref | Tension de référence de la cible, lue par la sonde pour ses niveaux logiques (Alimentation) | |
| 2 | Vsupply | Alimentation optionnelle selon Arm ; non connectée dans la plupart des sondes (Alimentation) | |
| 3 | nTRST | Entrée | Reset de la logique JTAG, actif bas, optionnel (Signal) |
| 4 | GND | Masse (Masse) | |
| 5 | TDI | Entrée | Données JTAG entrantes (Signal) |
| 6 | GND | Masse (Masse) | |
| 7 | TMS / SWDIO | E/S | Sélection de mode JTAG, ou données SWD (Signal) |
| 8 | GND | Masse (Masse) | |
| 9 | TCK / SWCLK | Entrée | Horloge de débogage (Signal) |
| 10 | GND | Masse (Masse) | |
| 11 | RTCK | Sortie | Horloge de retour, pour l’horloge adaptative (Signal) |
| 12 | GND | Masse (Masse) | |
| 13 | TDO / SWO | Sortie | Données JTAG sortantes, ou trace SWO (Signal) |
| 14 | GND | Masse (Masse) | |
| 15 | nRESET | E/S | Reset système de la cible, actif bas (aussi nommé nSRST) (Signal) |
| 16 | GND | Masse (Masse) | |
| 17 | NC | Non connectée (anciennement DBGRQ) (Non connectée) | |
| 18 | GND | Masse (Masse) | |
| 19 | NC | Non connectée (anciennement DBGACK ; certaines sondes y fournissent 5 V) (Non connectée) | |
| 20 | GND | Masse (Masse) |
Tag-Connect TC2030 (SWD), 6 pastilles
Empreinte sans connecteur : le câble à pointes à ressort se pose sur six pastilles du PCB. Affectation du câble TC2030-CTX pour l’embase Cortex 10 broches.
| Broche | Signal | Sens | Description |
|---|---|---|---|
| 1 | VTref | Tension de référence de la cible, lue par la sonde pour ses niveaux logiques (Alimentation) | |
| 2 | SWDIO | E/S | Données SWD (Signal) |
| 3 | nRESET | E/S | Reset de la cible, actif bas (Signal) |
| 4 | SWCLK | Entrée | Horloge SWD (Signal) |
| 5 | GND | Masse (Masse) | |
| 6 | SWO | Sortie | Trace SWO (Signal) |
Une carte à rendre débogable et testable en production, puis à verrouiller avant expédition ? Nous concevons le port de débogage, le banc de programmation et la stratégie de protection.
JTAG ou SWD ?
Sur un Cortex-M, le SWD fait tout ce dont le développement a besoin (programmation, points d’arrêt, lecture mémoire) avec deux fils, plus SWO pour la trace printf. Le JTAG reste utile pour chaîner plusieurs composants sur une même interface (FPGA, CPLD, processeur) et pour le test de production par boundary scan (IEEE 1149.1).
Les erreurs de conception les plus fréquentes
VTref non relié. La sonde lit VTref pour régler ses niveaux. Laissé en l’air, la sonde ne détecte pas la cible, ou pilote ses signaux à la mauvaise tension. VTref se relie à l’alimentation des E/S du microcontrôleur, pas à l’entrée de la carte.
nRESET non câblé. Sans lui, la sonde ne peut pas reprendre la main sur un firmware qui désactive les broches SWD ou passe en veille profonde dès le démarrage. Gardez un rappel au niveau haut (souvent 10 kΩ) et un condensateur modeste.
Port de débogage laissé ouvert en production. Un JTAG ou un SWD accessible permet de lire le firmware et les clés. Sur un produit connecté, verrouillez-le (niveaux de protection de lecture, fusibles de débogage) avant expédition : c’est aussi une attente du Cyber Resilience Act.
FAQ
- Quelle est la différence entre JTAG et SWD ?
- Le JTAG (IEEE 1149.1) est un standard multi-fournisseurs à 4 ou 5 fils qui permet de chaîner plusieurs composants. Le SWD est l’interface de débogage Arm à 2 fils (SWCLK, SWDIO), qui partage les broches TCK et TMS. Sur un Cortex-M, le SWD suffit pour programmer et déboguer.
- Comment relier une sonde 20 broches à une embase 10 broches ?
- Avec un adaptateur 20 broches 2,54 mm vers 10 broches 1,27 mm, vendu par les fabricants de sondes. Le câblage n’est pas broche à broche : VTref, SWDIO, SWCLK, SWO et nRESET changent de numéro (1, 7, 9, 13 et 15 côté 20 broches ; 1, 2, 4, 6 et 10 côté 10 broches).
- À quoi sert la broche VTref ?
- Elle donne à la sonde la tension d’E/S de la cible, pour que ses tampons pilotent les signaux au bon niveau (1,8 V, 3,3 V ou 5 V). Elle ne sert pas à alimenter la carte. Sans elle, la plupart des sondes refusent de se connecter.
- Faut-il désactiver le JTAG sur un produit en série ?
- Sur un produit connecté, oui, ou au minimum le protéger. Un port de débogage ouvert permet d’extraire le firmware et les secrets. Les microcontrôleurs offrent des niveaux de protection en lecture ou des fusibles qui le verrouillent, parfois de façon irréversible.
- Arm, Cortex-M Debug Connectors
- SEGGER Knowledge Base, 20-pin J-Link Connector
- Tag-Connect, TC2030-CTX datasheet
- IEEE 1149.1, Standard Test Access Port and Boundary-Scan Architecture (document payant ou réservé aux membres)
Tableaux établis à partir de ces documents et recoupés avec les fiches techniques des fabricants. Vérifiez toujours la fiche technique du connecteur que vous utilisez : certains fabricants numérotent différemment.
- Cybersécurité IoT industriel : sécuriser une flotte déployée
- Cyber Resilience Act : la conformité des produits connectés
- DevOps embarqué et tests automatisés sur banc
- Développement de firmware embarqué
Autres brochages