Valg af debug/programmeringsstik til en mikrocontroller

TL;DR resumé: for ARM SWD, TI Spy-Bi-Wire eller Microchip ICD, brug Tag-Connect No-Legs footprint med standard pin/pad-tildelinger, og få Tag-Connect kabler.

Når man designer enheder, der bruger mikrocontrollere, skal man sørge for et debug- og programmeringsstik. Dette kan bruges udelukkende til udvikling, når man skriver og debugger software, eller det kan også efterlades i produktionsenheder til programmering på fabrikken.

Producenter og værktøjsmagere sørgede for, at vi lever i en verden, hvor der er et væld af debug-stik med masser af forvirring omkring dem. Det er derfor, vi ender med dette:

Så hvilket stik skal man vælge til et nyt design?

Denne artikel fokuserer hovedsageligt på ARM-enheder, der har SWD (Single-Wire Debug) grænsefladen, men den er også anvendelig på andre komponenter, som Texas Instruments MSP430, der bruger Spy Bi-Wire (2-wire JTAG) protokollen, Microchip ICD, eller endda komponenter, der har brug for et mere komplet sæt JTAG-ben.

Populære debugging-stik

Nogle af de almindelige valg, der ofte overvejes:

  • 10-bens JTAG på en 0,1" IDC-header. Normalt bruges en han-header. Ulempe: den er enorm, og headeren koster penge.
  • Cortex Debug Connector ved hjælp af en 0,05" mikro-header (10-bens eller 20-bens, Samtec FTSH-110 og FTSH-105). 10-bens stikket er rimeligt lille og tilgængeligt som en SMD-komponent, men dyrere end IDC-stik.
  • 20-bens 0,1" IDC-stik. Du overvejer vel ikke seriøst den dinosaur, vel? Den er større end nogle af de kort, jeg har designet.
  • Brugerdefineret sæt af 4 eller 6 ben (eller vias, eller kobberpads). Problemet her er den "brugerdefinerede" del. Det vil uundgåeligt komme tilbage og bide dig i fremtiden, den dag dit brugerdefinerede stik går i stykker på fabriksgulvet, og du skal sende et nyt fra udlandet, mens produktionen er standset.
  • Tag-Connect 6-bens footprint i en af varianterne (med ben eller ingen ben). Bemærk, at der ikke er noget stik her: kun et standardiseret footprint på PCB'et.
  • Tag-Connect 6-bens + Tag-Connect 10-bens (til ETM-signaler): til denne kombination findes der endda et færdigbygget kabel med et 20-bens IDC-stik og standard ARM Cortex 20-bens tildelinger.

En umiddelbar observation er, at de fleste af disse stik kræver, ja, stik. Det er en ekstra komponent, som du skal placere på printkortet, hvilket koster penge. For produktionsenheder eller større prototypekørsler vil det stik kun blive brugt én gang i hele produktets levetid, hvilket er spild.

Tag-Connect-løsningerne eller brugerdefinerede footprints med pogo-pin-baserede stik har en åbenlys fordel her, da de ikke kræver, at nogen komponenter placeres på printkortet, så omkostningerne til debug-stik pr. kort falder til 0, hvilket er fantastisk!

Sådan ser et Tag-Connect footprint ud på et rigtigt printkort:

Og sådan ser kablet med pogo-pins ud: Den anden store overvejelse er størrelse og de deraf følgende pladskrav på printkortet. De eneste kandidater er 10-bens 0,05" mikro-headeren og et Tag-Connect 6-bens footprint. 10-bens mikro-headeren er faktisk en smule mindre i den ene retning, men forskellen er ikke signifikant. Her er, hvordan en 10-bens 0,05" mikro-header ser ud (denne er fra et Nordic Semiconductor nRF52832 udviklingskort, PCA10040):

Ben eller ingen ben?

Der er to varianter af et Tag-Connect-stikkabel: et med "ben" og et med "ingen ben". Hvad er forskellen?

Tag-Connect bruger pogo-pins, som har fjedre indeni og presser mod printkortet. Hvis du vil have stikket til at blive siddende, skal du konstant lægge pres på det. Dette er fint til hurtig programmering, hvor du kan bruge den ene hånd til at holde stikket på plads og den anden til at starte programmeringsjobbet, men det fungerer ikke så godt til længere debugging-sessioner. Til det formål fungerer "legs"-fodaftrykket (og stikket) meget bedre. Benene fungerer som små klemmer, så når du indsætter stikket, klikker de på plads og holder pogo-pinnene stramt mod kortet i ubegrænset tid.

Problemet med "legs"-footprintet er dets størrelse: det er betydeligt større end "no-legs"-varianten. Hvad værre er, det kræver fire store huller i printkortet. Store huller er altid et problem: de skal (indlysende nok) passere gennem alle lag, og du har også brug for et keepout-område omkring dem. Dette betyder, at virkningen af et "legs"-footprint på dit design er meget større end af "no legs"-varianten.

For produktionsenheder, hvor forbindelsen sandsynligvis kun vil blive lavet én gang i produktets levetid, og let kan holdes i hånden hele tiden, er der ingen tvivl: du foretrækker helt sikkert "no-legs"-footprintet, som sparer plads på printkortet. Men hvad skal man gøre med prototyperne? På den ene side har du råd til pladsen på printkortet, men på den anden side ønsker du ikke at redesigne printkortet, bare fordi du skal fjerne hullerne i den endelige revision.

Heldigvis er der en anden løsning. Tag-Connect sælger en lille holdeclips. Det er et stykke PCB med tre fatninger, der passer til benene på Tag-Connect-kablet. Det er ikke en mekanisk perfekt løsning, og clipsene har tendens til at blive slidt med tiden (de er også utroligt nemme at miste!), men i praksis fungerer det ganske godt.

Min anbefaling er altid at gå med "ingen ben"-footprintet og kabler, købe en masse holdeclips og spare på printpladeplads og redesign af printpladerne.

Brug en standard signaltildeling

Jeg har set hardware i virkeligheden, hvor designere brugte et Tag-Connect footprint til ARM SWD (på en Cortex-M0), men tildelte signalerne anderledes. Det er sandsynligt, at motivationen var at sløre grænsefladen.

Dette er ikke noget, jeg vil anbefale: sløringen opdages let, og man ender med et inkompatibelt footprint, hvilket uundgåeligt vil skabe problemer i fremtiden.

Det praktiske

Tag-Connect anbefaler, at der ikke placeres komponenter (eller routes baner) på den anden side af fodaftrykket. Selvom det er en god anbefaling, har man ikke altid den luksus, især på små printplader med stramme layoutbegrænsninger.

Som jeg har opdaget, kan man slippe afsted med at placere komponenter på den anden side, selv når man bruger holdeklemmen til at holde kablet på plads. Jeg vil dog foreslå at bruge et stykke isolator mellem komponenterne og holdeklemmen for at forhindre eventuelle kortslutninger (papir fungerer godt). Selvom det ikke er den anbefalede praksis, fungerer dette, selvom det bliver lidt mere involveret at fastgøre debug-stikket.

Her er et eksempel på et prototypekort (undskyld venligst prototypeloddekvaliteten), hvor komponenter er placeret inden for området af debug-fodaftrykket:

Kritik

Det er ikke kun fryd og gammen med Tag-Connect. Hjemmesiden er ikke godt organiseret, så det er svært at finde de oplysninger, du leder efter. Der tilbydes et væld af varianter, og selvom de fleste mennesker vil have brug for en enkelt type kabel, vises det ikke fremtrædende. Desværre ser dette ud til at være en tradition hos virksomheder, der laver debug- og programmeringsudstyr i den indlejrede verden.

Den anden anke jeg har er, at virksomheden tilbyder CAD-biblioteker til download med Tag-Connect footprints, men angiver at:

Disse filer leveres 'SOM DE ER' og uden garanti for, at de er komplette, fejlfrie eller egnede til brug. Kontroller omhyggeligt de importerede decals mod det seneste datablad, der findes på Tag-Connect-webstedet (se nedenfor). Vær især opmærksom på hulstørrelser, pin-nummerering, og vær meget opmærksom på loddepasta-maskelaget for at sikre, at der ikke afsættes loddepasta på footprint-pads.

Hvis du kigger i de medfølgende ZIP-filer, vil der normalt være flere fodaftryksvarianter til en given CAD. Hvilken skal jeg bruge? Og hvorfor er det mit ansvar at verificere det?

Jeg synes, Tag-Connect burde rydde op i dette bibliotek og levere et sæt understøttede footprints, i det mindste til de mere populære CAD-pakker, uden en ansvarsfraskrivelse. Det burde være en del af værdien ved denne løsning.

Konklusion

Alt taget i betragtning er Tag-Connect stadig den bedste hyldevare-løsning til debugging og programmering. Jeg vil anbefale at standardisere på den og bruge den i alle dine designs.

Tidligere blogindlæg: KiCon 2019 (2019-03-27)
Senere blogindlæg: Hvad er nyt: Maj 2020 (2020-05-16)

PartsBox er en online app, der lader dig tage kontrol over din beholdning af elektroniske komponenter, BOM-prissætning og produktion i lille skala. Den holder styr på, hvor komponenter er opbevaret, hvad de aktuelle lagerniveauer er, og hvilke komponenter der bruges i hvilke projekter/styklister.

Blogindeks