Ekosystem STM32

Podczas programowania mikrokontrolerów ogromne znaczenie ma dla nas wsparcie ze strony producenta. Wiadomo – im większe, tym lepiej. Obecnie producenci układów przywiązują coraz większą wagę do narzędzi pomagających programiście w pracy. Mikrokontrolery różnych producentów mają zbliżone funkcjonalności i w tym obszarze coraz trudniej jest wyróżnić się na rynku. Tym, czym dostawcy układów mogą zachęcić użytkowników i potencjalnych klientów, jest wsparcie.

Mowa tutaj zarówno o środowisku programistycznym, czyli IDE (Integrated Development Environment) oraz aplikacjach wspomagających np. monitorach zmiennych, jak również o oprogramowaniu w postaci bibliotek ułatwiających konfigurację mikrokontrolera oraz obsługę jego układów peryferyjnych.

Firma STmicroelectronics, czyli producent jednych z najpopularniejszych mikrokontrolerów, jest znakomitym przykładem tego, jak wsparcie producenta może zachęcić rzesze użytkowników do wyboru właśnie ich układów. Od wielu lat wspiera programistów przygotowując aplikacje ułatwiające pracę z STM32. Obecnie firma postawiła na integrację swoich najpopularniejszych narzędzi i od ponad roku dostępne jest STM32CubeIDE – połączenie środowiska TrueSTUDIOforSTM32 i konfiguratora STM32CubeMX. Zarówno TrueSTUDIO, jak i STM32CubeMX istnieje już na rynku od dłuższego czasu i cieszy się ogromnym zainteresowaniem wśród użytkowników. Teraz dostępne są w postaci jednego narzędzia, co jeszcze bardziej ułatwia pracę z mikrokontrolerami STM32.

TrueSTUDIOforSTM32 to następca popularnego od lat środowiska Atollic, które STMicrocontroller wykupiło i ograniczyło tylko do własnych mikrokontrolerów. Jest to platforma oparta o framework Eclipse/CDT przeznaczona do programowania STM32 w języku C/C++. Środowisko zawiera szereg narzędzi niezbędnych programiście: edytor kodu, kompilator GCC (GNU Compiler Collection) i narzędzia do debugowania.

STM32CubeMX jest graficznym konfiguratorem układów peryferyjnych mikrokontrolerów STM32. Pozwala na wybór układu lub jednej z oficjalnych płytek deweloperskich producenta i konfigurację dostępnych interfejsów. Ułatwia również przygotowanie zegarów do prawidłowej pracy oraz posiada narzędzie do analizy poboru prądu przez mikrokontroler. Konfigurator jest bardzo cenionym narzędziem przez użytkowników, ponieważ znacząco skraca proces konfiguracji mikrokontrolera i pozwala w przejrzysty sposób zrozumieć budowę peryferiów układu. STM32CubeMX generuje projekt z gotową inicjalizacją w oparciu o popularne biblioteki HAL Library, który w łatwy sposób możemy zaimportować do większości środowisk programistycznych.

Połączeniem TrueSTUDIOforSTM32 i STM32CubeMX jest najnowsze narzędzie firmy ST – STM32CubeIDE. STM32CubeIDE to kompleksowe narzędzie programistyczne dostępne na najpopularniejsze systemy operacyjne: Windows, Linux oraz MacOS. Jest to zaawansowana platforma programistyczna dla języka C/C++ z wbudowaną konfiguracją urządzeń peryferyjnych, generowaniem kodu, kompilacją kodu i funkcjami debugowania dla mikrokontrolerów i mikroprocesorów STM32. Opiera się na frameworku Eclipse/CDT i zestawu narzędzi GCC do programowania oraz GDB do debugowania. Stanowi wszechstronne narzędzie zawierające wszystko co potrzebne programiście STM32 w jednej aplikacji, co pozwala zaoszczędzić czas na instalację i korzystanie z kilku narzędzi. STM32CubeIDE ma również wbudowane podstawowe i zaawansowane funkcje debugowania, w tym podgląd rejestrów rdzenia procesora, pamięci i rejestrów peryferyjnych, a także możliwość śledzenia stanu zmiennych na żywo, interfejs Serial Wire Viewer i analizator błędów układu.

Chociaż STM32CubeIDE ma wbudowane narzędzie pozwalające na programowanie układu, często do chociażby sprawdzenia połączenia, czy odczytania pamięci mikrokontrolera potrzebna jest odpowiednia aplikacja, która pozwoli zrealizować to w łatwy i przystępny sposób. STM32CubeProgrammer to wszechstronne narzędzie do programowania produktów STM32. Zapewnia łatwe w użyciu i wydajne środowisko do odczytu, zapisu i weryfikacji pamięci urządzenia zarówno poprzez interfejs debugowania (JTAG i SWD), jak i przy użyciu bootloadera (UART, USB DFU, I2C, SPI i CAN). STM32CubeProgrammer oferuje szeroką gamę funkcji do programowania pamięci wewnętrznych STM32 (takich jak Flash, RAM i OTP), a także pamięci zewnętrznych. Umożliwia również programowanie i przesyłanie bajtów konfiguracyjnych, weryfikację procesu programowania i automatyzację za pomocą skryptów. Obsługuje formaty Motorola S19, Intel HEX, ELF i pliki binarne. STM32CubeProgrammer jest dostarczany w wersjach GUI (graficzny interfejs użytkownika) i CLI (interfejs wiersza poleceń). Ta pierwsza znakomicie sprawdzi się w codziennym użytkowaniu, kiedy potrzebujemy łatwego i przejrzystego narzędzia. Druga może być przydatna, kiedy chcemy zautomatyzować proces programowania i uruchomić go z poziomu własnej aplikacji.

Ostatnim z narzędzi, które na pewno przydadzą się każdemu programiście STM32, jest STM32CubeMonitor. Aplikacja ta jest następcą bardzo popularnego STM Studio. Pozwala na akwizycję danych w trakcie działania aplikacji w sposób nieinwazyjny – nie obciąża w żaden sposób aplikacji. Doskonale uzupełnia tradycyjne narzędzia do debugowania wbudowane w STM32CubeIDE. Dzięki STM32CubeMonitor możemy diagnozować aplikacje STM32 w czasie wykonywania, odczytując i wizualizując ich zmienne w czasie rzeczywistym. Aplikacja zapewnia wygodny edytor graficzny do prostego tworzenia niestandardowych zestawów paneli i szybkiego dodawania widżetów, takich jak wskaźniki, wykresy słupkowe czy kołowe. Dodatkowo oprócz monitorowania można też edytować zmienne. W razie potrzeby dane mogą być również zapisywane do pliku i poddane dalszej analizie w bardziej zaawansowanych narzędziach.   

Poza aplikacjami stanowiącymi ważną część ekosystemu STM32, ST jak każdy producent mikrokontrolerów przygotował zestaw narzędzi sprzętowych współpracujących z układami STM32. Są to oczywiście programatory. Obecnie na rynku dostępne są urządzenia w wersji 2 (ST-LINK/V2) oraz najnowsze w wersji 3 (ST-LINK-V3).

Starsze narzędzia w wersji 2, choć mniej rozbudowane pod względem funkcjonalności, nadal są często używane przez użytkowników. Są nimi:

  • ST-LINK/V2 – debugger i programator dla mikrokontrolerów STM8 i STM32. Wspiera obsługę interfejsu SWIM, JTAG i SWD.
  • ST-LINK/V2-ISOL – wersja ST-LINK/V2 z izolacją cyfrową między komputerem a mikrokontrolerem. Wytrzymuje napięcia do 1000 Vrms.
  • ST-LINK/V2-1 – wersja ST-LINK/V2 dostępna jako wbudowany programator w zestawy deweloperskie Nucleo i Discovery.

Najnowsze programatory w wersji 3:

  • ST-LINK-V3SET – debugger i programator dla mikrokontrolerów STM8 i STM32. Wspiera obsługę interfejsu JTAG i SWD. STLINK-V3SET zapewnia interfejs wirtualnego portu COM, umożliwiający komputerowi PC komunikację z mikrokontrolerem za pośrednictwem interfejsu UART i interfejsów SPI, I2C, CAN, GPIO (pozwala na programowanie układu za pomocą bootloadera).
  • STLINK-V3MINI – debugger i programator dla mikrokontrolerów STM8 i STM32. Przenośna wersja mini programatora ST-LINK-V3SET, którą możemy umieścić na płytce z własnym projektem i mieć programator zawsze pod ręką.

Programatory do prawidłowej pracy wymagają sterowników, które możemy zainstalować razem z jednym z narzędzi (STM32CubeIDE, STM32CubeProgrammer czy STM32CubeMonitor) lub pobrać ze strony producenta jako oddzielne pliki.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *