Välja en felsöknings-/programmeringskontakt för en mikrokontroller

TL;DR sammanfattning: för ARM SWD, TI Spy-Bi-Wire eller Microchip ICD, använd Tag-Connect No-Legs fotavtryck med standardstift/platta tilldelningar, och skaffa Tag-Connect-kablar.

När man designar enheter som använder mikrokontrollers, behöver man tillhandahålla en felsöknings- och programmeringskontakt. Detta kan användas endast för utveckling, när man skriver och felsöker programvara, eller kan också lämnas i produktionsenheter, för programmering i fabrik.

Tillverkare och verktygsmakare har sett till att vi lever i en värld där det finns en mängd olika felsökningskontakter med mycket förvirring runt dem. Det är därför vi hamnar med detta:

Så, vilken kontakt ska man välja för en ny design?

Denna artikel fokuserar främst på ARM-enheter som har SWD (Single-Wire Debug)-gränssnittet, men den är också tillämplig på andra komponenter, som Texas Instruments MSP430 som använder Spy Bi-Wire (2-tråds JTAG)-protokollet, Microchip ICD, eller till och med komponenter som behöver en mer komplett uppsättning av JTAG-pinnar.

Populära felsökningskontakter

Några av de vanliga valen som ofta övervägs:

  • 10-stifts JTAG på en 0,1" IDC-header. Vanligtvis används en hankontakt. Nackdel: den är enorm, och kontakten kostar pengar.
  • Cortex Debug Connector med en 0,05" mikroheader (10-stift eller 20-stift, Samtec FTSH-110 och FTSH-105). 10-stiftskontakten är rimligt liten och finns som en SMD-del, men dyrare än IDC-kontakter.
  • 20-stifts 0,1" IDC-kontakt. Du överväger inte seriöst den där dinosaurien, eller hur? Den är större än vissa av de kort jag designat.
  • Anpassad uppsättning av 4 eller 6 stift (eller via, eller kopparplattor). Problemet här är den "anpassade" delen. Den kommer oundvikligen att komma tillbaka och bita dig i framtiden, den dagen din anpassade kontakt bryts på fabriksgolvet och du måste skicka en ny från utlandet, medan produktionen är stoppad.
  • Tag-Connect 6-stifts fotavtryck i en av varianterna (med ben eller utan ben). Notera att det inte finns någon kontakt här: bara ett standardiserat fotavtryck på kretskortet.
  • Tag-Connect 6-stift + Tag-Connect 10 stift (för ETM-signaler): för denna kombination finns till och med en förbyggd kabel tillgänglig, med en 20-stifts IDC-kontakt och standard ARM Cortex 20-stifts stifttilldelningar.

En omedelbar observation är att de flesta av dessa kontakter kräver, tja, kontakter. Det är en ytterligare komponent som du behöver placera på kortet, vilket kostar pengar. För produktionsenheter eller större prototypkörningar kommer den kontakten endast att användas en gång under hela produktens livstid, vilket är ett slöseri.

Tag-Connect-lösningarna eller anpassade fotavtryck med pogo-pin-baserade kontakter har en uppenbar fördel här eftersom de inte kräver att några komponenter placeras på kretskortet, så kostnaden per debug-kontakt per kretskort sjunker till 0, vilket är fantastiskt!

Så här ser ett Tag-Connect fotavtryck ut på ett riktigt kort:

Och så här ser kabeln med pogo-pinnar ut: Den andra stora övervägningen är storlek och därmed krav på utrymme på kortet. De enda alternativen är 10-pins 0.05" mikro-header och en Tag-Connect 6-pins fotavtryck. 10-pins mikro-headern är faktiskt lite mindre i en riktning, men skillnaden är inte signifikant. Så här ser en 10-pins 0.05" mikro-header ut (den här är från ett Nordic Semiconductor nRF52832 utvecklingskort, PCA10040):

Ben eller inga ben?

Det finns två varianter av en Tag-Connect-kontaktkabel: en med "ben" och en utan "ben". Vad är skillnaden?

Tag-Connect använder pogo-pinnar, som har fjädrar inuti och trycker mot kretskortet. Om du vill att kontakten ska stanna på plats måste du kontinuerligt applicera kraft på den. Detta är bra för snabb programmering, där du kan använda en hand för att hålla kontakten på plats och en annan för att starta programmeringsjobbet, men fungerar inte så bra för utdragna felsökningssessioner. För det fungerar "ben"-fotavtrycket (och kontakten) mycket bättre. Benen fungerar som små klämmor, så när du sätter i kontakten, knäpper de på plats och håller pogo-pinnarna tätt mot kortet, under obestämd tid.

Problemet med "ben"-fotavtrycket är dess storlek: det är betydligt större än "inga ben"-varianten. Vad som är värre, det behöver fyra stora hål i kortet. Stora hål är alltid ett problem: de (uppenbarligen) måste gå igenom alla lager, och du behöver ett utrymme runt dem också. Detta innebär att påverkan av ett "ben"-fotavtryck på din design är mycket större än av "inga ben"-varianten.

För produktionsenheter, där anslutningen sannolikt bara görs en gång under produktens livstid och enkelt kan hållas för hand hela tiden, finns det ingen fråga: du föredrar definitivt "inga-ben"-fotavtrycket, som sparar kretskortsyta. Men vad gör man med prototyperna? Å ena sidan har du råd med kretskortsyta, men å andra sidan vill du inte behöva redesigna kretskortet bara för att du behöver ta bort hålen i den slutliga revisionen.

Lyckligtvis finns det en annan lösning. Tag-Connect säljer en liten hållarklämma. Det är ett stycke PCB med tre uttag som passar stiften på Tag-Connect-kabeln. Det är inte en mekaniskt perfekt lösning och klämmorna tenderar att slitas ut med tiden (de är också otroligt lätta att förlora!), men i praktiken fungerar det ganska bra.

Mitt rekommendation är att alltid gå med "utan ben"-fotavtryck och kablar, köp en massa hållklipp och spara på kortplats och omkonstruktion av kort.

Använd en standard signalzuordnung

Jag har sett hårdvara i det vilda, där designers använde en Tag-Connect-fotavtryck för ARM SWD (på en Cortex-M0), men tilldelade signaler annorlunda. Motivationen var sannolikt att försvåra förståelsen för gränssnittet.

Detta är inte något jag skulle rekommendera: förvrängningen upptäcks lätt, och man hamnar med ett inkompatibelt fotavtryck, vilket oundvikligen kommer att orsaka problem i framtiden.

Praktikaliteter

Tag-Connect rekommenderar att inga komponenter placeras (eller spår dras) på andra sidan av fotavtrycket. Även om det är en bra rekommendation, har man inte alltid den lyxen, särskilt på små kort med trånga layoutbegränsningar.

Som jag har upptäckt kan du komma undan med att placera komponenter på andra sidan, även när du använder hållklippet för att hålla kabeln på plats. Jag skulle föreslå att använda ett stycke isolator mellan komponenterna och hållklippet, dock, för att förhindra eventuella kortslutningar (papper fungerar bra). Även om det inte är den rekommenderade metoden fungerar detta, även om det blir lite mer inblandat att fixera felsökningskontakten på plats.

Här är ett exempel på en prototypkort (ursäkta kvaliteten på prototypens lödning) där komponenter är placerade inom området för felsökningsfotavtrycket:

Kritik

Det är inte bara rosor med Tag-Connect. Webbplatsen är inte välorganiserad, så det är svårt att hitta den information du letar efter. Det finns en mängd olika varianter som erbjuds, och även om de flesta människor bara kommer att behöva en typ av kabel, visas den inte framträdande. Tyvärr verkar detta vara en tradition hos företag som tillverkar felsöknings- och programmeringsutrustning i den inbäddade världen.

Den andra invändningen jag har är att företaget erbjuder nedladdningsbara CAD-bibliotek med Tag-Connect-fotavtryck, men påstår att:

Dessa filer tillhandahålls 'SOM DE ÄR' och utan någon garanti att de är kompletta, fria från fel eller lämpliga för användning. Kontrollera noggrant de importerade dekalerna mot det senaste databladet som tillhandahålls på Tag-Connect-webbplatsen (se nedan). Kontrollera särskilt hålstorlekar, pinnumrering och var särskilt uppmärksam på lödpastamasklagret för att säkerställa att ingen lödpasta deponeras på fotavtryckspaddarna.

Om du tittar i de tillhandahållna ZIP-filerna, kommer det vanligtvis att finnas flera fotavtrycksvarianter för en given CAD. Vilken ska jag använda? Och varför är det mitt ansvar att verifiera det?

Jag tycker att Tag-Connect borde städa upp detta bibliotek och tillhandahålla en uppsättning stödda fotavtryck, åtminstone för de mer populära CAD-paketen, utan en ansvarsfriskrivning. Det borde vara en del av värdet av denna lösning.

Slutsats

Allt sammantaget är Tag-Connect fortfarande den bästa färdiga felsöknings- och programmeringslösningen. Jag skulle rekommendera att standardisera på den och använda den i alla dina designer.

Tidigare blogginlägg: KiCon 2019 (2019-03-27)
Senare blogginlägg: Nyheter: Maj 2020 (2020-05-16)

PartsBox är en onlineapp som låter dig ta kontroll över ditt lager av elektroniska komponenter, BOM-prissättning och småskalig produktion. Den håller reda på var komponenter förvaras, vad de aktuella lagernivåerna är och vilka komponenter som används i vilka projekt/BOMs.

Bloggindex