Scegliere un connettore di debug/programmazione per un microcontrollore

Riassunto TL;DR: per ARM SWD, TI Spy-Bi-Wire, o Microchip ICD, usa l'impronta Tag-Connect No-Legs con assegnazioni standard di pin/pad, e ottieni i cavi Tag-Connect.

Quando si progettano dispositivi che utilizzano microcontrollori, è necessario fornire un connettore di debug e programmazione. Questo potrebbe essere utilizzato solo per lo sviluppo, quando si scrive e si debugga il software, o potrebbe anche essere lasciato nelle unità di produzione, per la programmazione in fabbrica.

I produttori e i costruttori di strumenti hanno fatto in modo che viviamo in un mondo dove esiste una moltitudine di connettori di debug con molta confusione intorno a loro. Ecco perché finiamo con questo:

Quindi, quale connettore scegliere per un nuovo design?

Questo articolo si concentra principalmente sui dispositivi ARM che hanno l'interfaccia SWD (Single-Wire Debug), ma è anche applicabile ad altri componenti, come il Texas Instruments MSP430 che utilizza il protocollo Spy Bi-Wire (2-wire JTAG), Microchip ICD, o anche componenti che necessitano di un set più completo di pin JTAG.

Connettori di debug popolari

Alcune delle scelte comuni che vengono spesso considerate:

  • JTAG a 10 pin su un connettore IDC da 0,1". Di solito si usa un connettore maschio. Svantaggio: è enorme, e il connettore costa soldi.
    • Connettore di debug Cortex utilizzando un micro connettore da 0,05" (10 pin o 20 pin, Samtec FTSH-110 e FTSH-105). Il connettore a 10 pin è ragionevolmente piccolo e disponibile come componente SMD, ma più costoso dei connettori IDC.
    • Connettore IDC da 0,1" a 20 pin. Non stai seriamente considerando quel dinosauro, vero? È più grande di alcune delle schede che ho progettato.
    • Set personalizzato di 4 o 6 pin (o vias, o pad di rame). Il problema qui è la parte "personalizzata". Inevitabilmente tornerà a morderti in futuro, il giorno in cui il tuo connettore personalizzato si rompe sul pavimento della fabbrica e devi spedirne uno nuovo dall'estero, mentre la produzione è fermata.
    • Impronta Tag-Connect a 6 pin in una delle varianti (con gambe o senza gambe). Nota che qui non c'è un connettore: solo un' impronta standardizzata sulla PCB.
    • Tag-Connect a 6 pin + Tag-Connect a 10 pin (per i segnali ETM): per questa combinazione, c'è anche un cavo pre-costruito disponibile, con un connettore IDC a 20 pin e assegnazioni di pin standard ARM Cortex a 20 pin.

Una osservazione immediata è che la maggior parte di questi connettori richiede, beh, connettori. Questo è un componente aggiuntivo che devi posizionare sulla scheda, che costa denaro. Per le unità di produzione o le serie di prototipi più grandi, quel connettore verrà utilizzato solo una volta nell'intera vita del prodotto, il che è uno spreco.

Le soluzioni Tag-Connect o i footprint personalizzati con connettori basati su pogo-pin hanno un vantaggio evidente in quanto non richiedono che vengano posizionati componenti sulla PCB, quindi il costo del connettore di debug per scheda scende a 0, il che è fantastico!

Ecco come appare un footprint Tag-Connect su una vera scheda:

E questo è come appare il cavo con i pogo-pin: La seconda considerazione principale è la dimensione, e i requisiti di spazio sulla scheda risultanti. Gli unici contendenti sono il micro-header a 10 pin da 0,05" e un footprint Tag-Connect a 6 pin. Il micro-header a 10 pin è effettivamente un po' più piccolo in una direzione, ma la differenza non è significativa. Ecco come appare un micro-header a 10 pin da 0,05" (questo è da una scheda di sviluppo Nordic Semiconductor nRF52832, la PCA10040):

Gambe o Senza Gambe?

Ci sono due varianti di un cavo connettore Tag-Connect: uno con "gambe" e uno senza "gambe". Qual è la differenza?

Tag-Connect utilizza pin a molla, che hanno molle all'interno e spingono contro il PCB. Se vuoi che il connettore rimanga in posizione, devi applicare continuamente forza su di esso. Questo va bene per la programmazione veloce, dove puoi usare una mano per tenere il connettore in posizione e un'altra per lanciare quel lavoro di programmazione, ma non funziona così bene per le sessioni di debug prolungate. Per questo, l'impronta "gambe" (e connettore) funziona molto meglio. Le gambe agiscono come piccole clip, quindi una volta inserito il connettore, si incastrano in posizione e tengono i pin a molla stretti contro la scheda, per un tempo indefinito.

Il problema con l'impronta "gambe" è la sua dimensione: è significativamente più grande della variante "senza gambe". Peggio ancora, ha bisogno di quattro grandi fori nella scheda. I grandi fori sono sempre un problema: devono (ovviamente) passare attraverso tutti gli strati, e hai bisogno di un'area di esclusione attorno a loro. Questo significa che l'impatto di un'impronta "gambe" sul tuo design è molto più grande di quello della variante "senza gambe".

Per le unità di produzione, dove la connessione sarà probabilmente effettuata solo una volta nel corso della vita del prodotto, e può essere facilmente tenuta in mano tutto il tempo, non c'è dubbio: preferisci sicuramente l'impronta "senza gambe", che risparmia spazio sulla scheda. Ma cosa fare dei prototipi? Da un lato, puoi permetterti lo spazio sulla scheda, ma dall'altro, non vuoi ridisegnare il PCB solo perché devi rimuovere i fori nella revisione finale.

Fortunatamente, c'è un'altra soluzione. Tag-Connect vende una piccola clip di ritenzione. È un pezzo di PCB con tre prese che si adattano ai pin del cavo Tag-Connect. Non è una soluzione meccanicamente perfetta e le clip tendono a consumarsi nel tempo (sono anche incredibilmente facili da perdere!), ma in pratica funziona abbastanza bene.

La mia raccomandazione è di andare sempre con l'impronta e i cavi "senza gambe", comprare un mucchio di clip di ritenzione, e risparmiare su spazio sulla scheda e ridisegnare le schede.

Utilizza un'assegnazione di segnale standard

Ho visto hardware in natura, dove i progettisti hanno utilizzato un footprint Tag-Connect per ARM SWD (su un Cortex-M0), ma hanno assegnato segnali in modo diverso. Probabilmente la motivazione era di offuscare l'interfaccia.

Questo non è qualcosa che consiglierei: l'offuscamento è facilmente scoperto, e si finisce con un'orma incompatibile, che causerà inevitabilmente problemi in futuro.

Praticità

Tag-Connect raccomanda che nessun componente sia posizionato (o tracce instradate) sull'altro lato del footprint. Anche se questa è una buona raccomandazione, non si ha sempre quel lusso, specialmente su piccole schede con vincoli di layout stretti.

Come ho scoperto, puoi cavartela mettendo i componenti dall'altra parte, anche quando usi la clip di ritenzione per tenere il cavo in posizione. Suggerirei di usare un pezzo di isolante tra i componenti e la clip di ritenzione, per prevenire possibili cortocircuiti (la carta funziona bene). Sebbene non sia la pratica consigliata, questo funziona, anche se fissare il connettore di debug in posizione diventa un po' più complicato.

Ecco un esempio di una scheda prototipo (scusa la qualità della saldatura del prototipo) dove i componenti sono posizionati all'interno dell'area del footprint di debug:

Critiche

Non è tutto rose e fiori con Tag-Connect. Il sito web non è ben organizzato, quindi è difficile trovare le informazioni che stai cercando. C'è una moltitudine di varianti offerte, e anche se la maggior parte delle persone avrà bisogno di un solo tipo di cavo, non è messo in evidenza. Purtroppo, questa sembra essere una tradizione con le aziende che producono attrezzature di debug e programmazione nel mondo embedded.

La seconda lamentela che ho è che l'azienda offre librerie CAD scaricabili con impronte Tag-Connect, ma afferma che:

Questi file sono forniti 'COSÌ COM'È' e senza alcuna garanzia che siano completi, privi di errori o adatti all'uso. Controlla attentamente i decalcomanie importati rispetto all'ultimo datasheet fornito sul sito web di Tag-Connect (vedi sotto). In particolare, controlla le dimensioni dei fori, la numerazione dei pin e presta particolare attenzione allo strato della maschera di pasta saldante per assicurarti che non venga depositata pasta saldante sui pad del footprint.

Se guardi nei file ZIP forniti, ci saranno di solito diverse varianti di impronta per un dato CAD. Quale dovrei usare? E perché è mia responsabilità verificarlo?

Penso che Tag-Connect dovrebbe pulire questa libreria e fornire un set di impronte supportate, almeno per i pacchetti CAD più popolari, senza una rinuncia. Dovrebbe far parte del valore di questa soluzione.

Conclusione

Tutto considerato, Tag-Connect è ancora la migliore soluzione di debug e programmazione disponibile sul mercato. Raccomanderei di standardizzarla e usarla in tutti i tuoi progetti.

Post più vecchi del blog: KiCon 2019 (2019-03-27)
Post del blog successivi: Novità: Maggio 2020 (2020-05-16)

PartsBox è un'app online che ti permette di prendere il controllo del tuo inventario di componenti elettronici, della tariffazione BOM e della produzione su piccola scala. Tiene traccia di dove sono conservati i componenti, quali sono i livelli di stock attuali, e quali componenti sono utilizzati in quali progetti/BOM.

Indice del blog