Velge en feilsøkings-/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-/puteoppdrag, og skaff Tag-Connect kabler.

Når man designer enheter som bruker mikrokontrollere, må man tilby en feilsøkings- og programmeringskontakt. Dette kan bare brukes til utvikling, når man skriver og feilsøker programvare, eller det kan også bli igjen i produksjonsenheter, for programmering i fabrikken.

Produsenter og verktøymakere har sørget for at vi lever i en verden hvor det finnes en mangfold av feilsøkingskontakter med mye forvirring rundt dem. Dette er grunnen til at vi ender opp med dette:

Så, hvilken kontakt skal velges for et nytt design?

Denne artikkelen fokuserer hovedsakelig på ARM-enheter som har SWD (Single-Wire Debug)-grensesnittet, men den er også relevant 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-pin JTAG på en 0,1" IDC-header. Vanligvis brukes en hann-header. Ulempe: den er enorm, og headeren koster penger.
  • Cortex Debug-kontakt ved bruk av en 0,05" mikro-header (10-pin eller 20-pin, Samtec FTSH-110 og FTSH-105). 10-pin-kontakten er rimelig liten og tilgjengelig som en SMD-komponent, men dyrere enn IDC-kontakter.
  • 20-pin 0,1" IDC-kontakt. Du vurderer vel ikke seriøst den dinosauren, er du? Den er større enn noen av kortene jeg har designet.
  • Tilpasset sett med 4 eller 6 pinner (eller vias, eller kobberputer). Problemet her er den "tilpassede" komponenten. Den vil uunngåelig komme tilbake for å bite deg i fremtiden, den dagen din tilpassede kontakt brytes på fabrikkgulvet og du må sende en ny fra utlandet, mens produksjonen er stoppet.
  • Tag-Connect 6-pin fotavtrykk i en av variantene (med ben eller uten ben). Merk at det ikke er noen kontakt her: bare et standardisert fotavtrykk på PCB.
  • Tag-Connect 6-pin + Tag-Connect 10 pin (for ETM-signaler): for denne kombinasjonen er det til og med en ferdigbygd kabel tilgjengelig, med en 20-pin IDC-kontakt og standard ARM Cortex 20-pin pinneoppdrag.

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

Tag-Connect-løsningene eller tilpassede fotavtrykk med pogo-pin-baserte kontakter har en åpenbar fordel her i at de ikke krever at noen komponenter plasseres på PCB, så kostnaden per debug-kontakt per kort synker til 0, noe som er flott!

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

Og dette er hvordan kabelen med pogo-pinner ser ut: Den andre store hensynet er størrelse, og resulterende krav til plass på kretskortet. De eneste konkurrentene er 10-pin 0.05" mikro-header og en Tag-Connect 6-pin fotavtrykk. 10-pin mikro-header er faktisk litt mindre i en retning, men forskjellen er ikke signifikant. Her er hvordan en 10-pin 0.05" mikro-header ser ut (denne er fra et Nordic Semiconductor nRF52832 utviklingskort, PCA10040):

Bein eller ikke bein?

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

Tag-Connect bruker pogo-pinner, som har fjærer på innsiden og trykker mot PCB-en. Hvis du vil at kontakten skal holde seg på plass, må du kontinuerlig påføre 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å godt for utvidede feilsøkingsøkter. For det fungerer "bein"-fotavtrykket (og kontakten) mye bedre. Beina fungerer som små klips, så når du setter inn kontakten, klikker de på plass og holder pogo-pinnene stramt mot kortet, for ubestemt tid.

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

For produksjonsenheter, der tilkoblingen sannsynligvis bare vil bli gjort en gang i produktets levetid, og som enkelt kan holdes i hånden hele tiden, er det ingen tvil: du foretrekker definitivt "ingen-ben" fotavtrykket, som sparer kretskortplass. Men hva med prototypene? På den ene siden har du råd til kretskortplassen, men på den andre siden ønsker du ikke å redesigne PCB bare fordi du trenger å fjerne hullene i den endelige revisjonen.

Heldigvis finnes det en annen løsning. Tag-Connect selger en liten festeklemme. Det er et stykke PCB med tre sokler som passer pinnene på Tag-Connect-kabelen. Det er ikke en mekanisk perfekt løsning og klemmene har en tendens til å slites ut over tid (de er også utrolig lette å miste!), men i praksis fungerer det ganske bra.

Min anbefaling er å alltid gå for "ingen-ben" fotavtrykk og kabler, kjøp en haug med festeklemmer, og spar på kortplass og omprosjektering av kortene.

Bruk en standard signaltilordning

Jeg har sett maskinvare i det fri, der designere brukte et Tag-Connect-fotavtrykk for ARM SWD (på en Cortex-M0), men tildelte signalene annerledes. Motivasjonen var sannsynligvis å gjøre grensesnittet uklart.

Dette er ikke noe jeg ville anbefalt: obfuskasjonen oppdages lett, og man ender opp med et inkompatibelt fotavtrykk, som uunngåelig vil forårsake problemer i fremtiden.

Praktikaliteter

Tag-Connect anbefaler at ingen komponenter plasseres (eller spor 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 komme unna med å plassere komponenter på den andre siden, selv når du bruker festeklemmen for å holde kabelen på plass. Jeg vil foreslå å bruke et stykke isolator mellom komponentene og festeklemmen, for å forhindre eventuelle mulige kortslutninger (papir fungerer godt). Selv om dette ikke er anbefalt praksis, fungerer dette, selv om det å feste feilsøkingskontakten på plass blir litt mer involvert.

Her er et eksempel på et prototypekort (unnskyld kvaliteten på loddingen på prototypen) der komponenter er plassert innenfor området til feilsøkingsfotavtrykket:

Kritikk

Det er ikke bare rosenrødt med Tag-Connect. Nettstedet er ikke godt organisert, så det er vanskelig å finne informasjonen du leter etter. Det finnes en mangfold av varianter som tilbys, og selv om de fleste mennesker vil trenge en enkelt type kabel, er den ikke fremtredende vist. Dessverre ser dette ut til å være en tradisjon med selskaper som lager feilsøkings- og programmeringsutstyr i den innebygde verden.

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

Disse filene leveres 'SOM DE ER' og uten garanti for at de er komplette, fri for feil eller egnet for bruk. Sjekk nøye de importerte dekalene mot det siste databladet som er gitt på Tag-Connect-nettstedet (se nedenfor). Spesielt sjekk hulstørrelser, pinnummerering, og vær spesielt oppmerksom på loddepastamasklaget for å sikre at det ikke deponeres loddepasta på fotavtrykkputene.

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

Jeg tror Tag-Connect burde 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 ferdiglagde feilsøkings- og programmeringsløsningen. Jeg vil anbefale å standardisere på den og bruke den i alle dine design.

Tidligere blogginnlegg: KiCon 2019 (2019-03-27)
Senere blogginnlegg: (2020-05-16)

PartsBox er en nettapp som lar deg ta kontroll over ditt elektronikkinventar, BOM-prising og småskala produksjon. Den holder oversikt over hvor komponenter er lagret, hva de nåværende lagerbeholdningene er, og hvilke komponenter som brukes i hvilke prosjekter/BOMs.

Blogg Indeks