Het kiezen van een debug/programmeerconnector voor een microcontroller

TL;DR samenvatting: voor ARM SWD, TI Spy-Bi-Wire, of Microchip ICD, gebruik de Tag-Connect No-Legs footprint met standaard pin/pad-toewijzingen, en haal Tag-Connect kabels.

Bij het ontwerpen van apparaten die microcontrollers gebruiken, moet men een debug- en programmeerconnector voorzien. Dit kan alleen voor ontwikkeling worden gebruikt, bij het schrijven en debuggen van software, of kan ook in productie-eenheden worden achtergelaten, voor programmering in de fabriek.

Fabrikanten en gereedschapsmakers hebben ervoor gezorgd dat we leven in een wereld waar er een veelvoud aan debugconnectoren is met veel verwarring eromheen. Dit is waarom we eindigen met dit:

Dus, welke connector te kiezen voor een nieuw ontwerp?

Dit artikel richt zich voornamelijk op ARM-apparaten die de SWD (Single-Wire Debug) interface hebben, maar het is ook van toepassing op andere onderdelen, zoals Texas Instruments MSP430 die het Spy Bi-Wire (2-draads JTAG) protocol gebruikt, Microchip ICD, of zelfs onderdelen die een meer complete set JTAG-pinnen nodig hebben.

Populaire debugconnectoren

Enkele van de veelvoorkomende keuzes die vaak worden overwogen:

  • 10-pins JTAG op een 0,1" IDC-header. Meestal wordt een mannelijke header gebruikt. Nadeel: het is enorm, en de header kost geld.
  • Cortex Debug Connector met een 0,05" micro-header (10-pins of 20-pins, Samtec FTSH-110 en FTSH-105). De 10-pins connector is redelijk klein en beschikbaar als een SMD-onderdeel, maar duurder dan IDC-connectoren.
  • 20-pins 0,1" IDC-connector. Je overweegt toch niet serieus die dinosaurus, of wel? Het is groter dan sommige van de borden die ik heb ontworpen.
  • Aangepaste set van 4 of 6 pinnen (of via's, of koperen pads). Het probleem hier is het "aangepaste" deel. Het zal onvermijdelijk terugkomen om je in de toekomst te bijten, de dag dat je aangepaste connector breekt op de fabrieksvloer en je een nieuwe moet verzenden vanuit het buitenland, terwijl de productie is gestopt.
  • Tag-Connect 6-pins voetafdruk in een van de varianten (met poten of zonder poten). Let op dat er hier geen connector is: gewoon een gestandaardiseerde voetafdruk op de PCB.
  • Tag-Connect 6-pins + Tag-Connect 10 pin (voor ETM-signalen): voor deze combinatie is zelfs een vooraf gebouwde kabel beschikbaar, met een 20-pins IDC-connector en standaard ARM Cortex 20-pins pin-toewijzingen.

Eén onmiddellijke observatie is dat de meeste van deze connectoren, nou ja, connectoren vereisen. Dat is een extra component die je op het bord moet plaatsen, wat geld kost. Voor productie-eenheden of grotere prototype-runs, zal die connector slechts één keer in de gehele levensduur van het product worden gebruikt, wat een verspilling is.

De Tag-Connect oplossingen of aangepaste footprints met pogo-pin gebaseerde connectoren hebben hier een duidelijk voordeel omdat ze geen componenten op de PCB vereisen, dus de kosten per debugconnector per bord dalen naar 0, wat geweldig is!

Zo ziet een Tag-Connect voetafdruk eruit op een echt bord:

En dit is hoe de kabel met pogo-pinnen eruitziet: De tweede belangrijke overweging is grootte, en de resulterende ruimtevereisten op het bord. De enige kanshebbers zijn de 10-pins 0.05" micro-header en een Tag-Connect 6-pins voetafdruk. De 10-pins micro-header is eigenlijk een beetje kleiner in één richting, maar het verschil is niet significant. Hier is hoe een 10-pins 0.05" micro-header eruitziet (deze is van een Nordic Semiconductor nRF52832 ontwikkelbord, de PCA10040):

Poten of Geen Poten?

Er zijn twee varianten van een Tag-Connect connector kabel: een met "poten" en een zonder "poten". Wat is het verschil?

Tag-Connect gebruikt pogo-pinnen, die binnenveren hebben en tegen de PCB duwen. Als je wilt dat de connector op zijn plaats blijft, moet je continu kracht erop uitoefenen. Dit is prima voor snel programmeren, waar je één hand kunt gebruiken om de connector op zijn plaats te houden en een andere om die programmeertaak te starten, maar werkt niet zo goed voor langdurige debugsessies. Voor dat, werkt de "benen" footprint (en connector) veel beter. De benen fungeren als kleine klemmen, dus zodra je de connector invoegt, klikken ze op hun plaats en houden de pogo-pinnen stevig tegen het bord, voor onbepaalde tijd.

Het probleem met de "poten" footprint is de grootte: het is aanzienlijk groter dan de variant "zonder poten". Wat nog erger is, het heeft vier grote gaten in het bord nodig. Grote gaten zijn altijd een probleem: ze moeten (uiteraard) door alle lagen heen, en je hebt ook een keepout-gebied rondom nodig. Dit betekent dat de impact van een "poten" footprint op je ontwerp veel groter is dan die van de variant "zonder poten".

Voor productie-eenheden, waar de verbinding waarschijnlijk slechts één keer in de levensduur van een product zal worden gemaakt en gemakkelijk de hele tijd met de hand kan worden gehouden, is er geen twijfel: u geeft zeker de voorkeur aan de "geen-poten" footprint, die ruimte op de printplaat bespaart. Maar wat te doen met de prototypes? Aan de ene kant kunt u de ruimte op de printplaat veroorloven, maar aan de andere kant wilt u de printplaat niet opnieuw ontwerpen alleen omdat u de gaten in de laatste revisie moet verwijderen.

Gelukkig is er nog een andere oplossing. Tag-Connect verkoopt een klein bevestigingsclipje. Het is een stuk PCB met drie sockets die passen op de pinnen van de Tag-Connect kabel. Het is geen mechanisch perfecte oplossing en de clips slijten na verloop van tijd (ze zijn ook ongelooflijk makkelijk te verliezen!), maar in de praktijk werkt het vrij goed.

Mijn aanbeveling is om altijd te gaan voor de "geen-poten" voetafdruk en kabels, koop een hoop bevestigingsclips, en bespaar op bordruimte en het herontwerpen van de borden.

Gebruik een standaard signaaltoewijzing

Ik heb hardware in het wild gezien, waar ontwerpers een Tag-Connect-voetafdruk gebruikten voor ARM SWD (op een Cortex-M0), maar signalen anders toewezen. Waarschijnlijk was de motivatie om de interface te verdoezelen.

Dit is iets wat ik niet zou aanraden: de verhulling wordt gemakkelijk ontdekt, en men eindigt met een incompatibele footprint, wat onvermijdelijk problemen zal veroorzaken in de toekomst.

Praktische Zaken

Tag-Connect beveelt aan dat er geen onderdelen worden geplaatst (of sporen worden gerouteerd) aan de andere kant van de footprint. Hoewel dat een goede aanbeveling is, heeft men niet altijd die luxe, vooral niet op kleine borden met strakke lay-outbeperkingen.

Zoals ik heb ontdekt, kun je ermee wegkomen om componenten aan de andere kant te plaatsen, zelfs wanneer je de klem gebruikt om de kabel op zijn plaats te houden. Ik zou echter aanraden om een stuk isolator tussen de componenten en de klem te gebruiken, om eventuele kortsluitingen te voorkomen (papier werkt goed). Hoewel dit niet de aanbevolen praktijk is, werkt dit wel, hoewel het vastzetten van de debugconnector iets meer betrokken wordt.

Hier is een voorbeeld van een prototypebord (excuseer de kwaliteit van het prototypesolderen) waar componenten binnen het gebied van de debug-voetafdruk zijn geplaatst:

Kritiek

Het is niet allemaal rozengeur en maneschijn met Tag-Connect. De website is niet goed georganiseerd, dus het is moeilijk om de informatie te vinden die je zoekt. Er wordt een veelvoud aan varianten aangeboden, en hoewel de meeste mensen slechts één type kabel nodig hebben, wordt dit niet prominent weergegeven. Helaas lijkt dit een traditie te zijn bij bedrijven die debug- en programmeerapparatuur maken in de embedded wereld.

Het tweede probleem dat ik heb is dat het bedrijf downloadbare CAD-bibliotheken met Tag-Connect-voetafdrukken aanbiedt, maar stelt dat:

Deze bestanden worden 'AS IS' geleverd en zonder enige garantie dat ze compleet zijn, vrij van fouten of geschikt voor gebruik. Controleer zorgvuldig de geïmporteerde decals tegen de meest recente datasheet die op de Tag-Connect website staat (zie hieronder). Let in het bijzonder op gatgroottes, pinnummering en let goed op de soldeerpasta-maskerlaag om ervoor te zorgen dat er geen soldeerpasta wordt afgezet op de footprint pads.

Als u in de ZIP-bestanden kijkt die worden verstrekt, zullen er meestal verschillende voetafdrukvarianten zijn voor een gegeven CAD. Welke gebruik ik? En waarom is het mijn verantwoordelijkheid om dit te verifiëren?

Ik denk dat Tag-Connect deze bibliotheek moet opruimen en een set ondersteunde voetafdrukken moet leveren, tenminste voor de meer populaire CAD-pakketten, zonder disclaimer. Het zou deel moeten uitmaken van de waarde van deze oplossing.

Conclusie

Alles overwogen, is Tag-Connect nog steeds de beste kant-en-klare oplossing voor debuggen en programmeren. Ik zou aanraden om het te standaardiseren en in al uw ontwerpen te gebruiken.

Eerdere blogposts: KiCon 2019 (2019-03-27)
Latere blogposts: Wat is nieuw: mei 2020 (2020-05-16)

PartsBox is een online app waarmee je de controle over je voorraad elektronische onderdelen, BOM-prijzen en kleinschalige productie kunt nemen. Het houdt bij waar componenten zijn opgeslagen, wat de huidige voorraadniveaus zijn en welke componenten in welke projecten/BOMs worden gebruikt.

Blogindex