Scegliere un connettore di debug/programmazione per un microcontrollore

Riassunto TL;DR: per ARM SWD, TI Spy-Bi-Wire o Microchip ICD, usa il footprint Tag-Connect No-Legs con assegnazioni pin/pad standard e procurati 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, durante la scrittura e il debug del software, o potrebbe anche essere lasciato nelle unità di produzione, per la programmazione in fabbrica.

I produttori e i creatori di strumenti si sono assicurati che viviamo in un mondo in cui esiste una moltitudine di connettori di debug con molta confusione attorno ad essi. 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 è applicabile anche ad altri componenti, come il Texas Instruments MSP430 che utilizza il protocollo Spy Bi-Wire (JTAG a 2 fili), 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 header IDC da 0,1". Di solito viene utilizzato un header maschio. Svantaggio: è enorme e l'header costa denaro.
  • Connettore Cortex Debug che utilizza un micro header 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 a 20 pin da 0,1". Non stai seriamente considerando quel dinosauro, vero? È più grande di alcune delle schede che ho progettato.
  • Set personalizzato di 4 o 6 pin (o via, o piazzole in rame). Il problema qui è la parte "personalizzata". Inevitabilmente tornerà a perseguitarti in futuro, il giorno in cui il tuo connettore personalizzato si romperà in fabbrica e dovrai spedirne uno nuovo dall'estero, mentre la produzione è ferma.
  • Footprint Tag-Connect a 6 pin in una delle varianti (con gambe o senza gambe). Nota che non c'è alcun connettore qui: solo un footprint standardizzato sul PCB.
  • Tag-Connect 6 pin + Tag-Connect 10 pin (per segnali ETM): per questa combinazione, è disponibile anche un cavo pre-costruito, con un connettore IDC a 20 pin e assegnazioni pin standard ARM Cortex a 20 pin.

Un'osservazione immediata è che la maggior parte di questi connettori richiede, beh, connettori. Questo è un componente aggiuntivo che devi posizionare sulla scheda, il 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 ovvio vantaggio qui in quanto non richiedono il posizionamento di alcun componente sul PCB, quindi il costo del connettore di debug per scheda crolla a 0, il che è fantastico!

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

Ed ecco come appare il cavo con i pogo-pin: La seconda considerazione principale è la dimensione e i conseguenti requisiti di spazio sulla scheda. 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 è in realtà 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 proviene da una scheda di sviluppo Nordic Semiconductor nRF52832, la PCA10040):

Gambe o Senza Gambe?

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

Tag-Connect utilizza pogo pin, 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 una programmazione rapida, dove puoi usare una mano per tenere il connettore in posizione e un'altra per avviare quel lavoro di programmazione, ma non funziona così bene per sessioni di debug prolungate. Per questo, l'impronta "legs" (e il connettore) funziona molto meglio. Le gambe agiscono come piccole clip, quindi una volta inserito il connettore, scattano in posizione e tengono i pogo pin stretti contro la scheda, per un tempo indefinito.

Il problema con l'impronta "legs" è la sua dimensione: è significativamente più grande della variante "no-legs". 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 anche di un'area di rispetto (keepout) intorno a loro. Questo significa che l'impatto di un'impronta "legs" sul tuo design è molto più grande rispetto alla variante "no legs".

Per le unità di produzione, dove la connessione verrà probabilmente effettuata solo una volta nella vita di un 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 per i prototipi? Da un lato, puoi permetterti lo spazio sulla scheda, ma dall'altro, non vuoi riprogettare il PCB solo perché devi rimuovere i fori nella revisione finale.

Fortunatamente, esiste 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 usurarsi col tempo (sono anche incredibilmente facili da perdere!), ma in pratica funziona abbastanza bene.

La mia raccomandazione è di scegliere sempre il footprint "senza gambe" e i cavi, comprare un mucchio di clip di fissaggio, e risparmiare spazio sulla scheda e sulla riprogettazione delle schede.

Usa un'assegnazione di segnale standard

Ho visto hardware in circolazione, dove i progettisti hanno utilizzato un'impronta Tag-Connect per ARM SWD (su un Cortex-M0), ma hanno assegnato i segnali in modo diverso. È probabile che la motivazione fosse quella di offuscare l'interfaccia.

Questo non è qualcosa che raccomanderei: l'offuscamento viene facilmente scoperto e ci si ritrova con un footprint incompatibile, che causerà inevitabilmente problemi in futuro.

Aspetti pratici

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

Come ho scoperto, te la puoi cavare posizionando i componenti sull'altro lato, 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ò, per prevenire eventuali cortocircuiti (la carta funziona bene). Sebbene non sia la pratica raccomandata, questo funziona, anche se fissare il connettore di debug in posizione diventa un po' più complicato.

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

Critica

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

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

Questi file sono forniti 'COSÌ COME SONO' e senza alcuna garanzia che siano completi, privi di errori o adatti all'uso. Controlla attentamente le decalcomanie importate 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 molta attenzione allo strato della maschera per la pasta saldante per assicurarti che nessuna pasta saldante venga depositata sui pad dell'impronta.

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

Penso che Tag-Connect dovrebbe ripulire questa libreria e fornire un set di footprint supportati, almeno per i pacchetti CAD più popolari, senza un disclaimer. Dovrebbe essere parte del valore di questa soluzione.

Conclusione

Tutto considerato, Tag-Connect è ancora la migliore soluzione di debug e programmazione pronta all'uso. Consiglierei di standardizzarla e usarla in tutti i tuoi progetti.

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

PartsBox è un'app online che ti consente di prendere il controllo del tuo inventario di componenti elettronici, dei prezzi delle distinte base (BOM) e della produzione su piccola scala. Tiene traccia di dove sono immagazzinati i componenti, quali sono i livelli di stock attuali e quali componenti sono utilizzati in quali progetti/BOM.

Indice del Blog

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