Streszczenie TL;DR: dla ARM SWD, TI Spy-Bi-Wire lub Microchip ICD, użyj footprintu Tag-Connect No-Legs ze standardowymi przypisaniami pinów/padów i kup kable Tag-Connect.
Projektując urządzenia wykorzystujące mikrokontrolery, należy zapewnić złącze do debugowania i programowania. Może ono być używane tylko podczas prac rozwojowych, przy pisaniu i debugowaniu oprogramowania, lub może pozostać w jednostkach produkcyjnych do programowania w fabryce.
Producenci i twórcy narzędzi zadbali o to, abyśmy żyli w świecie, w którym istnieje mnóstwo złączy debugowania i wiele zamieszania wokół nich. Dlatego kończymy z tym: 
Więc, które złącze wybrać do nowego projektu?
Ten artykuł koncentruje się głównie na urządzeniach ARM posiadających interfejs SWD (Single-Wire Debug), ale ma również zastosowanie do innych części, takich jak Texas Instruments MSP430, który wykorzystuje protokół Spy Bi-Wire (2-przewodowy JTAG), Microchip ICD, a nawet części wymagających pełniejszego zestawu pinów JTAG.
Niektóre z powszechnych wyborów, które są często brane pod uwagę:
Jedną z natychmiastowych obserwacji jest to, że większość tych złączy wymaga, cóż, złączy. To dodatkowy komponent, który musisz umieścić na płytce, co kosztuje pieniądze. W przypadku jednostek produkcyjnych lub większych serii prototypowych, to złącze zostanie użyte tylko raz w całym cyklu życia produktu, co jest marnotrawstwem.
Rozwiązania Tag-Connect lub niestandardowe footprinty ze złączami opartymi na pogo-pinach mają tutaj oczywistą przewagę, ponieważ nie wymagają umieszczania żadnych komponentów na PCB, więc koszt złącza debugowania na płytkę spada do 0, co jest świetne!
Tak wygląda footprint Tag-Connect na prawdziwej płytce: 
A tak wygląda kabel z pogo-pinami:
Drugim ważnym czynnikiem jest rozmiar i wynikające z niego wymagania dotyczące miejsca na płytce. Jedynymi kandydatami są 10-pinowe mikrozłącze 0.05" i footprint Tag-Connect 6-pin. 10-pinowe mikrozłącze jest w rzeczywistości nieco mniejsze w jednym kierunku, ale różnica nie jest znacząca. Oto jak wygląda 10-pinowe mikrozłącze 0.05" (to pochodzi z płytki rozwojowej Nordic Semiconductor nRF52832, PCA10040): 
Istnieją dwa warianty kabla złącza Tag-Connect: jeden z "nóżkami" i jeden "bez nóżek". Jaka jest różnica?
Tag-Connect używa pinów pogo, które mają wewnątrz sprężyny i naciskają na PCB. Jeśli chcesz, aby złącze pozostało na miejscu, musisz ciągle wywierać na nie siłę. Jest to w porządku przy szybkim programowaniu, gdzie jedną ręką można przytrzymać złącze, a drugą uruchomić zadanie programowania, ale nie sprawdza się to dobrze przy dłuższych sesjach debugowania. Do tego znacznie lepiej nadaje się footprint (i złącze) z "nóżkami". Nóżki działają jak małe klipsy, więc po włożeniu złącza zatrzaskują się na miejscu i trzymają piny pogo mocno przy płytce przez nieokreślony czas.
Problemem z footprintem typu "legs" jest jego rozmiar: jest znacznie większy niż wariant "no-legs". Co gorsza, wymaga czterech dużych otworów w płytce. Duże otwory są zawsze problemem: muszą (oczywiście) przechodzić przez wszystkie warstwy, a wokół nich potrzebny jest również obszar keepout. Oznacza to, że wpływ footprintu "legs" na twój projekt jest znacznie większy niż wariantu "no legs".
W przypadku jednostek produkcyjnych, gdzie połączenie będzie prawdopodobnie wykonane tylko raz w całym cyklu życia produktu i może być łatwo trzymane w ręku przez cały czas, nie ma wątpliwości: zdecydowanie wolisz footprint "bez nóżek", który oszczędza miejsce na płytce. Ale co zrobić z prototypami? Z jednej strony możesz sobie pozwolić na miejsce na płytce, ale z drugiej strony nie chcesz przeprojektowywać PCB tylko dlatego, że musisz usunąć otwory w ostatecznej rewizji.
Na szczęście istnieje inne rozwiązanie. Tag-Connect sprzedaje mały klips mocujący. To kawałek PCB z trzema gniazdami, które pasują do pinów kabla Tag-Connect. Nie jest to rozwiązanie idealne mechanicznie, a klipsy mają tendencję do zużywania się z czasem (są też niesamowicie łatwe do zgubienia!), ale w praktyce działa to całkiem dobrze.
Moim zaleceniem jest zawsze wybieranie footprintu „bez nóżek” i kabli, kupienie zestawu klipsów mocujących i zaoszczędzenie miejsca na płytce oraz uniknięcie przeprojektowywania płytek.
Widziałem sprzęt w użyciu, gdzie projektanci użyli footprintu Tag-Connect dla ARM SWD (na Cortex-M0), ale przypisali sygnały inaczej. Prawdopodobnie motywacją było zaciemnienie interfejsu.
Nie jest to coś, co bym polecał: zaciemnianie jest łatwe do odkrycia, a kończy się na niekompatybilnym footprintcie, co nieuchronnie spowoduje problemy w przyszłości.
Tag-Connect zaleca, aby żadne komponenty nie były umieszczane (ani ścieżki prowadzone) po drugiej stronie footprintu. Chociaż jest to dobre zalecenie, nie zawsze ma się ten luksus, zwłaszcza na małych płytkach z ciasnymi ograniczeniami układu.
Jak odkryłem, można uciec się do umieszczenia komponentów po drugiej stronie, nawet gdy używa się klipsa mocującego do przytrzymania kabla. Sugerowałbym jednak użycie kawałka izolatora między komponentami a klipsem mocującym, aby zapobiec ewentualnym zwarciom (papier sprawdza się dobrze). Chociaż nie jest to zalecana praktyka, to działa, chociaż zamocowanie złącza debugowania na miejscu staje się nieco bardziej skomplikowane.
Oto przykład płytki prototypowej (proszę wybaczyć jakość lutowania prototypowego), gdzie komponenty są umieszczone w obszarze footprintu debugowania: 
Z Tag-Connect nie wszystko jest idealne. Strona internetowa nie jest dobrze zorganizowana, więc trudno znaleźć poszukiwane informacje. Oferowana jest mnogość wariantów i chociaż większość ludzi będzie potrzebować jednego typu kabla, nie jest on wyraźnie wyeksponowany. Niestety, wydaje się to być tradycją w firmach produkujących sprzęt do debugowania i programowania w świecie embedded.
Drugim zarzutem, jaki mam, jest to, że firma oferuje do pobrania biblioteki CAD z footprintami Tag-Connect, ale stwierdza, że:
Pliki te są dostarczane w stanie 'TAKIM JAKIM SĄ' (AS IS) i bez gwarancji, że są kompletne, wolne od błędów lub odpowiednie do użycia. Dokładnie sprawdź zaimportowane naklejki (decals) z najnowszą kartą katalogową dostępną na stronie internetowej Tag-Connect (patrz poniżej). W szczególności sprawdź rozmiary otworów, numerację pinów i zwróć szczególną uwagę na warstwę pasty lutowniczej, aby upewnić się, że pasta lutownicza nie zostanie nałożona na pola lutownicze footprintu.
Jeśli zajrzysz do dostarczonych plików ZIP, zazwyczaj znajdziesz tam kilka wariantów footprintów dla danego programu CAD. Którego użyć? I dlaczego to ja muszę to weryfikować?
Uważam, że Tag-Connect powinien uporządkować tę bibliotekę i udostępnić zestaw obsługiwanych footprintów, przynajmniej dla bardziej popularnych pakietów CAD, bez zastrzeżeń prawnych. Powinno to być częścią wartości tego rozwiązania.
Biorąc wszystko pod uwagę, Tag-Connect jest nadal najlepszym gotowym rozwiązaniem do debugowania i programowania. Polecam standaryzację na nim i używanie go we wszystkich swoich projektach.
PartsBox to aplikacja online, która pozwala przejąć kontrolę nad stanami magazynowymi części elektronicznych, wyceną BOM i produkcją na małą skalę. Śledzi, gdzie przechowywane są części, jakie są aktualne stany magazynowe i które części są używane w których projektach/BOM-ach.