ST-LINK/V2 i ST-LINK/V2-1 vs. STLINK-V3 – najważniejsze różnice

Udostępnij

ST-LINK od lat stanowi podstawowe narzędzie do programowania i debugowania mikrokontrolerów STM32. W wielu laboratoriach funkcjonują równolegle wersje ST-LINK/V2 oraz nowsze sondy z rodziny STLINK-V3. Różnice między nimi nie sprowadzają się jednak wyłącznie do szybkości transmisji danych pomiędzy układem docelowym a komputerem. STLINK-V3 jest bowiem rozbudowaną platformą przeznaczoną do debugowania, programowania i komunikacji z układem docelowym, wyposażoną w szereg dodatkowych funkcji niebywale ułatwiających pracę programistom systemów wbudowanych. W artykule zebraliśmy różnice najważniejsze z punktu widzenia inżyniera pracującego z zestawami ewaluacyjnymi od ST, a także własnym sprzętem.

Klasyczny ST-LINK/V2 jest samodzielną sondą programująco-debugującą zasilaną z portu USB i wyposażoną w interfejs USB 2.0 Full-Speed. Obsługuje SWD (Single-Wire Debug), JTAG, SWV (Serial Wire Viewer) oraz – co bywa istotne w niektórych projektach – również interfejs SWIM przeznaczony do obsługi 8-bitowych mikrokontrolerów STM8. Oficjalny ST-LINK/V2 może komunikować się z mikrokontrolerami pracującymi z napięciem zasilania od 1,65 V do 3,6 V, przy czym wejścia urządzenia tolerują poziomy logiczne aż do 5 V.

Z punktu widzenia codziennej pracy z STM32 największym ograniczeniem klasycznego ST-LINK/V2 jest jego prostsza architektura USB. Podstawowy ST-LINK/V2 nie udostępnia natywnie takich funkcji jak Virtual COM Port czy Mass Storage. Te możliwości pojawiły się dopiero w odmianach pochodnych, czyli ST-LINK/V2-1 (będącym trzecią generacją debuggera), a także w kilku wersjach „pośrednich” (ST-LINK/V2-A, ST-LINK/V2-B czy STLINK-V2EC). W praktyce oznacza to, że samodzielny ST-LINK/V2 sprawdza się jako klasyczny debugger, ale nie zastępuje adaptera UART-USB ani wygodnego mechanizmu „drag-and-drop” do szybkiego wgrywania plików binarnych. Warto w tym miejscu dodać, że ta ostatnia funkcja została dodana w celu obsługi platformy programistycznej mbed.

Najbardziej widoczna różnica między różnymi generacjami debuggerów ST dotyczy obsługi portu USB. ST-LINK/V2-1 korzysta z USB 2.0 Full-Speed, natomiast STLINK-V3 w wariantach takich jak STLINK-V3SET, STLINK-V3MODS, STLINK-V3MINIE, STLINK-V3EC i STLINK-V3PWR obsługuje już USB 2.0 High-Speed. Oznacza to, że podczas gdy starsze interfejsy mogą osiągnąć teoretyczną szybkość transferu danych do 12 Mbit/s, to dla wersji V3 ten limit podniesiono aż do 480 Mbit/s (po stronie magistrali USB). Sama przepustowość USB nie przekłada się oczywiście liniowo na czas programowania każdego układu, bo decydujące znaczenie mają ograniczenia pamięci Flash mikrokontrolera, wymogi algorytmu programowania, częstotliwość zegara debuggera czy wreszcie implementacja sterowników po stronie PC. Przy dużych obrazach firmware’u oraz częstym programowaniu w cyklu kompilacja–test różnica jest jednak zdecydowanie odczuwalna.

STLINK-V3 jest też urządzeniem bardziej złożonym funkcjonalnie. „Trójka” to generacja nowsza i mocniejsza pod każdym względem, wyposażona m.in. w funkcję multipath USB bridge. W praktyce oznacza to, że sonda nie jest wyłącznie interfejsem debugowania – może także odgrywać rolę mostka USB – SPI/UART/I²C/CAN FD/GPIO – zależnie od konkretnego wariantu i użytych złączy lub płytek rozszerzeń.

STLINK-V3EC, czyli wbudowana wersja programatora/debuggera najnowszej generacji dostępna w nowocześniejszych zestawach ewaluacyjnych STM32 (fot. HardwareDesigner.pl)

STDC14 zamiast klasycznego podejścia do złącza goldpin/IDC

Jedną z najważniejszych zmian mechanicznych i funkcjonalnych jest wprowadzenie miniaturowego złącza STDC14, które zastąpiło starsze złącza rastrowe 2,54 mm. Choć w przypadku zestawu STLINK-V3SET producent dostarcza zarówno przewody zgodne z popularnymi standardami debugowania, jak i przewód STDC14, to inne urządzenia (np. STLINK-V3PWR) mają już tylko samo gniazdo STDC14. Standard ten można traktować jako rozszerzenie kompaktowych złączy debugowych: oprócz linii SWD/JTAG udostępnia on również sygnały potrzebne do obsługi wirtualnego portu szeregowego (Virtual COM Port) i kilku dodatkowych funkcji.

Ma to praktyczne znaczenie przy projektowaniu własnych płytek. Jeśli na PCB przewidzimy tylko minimalistyczną implementację SWD (linie SWDIO, SWCLK, NRST oraz zasilanie), debugger będzie działał, ale nie wykorzystamy pełnego potencjału STLINK-V3. Jeżeli natomiast w projekcie od razu uwzględnimy STDC14, można tym samym złączem obsłużyć debugowanie, programowanie oraz kanał UART, który widoczny jest w systemie operacyjnym jak zwykła przejściówka USB-UART. W przypadku projektów R&D, produkcji małoseryjnej czy stanowisk serwisowych będzie to często równoznaczne z istotnym uproszczeniem okablowania. Trzeba jednak uczciwie przyznać, że zastosowanie złącza o tak małym rastrze (STDC14 ma rozstaw pinów równy 1,27 mm) jest mniej przyjazne wszystkim tym, którzy chętnie korzystali dotąd w swoich prototypach z popularnych przewodów z wtykami BLS (DuPont 2,54 mm).

Przewód tasiemkowy podłączony do gniazda STDC14 programatora STLINK-V3PWR (fot. HardwareDesigner.pl)

Virtual COM Port i Mass Storage

W rodzinie STLINK-V3 obsługa VCP jest integralnym elementem architektury urządzenia. Dokumentacja ST podaje, że częstotliwość/bitrate tego portu dochodzi nawet do 15 MHz (15 Mbit/s), jest to więc interfejs istotnie szybszy niż większość samodzielnych adapterów USB-UART.

Druga wygodna funkcja to Mass Storage, czyli możliwość programowania pamięci Flash przez przeciągnięcie pliku binarnego w eksploratorze plików. W rodzinie STLINK-V3 funkcja ta jest dostępna we wszystkich sondach z wyjątkiem płytek-córek, przy czym w STLINK-V3MINIE jest domyślnie wyłączona. W razie potrzeby można ją aktywować ponownie przy użyciu programu STLinkUpgrade. Choć funkcja programowania metodą „drag-and-drop” nie stanowi z oczywistych przyczyn zamiennika pełnego debugowania, to bardzo dobrze sprawdza się przy demonstracjach, aktualizacji przykładowych aplikacji czy szybkim testowaniu płytek bez uruchamiania całego środowiska IDE.

Różnice w obsłudze napięć zasilania

Porównując ST-LINK/V2 i STLINK-V3, łatwo popełnić błąd polegający na zestawieniu całych rodzin jako jednorodnych produktów. Klasyczny ST-LINK/V2 obsługuje JTAG/SWD dla napięć aplikacji od 1,65 V do 3,6 V. Tymczasem STLINK-V3SET w podstawowej konfiguracji dla JTAG/SWD pracuje z mikrokontrolerami zasilanymi napięciem z zakresu 3,0…3,6 V. Dopiero dodatkowy moduł B-STLINK-VOLT rozszerza użycie STLINK-V3SET na zakres 1,65…3,3 V, a B-STLINK-ISOL dodaje izolację galwaniczną. Wyjątki w rodzinie STLINK-V3 są dwa: STLINK-V3MINIE (niewielka, samodzielna sonda z USB-C obsługująca napięcia w zakresie 1,65…3,6 V) oraz…

Osobną kategorią w rodzinie STLINK-V3 jest STLINK-V3PWR. Jest to nie tylko debugger/programator, ale również jednokwadrantowy moduł Source Measurement Unit (SMU). Umożliwia on zasilanie badanego układu napięciem regulowanym programowo od 1,6 V do 3,6 V, a dodatkowo pozwala na pomiary: prądu w zakresie od pojedynczych nA do 500 mA (z zabezpieczeniem OCP ustawionym na 550 mA) i mocy do 1,65 W, przy próbkowaniu nawet do 100 kSps. Dodatkowe wyjście pomocnicze może dostarczyć do 2 A prądu, ale już bez funkcji pomiarowych (OCP jest w tym przypadku ustawione na 2,5 A).

STLINK-V3PWR – zdecydowanie najbardziej zaawansowane narzędzie do debugowania i programowania mikrokontrolerów STM32, wyposażone w funkcję SMU i dodatkowe wyjście zasilające (fot. HardwareDesigner.pl)

Co wybrać w praktyce?

ST-LINK/V2 nadal ma sens, jeżeli pracujemy ze starszymi projektami, potrzebujemy SWIM dla STM8 albo mamy sprawdzoną infrastrukturę laboratoryjną opartą na klasycznym złączu JTAG/SWD. Do prostego programowania STM32 przez SWD w wielu przypadkach interfejs ten okaże się w zupełności wystarczający.

STLINK-V3 warto wybrać do nowych projektów STM32, szczególnie gdy znaczenie mają szybkość programowania, wygodny w użyciu port VCP, tryb Mass Storage, obsługa mostków komunikacyjnych albo możliwość rozbudowy o izolację, translację poziomów czy pomiar poboru energii. W nowych płytkach prototypowych rozsądnym wyborem jest zaprojektowanie złącza STDC14, nawet jeśli na początku używane są wyłącznie linie SWD. Daje to większą elastyczność bez konieczności dodawania osobnego konwertera UART-USB.

Źródła

  1. STLINK-V3: New source measurement unit and 5 reasons to fall in love with the growing interface
  2. Overview of ST-LINK derivatives
Mateusz
Mateusz
Redaktor technologiczny portalu HardwareDesigner.pl. Doświadczony konstruktor urządzeń elektronicznych i programista mikrokontrolerów, w szczególności STM32 i ESP32.

Czytaj więcej

Wybrane dla Ciebie