Programatory/debuggery
Jeszcze do niedawna zadania programatorów/debuggerów sprzętowych ograniczały się zwykle do zapisywania i odczytywania pamięci Flash mikrokontrolera oraz (w przypadku bardziej zaawansowanych rodzin procesorów, w tym ARM) do monitorowania oraz modyfikacji zawartości rejestrów i zmiennych. Dziś producenci narzędzi dla programistów coraz częściej integrują w nich szereg funkcji dodatkowych, znakomicie zwiększających użyteczność. Jako przykład warto tutaj wymienić programatory ST-Link zintegrowane z płytkami ewaluacyjnymi z serii STM32 Nucleo. Przykładowo – płytka NUCLEO-F439ZI zawiera (w „górnej” części, połączonej z głównym modułem za pomocą trzech wyłamywalnych łączników) nowoczesny interfejs programistyczny typu STLINK/V2-1, STLINK-V3E lub STLINK-V3EC. Oprócz standardowego programowania i debugowania, umożliwia on także komunikację w trybie wirtualnego portu szeregowego – jeden z bloków USART głównego procesora STM32F439ZI jest sprzężony z mikrokontrolerem zawiadującym pracą interfejsu, co po odpowiedniej konfiguracji umożliwia przesył danych do/z procesora, bez konieczności stosowania zewnętrznego konwertera USB-UART.
Jeszcze ciekawsze rozwiązania konstrukcyjne zastosowała firma ST Microelectronics w opracowanym przez siebie urządzeniu STLINK-V3PWR. Narzędzie, oprócz pełnienia funkcji programatora/debuggera, może także odgrywać rolę źródła mierzącego (SMU – source measurement unit), przeznaczonego do badania i profilowania poboru mocy układów energooszczędnych, np. czujników IoT czy urządzeń noszonych. Pomimo kompaktowych rozmiarów, narzędzie pozwala na zasilanie docelowego urządzenia napięciem w zakresie od 1,6 V do 3,6 V, przy poborze prądu nieprzekraczającym 500 mA (zabezpieczenie OCP jest ustawione na 550 mA). Co ważne, programowalna częstotliwość próbkowania może wynosić od 1 Sps do 100 kSps, przy czym zakres dynamiki pomiaru prądu jest niebywale szeroki – mierzalne są już natężenia na poziomie kilku nanoamperów, a górna granica zakresu jest równa 500 mA.
Przyrząd oferuje interfejsy JTAG oraz SWD (Serial Wire Debug), wspiera ponadto komunikację przez port wirtualny (VCP). Mało tego – producent udostępnił nawet… wbudowany mostek USB – SPI/I²C/CAN/GPIO, dzięki czemu użytkownicy mogą jeszcze łatwiej debuggować swoje projekty poprzez bezpośredni dostęp do warstwy fizycznej lokalnych interfejsów szeregowych. Warto dodać, że – jak zawsze w przypadku narzędzi deweloperskich ze stajni ST – także i w tym przypadku sprzęt ma pełne wsparcie ze strony IDE. Jednostka SMU sprawnie współpracuje bowiem z oprogramowaniem STM32CubeMonitor-Power, pozwalając na wygodne prowadzenie akwizycji oraz zapisywanie danych pomiarowych, rejestrowanych przy określonych przez użytkownika parametrach zasilania i wyzwalania.
Inne ciekawe rozwiązanie opracowała – doskonale znana na rynku narzędzi dla programistów embedded – firma MikroElektronika. Niewielkie urządzenie o nazwie UNI CODEGRIP to w pełni bezprzewodowy, uniwersalny programator/debugger przeznaczony do użycia z mikrokontrolerami STM32, Kinetis, TIVA, CEC, MSP, PIC, dsPIC, PIC32, AVR oraz GD32, co daje łącznie ponad 2700 modeli obsługiwanych układów(!). Komunikację z komputerem zapewnia wbudowany moduł Wi-Fi, choć nic nie stoi na przeszkodzie, by skorzystać z konwencjonalnego, przewodowego połączenia przez USB-C. Producent oferuje także szereg kompatybilnych z urządzeniem adapterów, pozwalających na podłączenie programatora/debuggera do różnych urządzeń docelowych.