Wybór złącza debugowania/programowania dla mikrokontrolera

Streszczenie TL;DR: dla ARM SWD, TI Spy-Bi-Wire, lub Microchip ICD, użyj obudowy Tag-Connect No-Legs ze standardowym przypisaniem pinów/padów i zdobądź kable Tag-Connect.

Projektując urządzenia wykorzystujące mikrokontrolery, należy zapewnić złącze do debugowania i programowania. Może być ono używane tylko do rozwoju, podczas pisania i debugowania oprogramowania, lub może być również pozostawione w jednostkach produkcyjnych, do programowania w fabryce.

Producenci i twórcy narzędzi upewnili się, że żyjemy w świecie, w którym istnieje mnóstwo złączy debugowania z dużą ilością zamieszania wokół nich. Dlatego kończymy z tym:

Więc, który złącze wybrać do nowego projektu?

Ten artykuł skupia się głównie na urządzeniach ARM, które mają interfejs SWD (Single-Wire Debug), ale jest również stosowny do innych części, takich jak Texas Instruments MSP430, który używa protokołu Spy Bi-Wire (2-przewodowy JTAG), Microchip ICD, czy nawet części, które wymagają bardziej kompletnego zestawu pinów JTAG.

Popularne złącza do debugowania

Niektóre z często rozważanych opcji:

  • Złącze JTAG 10-pinowe na nagłówku IDC 0,1". Zazwyczaj używany jest nagłówek męski. Wada: jest ogromne, a nagłówek kosztuje pieniądze.
  • Złącze debugowania Cortex za pomocą mikronagłówka 0,05" (10-pinowe lub 20-pinowe, Samtec FTSH-110 i FTSH-105). 10-pinowe złącze jest dość małe i dostępne jako część SMD, ale droższe niż złącza IDC.
  • 20-pinowe złącze IDC 0,1". Naprawdę nie rozważasz tego dinozaura, prawda? Jest większe niż niektóre z projektowanych przeze mnie płyt.
  • Niestandardowy zestaw 4 lub 6 pinów (lub przelotek, lub padów miedzianych). Problem tutaj leży w części "niestandardowej". Ostatecznie wróci to, by cię ugryźć w przyszłości, w dniu, gdy twoje niestandardowe złącze zepsuje się na hali produkcyjnej i będziesz musiał wysłać nowe z zagranicy, podczas gdy produkcja jest wstrzymana.
  • Odcisk Tag-Connect 6-pinowy w jednej z wariantów (z nogami lub bez nóg). Zauważ, że tutaj nie ma złącza: tylko standaryzowany odcisk na PCB.
  • Tag-Connect 6-pinowy + Tag-Connect 10-pinowy (dla sygnałów ETM): dla tej kombinacji jest nawet dostępny gotowy kabel, z 20-pinowym złączem IDC i standardowymi przypisaniami pinów ARM Cortex 20-pinowych.

Jedna natychmiastowa obserwacja to fakt, że większość tych złącz wymaga, cóż, złącz. 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 będzie używane tylko raz w całym cyklu życia produktu, co jest marnotrawstwem.

Rozwiązania Tag-Connect lub niestandardowe obrysy z złączami na piny sprężynowe mają oczywistą przewagę, ponieważ nie wymagają umieszczania żadnych komponentów na płytce PCB, więc koszt złącza debugowania na płytę spada do 0, co jest świetne!

Tak wygląda ślad Tag-Connect na prawdziwej płytce:

A tak wygląda kabel z pogo-pinami: Drugą ważną kwestią jest rozmiar i wynikające z tego wymagania dotyczące miejsca na płytce. Jedynymi konkurentami są 10-pinowy mikro-złącze 0.05" i miejsce montażowe Tag-Connect na 6 pinów. 10-pinowe mikro-złącze jest w rzeczywistości nieco mniejsze w jednym kierunku, ale różnica nie jest znacząca. Oto jak wygląda 10-pinowe mikro-złącze 0.05" (to jest z płytki rozwojowej Nordic Semiconductor nRF52832, PCA10040):

Nogi czy bez nóg?

Istnieją dwie wersje kabla złączowego Tag-Connect: jeden z "nogami" i jeden bez "nóg". Jaka jest różnica?

Tag-Connect używa pinów pogo, które mają sprężyny w środku i naciskają na PCB. Jeśli chcesz, aby złącze pozostało na miejscu, musisz stale wywierać na nie nacisk. To jest w porządku do szybkiego programowania, gdzie jedną ręką możesz trzymać złącze na miejscu, a drugą uruchomić zadanie programowania, ale nie działa to zbyt dobrze do przedłużonych sesji debugowania. W takim przypadku lepiej sprawdza się ślad "nogi" (i złącze). Nogi działają jak małe zaciski, więc gdy włożysz złącze, zatrzaskują się na miejscu i trzymają piny pogo mocno przyciśnięte do płytki, na nieokreślony czas.

Problem z obudową "nogi" polega na jej rozmiarze: jest znacznie większa niż wariant "bez nóg". Co gorsza, wymaga czterech dużych otworów w płytce. Duże otwory zawsze stanowią problem: muszą (oczywiście) przechodzić przez wszystkie warstwy, a także potrzebna jest wokół nich strefa wolna od elementów. Oznacza to, że wpływ obudowy "nogi" na projekt jest znacznie większy niż wariantu "bez nóg".

Dla jednostek produkcyjnych, gdzie połączenie będzie prawdopodobnie nawiązywane tylko raz w życiu produktu i może być łatwo trzymane w ręku przez cały czas, nie ma wątpliwości: zdecydowanie preferujesz wersję "bez nóżek", która oszczędza miejsce na płytce. Ale co z prototypami? Z jednej strony, możesz pozwolić sobie na miejsce na płytce, ale z drugiej strony, nie chcesz przeprojektowywać PCB tylko dlatego, że musisz usunąć otwory w ostatecznej wersji.

Na szczęście istnieje inne rozwiązanie. Tag-Connect sprzedaje małą zaciskarkę. To kawałek PCB z trzema gniazdami, które pasują do pinów kabla Tag-Connect. To nie jest mechanicznie doskonałe rozwiązanie i zaciski z czasem się zużywają (są również niesamowicie łatwe do zgubienia!), ale w praktyce działa to całkiem dobrze.

Moja rekomendacja to zawsze wybierać ślad "bez nóżek" i kable, kupować mnóstwo zacisków zatrzymujących i oszczędzać na przestrzeni na płytce oraz na przeprojektowaniu płyt.

Użyj standardowego przypisania sygnału

Widziałem sprzęt na żywo, 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 polecam tego: obfuskacja jest łatwo odkrywana, a skończy się na niekompatybilnym obrysie, co nieuchronnie spowoduje problemy w przyszłości.

Praktyczne aspekty

Tag-Connect zaleca, aby żadne komponenty nie były umieszczane (lub ścieżki prowadzone) po drugiej stronie śladu. Chociaż jest to dobra rekomendacja, nie zawsze ma się taki luksus, zwłaszcza na małych płytach z ciasnymi ograniczeniami układu.

Jak odkryłem, można sobie poradzić z umieszczaniem komponentów po drugiej stronie, nawet gdy używasz zacisku zatrzymującego, aby utrzymać kabel na miejscu. Sugerowałbym użycie kawałka izolatora między komponentami a zaciskiem zatrzymującym, jednak, aby zapobiec ewentualnym zwarcia (papier się sprawdza). Chociaż nie jest to zalecana praktyka, to działa, chociaż mocowanie złącza debugowania staje się trochę bardziej skomplikowane.

Oto przykład płytki prototypowej (przepraszamy za jakość lutowania prototypu), gdzie komponenty są umieszczone w obszarze śladu debugowania:

Krytyka

Nie wszystko jest idealne w Tag-Connect. Strona internetowa jest źle zorganizowana, więc trudno jest znaleźć szukane informacje. Jest wiele wariantów ofert, i chociaż większość osób będzie potrzebować tylko 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 wbudowanym.

Drugim problemem, który mam, jest to, że firma oferuje do pobrania biblioteki CAD z obrysami Tag-Connect, ale stwierdza, że:

Te pliki są dostarczane 'TAK JAK SĄ' i bez gwarancji, że są kompletne, wolne od błędów lub nadają się do użycia. Starannie sprawdź zaimportowane symbole względem najnowszej karty katalogowej dostarczonej 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ę maski pasty lutowniczej, aby upewnić się, że pasta lutownicza nie jest nanoszona na pady footprintu.

Jeśli spojrzysz na dostarczone pliki ZIP, zazwyczaj znajdziesz kilka wariantów śladu CAD dla danego komponentu. Którego mam użyć? I dlaczego to moja odpowiedzialność, aby to zweryfikować?

Myślę, że Tag-Connect powinien posprzątać tę bibliotekę i dostarczyć zestaw obsługiwanych śladów, przynajmniej dla bardziej popularnych pakietów CAD, bez zastrzeżeń. Powinno to być częścią wartości tego rozwiązania.

Wnioski

Biorąc wszystko pod uwagę, Tag-Connect nadal jest najlepszym dostępnym na rynku rozwiązaniem do debugowania i programowania. Poleciłbym standaryzację na nim i używanie go we wszystkich projektach.

Wcześniejsze wpisy na blogu: KiCon 2019 (2019-03-27)
Późniejsze wpisy na blogu: Co nowego: Maj 2020 (2020-05-16)

PartsBox to aplikacja online, która pozwala Ci kontrolować stan magazynowy komponentów elektronicznych, wycenę BOM i małoseryjną produkcję. Śledzi, gdzie przechowywane są komponenty, jakie są bieżące stany magazynowe i które komponenty są używane w których projektach/BOMach.

Indeks bloga