Valg av debug-/programmeringskontakt for en mikrokontroller

TL;DR sammendrag: for ARM SWD, TI Spy-Bi-Wire eller Microchip ICD, bruk Tag-Connect No-Legs fotavtrykk med standard pinne/pad-tilordninger, og skaff Tag-Connect kabler.

Når man designer enheter som bruker mikrokontrollere, må man sørge for en feilsøkings- og programmeringskontakt. Denne kan brukes kun for utvikling, når man skriver og feilsøker programvare, eller den kan også beholdes i produksjonsenheter for programmering på fabrikken.

Produsenter og verktøymakere sørget for at vi lever i en verden der det er en mengde debug-kontakter med mye forvirring rundt dem. Det er derfor vi ender opp med dette:

Så, hvilken kontakt skal man velge for et nytt design?

Denne artikkelen fokuserer hovedsakelig på ARM-enheter som har SWD-grensesnittet (Single-Wire Debug), men den gjelder også for andre komponenter, som Texas Instruments MSP430 som bruker Spy Bi-Wire (2-wire JTAG)-protokollen, Microchip ICD, eller til og med komponenter som trenger et mer komplett sett med JTAG-pinner.

Populære feilsøkingskontakter

Noen av de vanlige valgene som ofte vurderes:

  • 10-pinners JTAG på en 0,1" IDC-header. Vanligvis brukes en hann-header. Ulempe: den er enorm, og headeren koster penger.
  • Cortex Debug Connector som bruker en 0,05" mikro-header (10-pinners eller 20-pinners, Samtec FTSH-110 og FTSH-105). 10-pinners kontakten er rimelig liten og tilgjengelig som en SMD-komponent, men dyrere enn IDC-kontakter.
  • 20-pinners 0,1" IDC-kontakt. Du vurderer vel ikke seriøst den dinosauren? Den er større enn noen av kortene jeg har designet.
  • Tilpasset sett med 4 eller 6 pinner (eller via-er, eller kobberputer). Problemet her er "tilpasset"-delen. Det vil uunngåelig komme tilbake og bite deg i fremtiden, den dagen din tilpassede kontakt går i stykker på fabrikkgulvet og du må sende en ny fra utlandet, mens produksjonen står stille.
  • Tag-Connect 6-pinners fotavtrykk i en av variantene (med ben eller uten ben). Merk at det ikke er noen kontakt her: bare et standardisert fotavtrykk på kretskortet.
  • Tag-Connect 6-pinners + Tag-Connect 10-pinners (for ETM-signaler): for denne kombinasjonen er det til og med en ferdigbygd kabel tilgjengelig, med en 20-pinners IDC-kontakt og standard ARM Cortex 20-pinners pinne-tilordninger.

En umiddelbar observasjon er at de fleste av disse kontaktene krever, vel, kontakter. Det er en ekstra komponent som du må plassere på kortet, noe som koster penger. For produksjonsenheter eller større prototypekjøringer vil den kontakten bare bli brukt én gang i hele produktets levetid, noe som er bortkastet.

Tag-Connect-løsningene eller tilpassede fotavtrykk med pogo-pin-baserte kontakter har en åpenbar fordel her ved at de ikke krever at noen komponenter plasseres på kretskortet (PCB), så kostnaden for debug-kontakten per kort stuper ned til 0, noe som er fantastisk!

Slik ser et Tag-Connect-fotavtrykk ut på et virkelig kort:

Og slik ser kabelen med pogo-pinner ut: Den andre store vurderingen er størrelse, og resulterende plasskrav på kortet. De eneste utfordrerne er 10-pinners 0,05" mikro-header og et Tag-Connect 6-pinners fotavtrykk. 10-pinners mikro-header er faktisk litt mindre i én retning, men forskjellen er ikke betydelig. Her er hvordan en 10-pinners 0,05" mikro-header ser ut (denne er fra et Nordic Semiconductor nRF52832 utviklingskort, PCA10040):

Ben eller ingen ben?

Det finnes to varianter av en Tag-Connect-kabel: en med "ben" og en "uten ben". Hva er forskjellen?

Tag-Connect bruker pogo-pinner, som har fjærer inni og presser mot kretskortet. Hvis du vil at kontakten skal holde seg på plass, må du kontinuerlig bruke kraft på den. Dette er greit for rask programmering, der du kan bruke en hånd til å holde kontakten på plass og en annen til å starte programmeringsjobben, men fungerer ikke så bra for lengre feilsøkingsøkter. For det fungerer "legs"-fotavtrykket (og kontakten) mye bedre. Bena fungerer som små klemmer, så når du setter inn kontakten, klikker de på plass og holder pogo-pinnene stramt mot kortet i ubestemt tid.

Problemet med "legs"-fotavtrykket er størrelsen: det er betydelig større enn varianten uten ben. Hva verre er, det trenger fire store hull i kortet. Store hull er alltid et problem: de må (åpenbart) gå gjennom alle lag, og du trenger et sperreområde rundt dem også. Dette betyr at virkningen av et "legs"-fotavtrykk på designet ditt er mye større enn varianten uten ben.

For produksjonsenheter, hvor tilkoblingen sannsynligvis bare vil bli gjort én gang i produktets levetid, og enkelt kan holdes for hånd hele tiden, er det ingen tvil: du foretrekker definitivt fotavtrykket "uten ben", som sparer plass på kortet. Men hva gjør man med prototypene? På den ene siden har du råd til plassen på kortet, men på den andre siden ønsker du ikke å redesigne PCB-en bare fordi du må fjerne hullene i den endelige revisjonen.

Heldigvis finnes det en annen løsning. Tag-Connect selger en liten festeklips. Det er et stykke PCB med tre sokler som passer til pinnene på Tag-Connect-kabelen. Det er ikke en mekanisk perfekt løsning, og klipsene har en tendens til å bli slitt med tiden (de er også utrolig enkle å miste!), men i praksis fungerer det ganske bra.

Min anbefaling er å alltid gå for fotavtrykket uten ben og kabler, kjøpe en haug med festeklips, og spare plass på kortet og unngå redesign av kortene.

Bruk en standard signaltilordning

Jeg har sett maskinvare i felten der designere brukte et Tag-Connect-fotavtrykk for ARM SWD (på en Cortex-M0), men tildelte signalene annerledes. Det er sannsynlig at motivasjonen var å skjule grensesnittet.

Dette er ikke noe jeg vil anbefale: tilsløringen oppdages lett, og man ender opp med et inkompatibelt fotavtrykk, noe som uunngåelig vil skape problemer i fremtiden.

Praktiske forhold

Tag-Connect anbefaler at ingen komponenter plasseres (eller baner rutes) på den andre siden av fotavtrykket. Selv om det er en god anbefaling, har man ikke alltid den luksusen, spesielt på små kort med stramme layoutbegrensninger.

Som jeg har oppdaget, kan du slippe unna med å plassere komponenter på den andre siden, selv når du bruker festeklipsen for å holde kabelen på plass. Jeg vil imidlertid foreslå å bruke et stykke isolator mellom komponentene og festeklipsen for å forhindre eventuelle kortslutninger (papir fungerer bra). Selv om det ikke er anbefalt praksis, fungerer dette, selv om det blir litt mer involvert å feste debug-kontakten.

Her er et eksempel på et prototypekort (vennligst unnskyld prototype-loddekvaliteten) der komponenter er plassert innenfor området til debug-fotavtrykket:

Kritikk

Det er ikke bare fryd og gammen med Tag-Connect. Nettstedet er ikke godt organisert, så det er vanskelig å finne informasjonen du leter etter. Det tilbys en mengde varianter, og selv om de fleste vil trenge en enkelt type kabel, vises den ikke fremtredende. Dessverre ser dette ut til å være en tradisjon hos selskaper som lager feilsøkings- og programmeringsutstyr i den innebygde verdenen.

Det andre ankepunktet jeg har er at selskapet tilbyr nedlastbare CAD-biblioteker med Tag-Connect-fotavtrykk, men opplyser at:

Disse filene leveres 'SOM DE ER' og uten garanti for at de er komplette, feilfrie eller egnet for bruk. Sjekk de importerte dekalene nøye mot det nyeste databladet som er tilgjengelig på Tag-Connect-nettstedet (se nedenfor). Vær spesielt oppmerksom på hullstørrelser, pin-nummerering, og vær nøye med loddepasta-maskelaget for å sikre at ingen loddepasta blir avsatt på fotavtrykksputene.

Hvis du ser i ZIP-filene som følger med, vil det vanligvis være flere fotavtrykksvarianter for en gitt CAD. Hvilken skal jeg bruke? Og hvorfor er det mitt ansvar å verifisere det?

Jeg synes Tag-Connect bør rydde opp i dette biblioteket og tilby et sett med støttede fotavtrykk, i det minste for de mer populære CAD-pakkene, uten en ansvarsfraskrivelse. Det burde være en del av verdien av denne løsningen.

Konklusjon

Alt tatt i betraktning er Tag-Connect fortsatt den beste hyllevare-løsningen for debugging og programmering. Jeg vil anbefale å standardisere på den og bruke den i alle dine design.

Tidligere blogginnlegg: KiCon 2019 (2019-03-27)
Senere blogginnlegg: Hva er nytt: Mai 2020 (2020-05-16)

PartsBox er en nettbasert app som lar deg ta kontroll over din beholdning av elektroniske komponenter, BOM-prising og småskalaproduksjon. Den holder oversikt over hvor komponenter er lagret, hva de nåværende lagernivåene er, og hvilke komponenter som brukes i hvilke prosjekter/BOM-er.

Bloggindeks