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.
Alcune delle scelte comuni che vengono spesso considerate:
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): 
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.
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.
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: 
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.
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.
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.