Specifiche elettriche e di segnale dei pin SWD

Gli ingegneri che lavorano con target basati su ARM Cortex conoscono già SWD come un trasporto di debug a due fili. Ciò che ostacola la messa in servizio della PCB non è il protocollo, ma il dettaglio a livello di pin. Valori errati di pull-up, connessioni VTREF mancanti e instradamento delle tracce vicino a nodi di commutazione causano tutti fallimenti intermittenti del debug difficili da ricondurre alla loro origine. Questa pagina copre le specifiche elettriche, di temporizzazione e meccaniche necessarie durante il layout, la selezione dei connettori e il debug della prima scheda. Per un contesto completo del protocollo e dell'architettura, vedere come funziona il livello del protocollo SWD.

Lo scopo qui è strettamente a livello di pin: soglie di tensione, requisiti di pilotaggio, vincoli di pull-up, pinout dei connettori e regole di layout. Queste sono le specifiche che determinano se la connessione di debug è affidabile ad alta velocità, non solo funzionale a basse frequenze di clock su un banco di prova.

Specifiche elettriche, di segnale e meccaniche dei pin SWD

Definizioni dei segnali SWDIO e SWDCLK e parametri elettrici

SWDIO trasporta tutti i dati in entrambe le direzioni attraverso una transazione half-duplex. SWDCLK è pilotato esclusivamente dalla sonda host. Il target non pilota mai SWDCLK. Tale asimmetria è importante quando si pianifica la potenza di pilotaggio: la sonda deve soddisfare le soglie di ingresso del target attraverso l'intero percorso del cavo e della traccia.

Le soglie di tensione seguono le regole standard I/O CMOS, scalate alla tensione di alimentazione del target. Di seguito sono riportati i valori tipici per le tensioni comuni della banca I/O.

Parametro I/O da 1,8 V (tipico) I/O da 3,3 V (tipico) I/O tolleranti ai 5 V (tipico)
VIH (min) 0.65 × VDDIO 0.65 × VDDIO 0.65 × VDDIO
VIL (max) 0.35 × VDDIO 0.35 × VDDIO 0.35 × VDDIO
VOH (min) 0,8 × VDDIO 0,8 × VDDIO 0,8 × VDDIO
VOL (max) 0,2 × VDDIO 0,2 × VDDIO 0,2 × VDDIO
SWDCLK Max (pratico) 4–8 MHz 8–10 MHz 8–10 MHz

ARM ADIv5.2 definisce un limite teorico di SWDCLK di 50 MHz. In pratica, le parassità del PCB e le impostazioni di pilotaggio dell'I/O spingono il limite affidabile a 10 MHz o inferiore per la maggior parte dei layout di produzione. Eseguire a 1–4 MHz durante il primo avvio è una pratica standard, con un aumento della velocità solo dopo che l'integrità del segnale è stata confermata.

SWDIO richiede un pull-up a VDDIO. Una resistenza da 10 kΩ è il valore più comune. Durante la fase di inversione di linea – quando il bus passa da pilotato dalla sonda a pilotato dal target – la linea fluttua brevemente. Senza il pull-up, quella fluttuazione può essere registrata come un basso spurio, corrompendo la risposta ACK. Valori di pull-up inferiori a 1 kΩ aumentano il consumo di corrente e possono stressare lo stadio di pilotaggio; valori superiori a 100 kΩ rallentano il fronte di salita abbastanza da causare violazioni dei tempi di setup a frequenze di clock più elevate.

Il pull-up su SWDIO non è facoltativo: la sua assenza causa fallimenti intermittenti dell'ACK che sembrano errori di protocollo, non guasti hardware.

La capacità di ingresso si accumula dal pad dell'MCU, dal tracciamento del PCB, dallo stub del connettore e dal cavo. Ogni elemento aggiunge capacità. Un tracciamento più lungo di 50 mm combinato con uno stub del connettore e un cavo da 150 pF può limitare il tempo di salita abbastanza da impedire un funzionamento affidabile sopra i 2–4 MHz. Mantenere il carico capacitivo totale al di sotto di 50–100 pF quando si mira a un funzionamento a 10 MHz.

Pin SWD Opzionali e Ausiliari — SWDnRST, SWO e VTREF

Oltre a SWDIO e SWDCLK, quattro segnali aggiuntivi compaiono sui connettori di debug completi. Ciascuno ha requisiti elettrici specifici che è facile trascurare durante la selezione del connettore.

nRESET (SWDnRST) è open-drain, attivo basso. La sonda lo porta a livello basso per forzare un reset hardware; la linea rimane alta tramite un pull-up esterno. Un pull-up da 10 kΩ verso VDDIO è tipico. Alcune famiglie di MCU richiedono una larghezza minima dell'impulso di reset di 100 µs o più: controllare il datasheet del target. Omettere nRESET dal connettore di debug crea un rischio reale sui target che sono stati bloccati o configurati erroneamente: senza capacità di reset hardware, la sonda non può recuperare il dispositivo.

SWO (Serial Wire Output) è un'uscita di trace a filo singolo. Supporta due modalità di codifica: UART/NRZ e Manchester. NRZ è più comune perché la maggior parte delle sonde lo supporta ed è più semplice da decodificare. La velocità in baud dipende dal divisore del clock SWO del target e dall'ingresso UART della sonda. Le velocità tipiche variano da 115.200 bps a diversi Mbps. Un connettore che espone SWO aggiorna un header minimo a 2 pin a un header di debug completo con capacità di trace in tempo reale.

VTREF è l'ingresso di tensione di riferimento della sonda. La sonda lo utilizza per impostare le soglie dei suoi level-shifter in modo da corrispondere alla tensione I/O del target. Se lasciato scollegato, la sonda utilizza una tensione predefinita, solitamente 3,3 V, che causa errori di level-shifting sui target da 1,8 V. Collegare VTREF direttamente alla linea VDDIO del target, vicino al connettore. L'assorbimento di corrente su questo pin è basso (tipicamente inferiore a 1 mA), quindi non è necessario alcun buffering.

GND Il posizionamento è spesso sottodimensionato. Almeno un pin GND dovrebbe trovarsi adiacente ai pin di segnale. Il ground bounce e l'induttanza del percorso di ritorno aumentano con la distanza tra i conduttori di segnale e di ritorno. Sui connettori a 10 pin, il pattern alternato segnale/GND esiste proprio per minimizzare questo aspetto.

Numero di pin nelle varianti comuni del connettore di debug ARM Cortex:

Variante connettore Pin Segnali inclusi
Minimo 2 pin 2 SWDIO, SWDCLK
Compatto a 4 pin 4 SWDIO, SWDCLK, GND, VTREF
5 pin (Tag-Connect TC2030) 5 SWDIO, SWDCLK, GND, VTREF, nRESET
ARM Cortex a 10 pin (1,27 mm) 10 SWDIO, SWDCLK, SWO, nRESET, VTREF, GND ×4
ARM Cortex a 20 pin (2,54 mm) 20 Segnali logici identici, GND aggiuntivo, pin di codifica

Per scheda di debug hardware e configurazione connessione SWD, il numero di pin del connettore influisce direttamente su quali segnali opzionali la sonda può utilizzare: confermare la compatibilità prima di finalizzare la scelta dell'header.

Impronta PCB, Standard Pinout Connettore e Regole di Layout

10-pin 1.27mm debug header and Tag-Connect land pattern on PCB with decoupling capacitor

Il connettore ARM Cortex a 10 pin con passo da 1,27 mm è lo standard attuale per i design compatti. La sua assegnazione dei pin è fissa:

Pin Segnale Direzione
1 VTREF Target → Probe
2 SWDIO Bidirezionale
3 GND —
4 SWDCLK Probe → Target
5 GND —
6 NC / KEY —
7 SWO Target → Probe
8 NC —
9 GND —
10 nRESET Sonda → Target

Il connettore a 20 pin con passo da 2,54 mm mappa gli stessi segnali logici con pin GND aggiuntivi e una chiave meccanica. È ancora comune su schede industriali più grandi dove il passo da 1,27 mm è impraticabile da saldare a mano o ispezionare visivamente.

Le footrpint Tag-Connect utilizzano pin a molla contro uno schema di piste — nessun corpo connettore viene saldato. La variante TC2030 trasporta SWDIO, SWDCLK, VTREF, GND e nRESET in un ordine di segnale compatibile. Le schede di produzione utilizzano spesso pad Tag-Connect piuttosto che un header popolato per risparmiare costi e spazio sulla scheda. Il compromesso è che la footprint richiede una superficie piana e accessibile e la clip di ritenzione corretta per mantenere il contatto durante la programmazione.

Dopo aver confermato la tua footprint, il passo successivo è scegliere un programmatore SWD per il tuo target — il range di tensione della sonda e la compatibilità dei pin variano tra le famiglie di sonde.

Le regole di layout PCB per i pin SWD derivano dai vincoli elettrici sopra elencati:

  • Mantenere i trace di SWDCLK e SWDIO corti: meno di 50 mm dal pad MCU al connettore è un obiettivo ragionevole.
  • Abbinare le lunghezze dei trace tra i due segnali per evitare skew a frequenze di clock più elevate.
  • Instradare lontano da alimentatori switching, driver per motori e trace di oscillatori ad alta frequenza.
  • Posizionare un condensatore di disaccoppiamento da 100 nF su VTREF vicino al pin del connettore.
  • Evitare vias nel tratto tra la porta di debug MCU e il connettore: ogni via aggiunge induttanza e una potenziale discontinuità di impedenza.

La protezione ESD su SWDIO e SWDCLK vale la pena di aggiungerla su schede che si connettono a header di debug esterni in ambienti sul campo. Una resistenza serie da 22–33 Ω su ciascuna linea smorza le riflessioni e limita la corrente di picco durante eventi ESD. Valori superiori a 47 Ω iniziano a degradare il tempo di salita a 10 MHz; rimanere nell'intervallo 22–33 Ω per bilanciare protezione e integrità del segnale.

Dopo il blocco di produzione, i pin SWD possono essere riutilizzati come GPIO sulla maggior parte delle famiglie Cortex-M. Il meccanismo esatto varia: alcuni MCU consentono un rimappaggio parziale in cui SWDCLK e SWDIO diventano GPIO standard dopo una sequenza di disattivazione del debug, mentre altri richiedono un livello di protezione di lettura completo che disabilita permanentemente la porta. Consultare la documentazione dei byte opzionali o del registro di protezione flash della propria famiglia MCU prima di presumere che i pin siano liberamente disponibili dopo la produzione.

Fare in modo che questi dettagli a livello di pin siano corretti fin dall'inizio previene una serie di fallimenti di avvio che sono difficili da diagnosticare una volta che una scheda è assemblata. Pull-up mancanti, connessioni VTREF errate e un routing dei trace inadeguato si presentano come connettività di debug intermittente: sintomi che assomigliano a problemi di firmware o probe fino a quando l'hardware non viene esaminato attentamente. Gli ingegneri che revisionano le specifiche dei pin SWD prima dell'approvazione del layout impiegano costantemente meno tempo nel debug del primo articolo. STONE HMI applica processi strutturati di sviluppo firmware nei progetti di automazione. Quel tipo di disciplina di processo, che cattura le lacune nelle specifiche a livello di pin prima della fabbricazione piuttosto che durante l'avvio, riduce direttamente il rischio di ritardi di pianificazione nelle tempistiche di produzione.