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.
Enkele van de veelvoorkomende keuzes die vaak worden overwogen:
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):
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.
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.
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:
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.
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.
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.