STM32 – Co to jest i gdzie jest wykorzystywany?

Czas czytania: 4 min.

Mikrokontrolery ARM zrobiły prawdziwą furorę na rynku elektroniki. Czy warto zapoznać się bliżej z tą platformą? Dowiedz się więcej z naszego najnowszego wpisu!

„Odwieczny” dylemat - 8 bitów czy 32 bity?

Na początku trzeciej dekady XXI wieku można chyba bez zbędnej przesady stwierdzić, że zdecydowana większość elektroników rozpoczyna swoją przygodę z programowaniem mikrokontrolerów od układów 8-bitowych. Nieskomplikowane procesory – w tym przede wszystkim AVR czy PIC (produkowane przez firmę Microchip) – znajdują zastosowanie tam, gdzie priorytetem jest oszczędność kosztów, efektywne zużycie energii oraz łatwość programowania. Możemy spotkać je w szeregu aplikacji, począwszy od prostych układów sterowania w systemach wentylacyjnych, poprzez urządzenia peryferyjne komputerów, a skończywszy na przetwornikach stosowanych w automatyce przemysłowej.

Od kilkunastu lat znacznie bardziej rozbudowane mikrokontrolery 32-bitowe zyskują coraz większą popularność, a to za sprawą nieporównanie większej wydajności obliczeniowej i znacznie lepszego wyposażenia pod względem sprzętowych bloków peryferyjnych. Z tego też względu układy 32-bitowe – bazujące zwykle na architekturze ARM – są wykorzystywane w szerokim spektrum bardziej skomplikowanych zastosowań: warto tutaj wymienić chociażby urządzenia IoT, systemy monitoringu i sterowania, zaawansowane sterowniki przemysłowe, urządzenia medyczne, systemy telemetrii, rozbudowane interfejsy człowiek-maszyna (w tym panele operatorskie z wyświetlaczami dotykowymi) i wiele innych.

Mocniejsze jednostki 32-bitowe są najczęściej wybierane do zadań wymagających intensywnego przetwarzania danych w czasie rzeczywistym, wykonywania złożonych algorytmów na dużych strumieniach danych (np. audio lub wideo), rozbudowanych funkcji komunikacyjnych, czy też obsługi wysokopoziomowych systemów operacyjnych.

Mimo że moc obliczeniowa, szeroka gama bloków sprzętowych oraz dostępność rozbudowanych bibliotek programistycznych i zaawansowanych narzędzi deweloperskich dla mikrokontrolerów 32-bitowych są nieocenionymi zaletami, to mają one także swoją cenę – zarówno w kontekście kosztów samych układów scalonych, jak i pod względem trudności projektowania oraz programowania.

Mikrokontrolery STM32 - niezrównane możliwości w przystępnej cenie

Układy STM32 to nowoczesne, 32-bitowe mikrokontrolery i mikroprocesory aplikacyjne, produkowane przez firmę STMicroelectronics. Bazują one na wysokowydajnych rdzeniach ARM Cortex-M, wspieranych przez bogactwo rozbudowanych bloków peryferyjnych, do których możemy zaliczyć szybkie, 12-bitowe przetworniki ADC i DAC, złożone interfejsy komunikacyjne (SPI, I2C, USART, USB OTG, Ethernet PHY, CAN, I2S, HDMI CEC i wiele innych), zaawansowane timery/liczniki, koprocesory graficzne, kontrolery DMA i pamięci zewnętrznej, bloki wspierające algorytmy AES i CRC, czy wreszcie podstawowe otoczenie „systemowe”, w tym timery SysTick, watchdog czy RCC.

STM32 NUCLEO-L476RG - z MCU STM32L476RGT6 ARM Cortex M4.

W zależności od modelu, mikrokontrolery STM32 mogą być oparte na jednym z następujących rdzeni: Cortex-M0, M0+, M3, M4, M7 czy też H7. Wyższe numery rdzeni oznaczają zwiększone możliwości przetwarzania, co często wiąże się z obecnością jednostki zmiennoprzecinkowej (FPU), znacznie wspierającej wykonywanie algorytmów DSP czy też sterowania urządzeniami wykonawczymi (np. silnikami elektrycznymi) w pętli sprzężenia zwrotnego.

W zależności od konkretnej grupy produktów, ich rdzenie korzystają z architektury ARMv6-M, ARMv7-M, czy też ARMv7E-M, z wyjątkiem najnowszych mikrokontrolerów STM32, które opierają się na rdzeniach ARM Cortex-M33 z architekturą ARMv8-M. Co ważne, prostsze mikrokontrolery STM32 (w szczególności te należące do rodzin STM32F0, STM32F1 czy STM32G0, są dostępne w cenach detalicznych zbliżonych do cen wielu procesorów 8-bitowych, choć wielokrotnie „przebijają je” pod względem możliwości obliczeniowych i wyposażenia peryferyjnego.

Jakie produkty wchodzą w skład ekosystemu STM32?

STM32 to w istocie rozbudowany ekosystem, oparty wprawdzie na kilku rodzinach mikrokontrolerów (diametralnie różnych pod względem oferowanych przez nie możliwości), ale obejmujący także niezliczoną gamę narzędzi sprzętowych (płytek ewaluacyjnych i programatorów/debuggerów) oraz oprogramowania deweloperskiego (IDE, kompilatory, graficzne generatory kodu konfiguracyjnego, etc.) i obszernej dokumentacji (noty aplikacyjne, przykładowe projekty, noty katalogowe, poradniki dla programistów, etc.). Poniżej przedstawimy pokrótce najważniejsze grupy układów STM32, z którymi można spotkać się przeglądając zasoby internetowe czy też ofertę narzędzi uruchomieniowych.

  • STM32F0, STM32F1 – stosunkowo proste mikrokontrolery oparte na rdzeniach Cortex-M0 i M3, ukierunkowane na aplikacje o niskim koszcie produkcji i relatywnie niewielkim poborze energii, wyposażone jednak w szereg najczęściej wykorzystywanych peryferiów. Są szeroko stosowane w urządzeniach przemysłowych, elektronice konsumenckiej (nie wymagającej zaawansowanych ekranów graficznych), sprzęcie AGD i RTV oraz wielu innych.
  • STM32F4, STM32F7 – znacznie wydajniejsze, bazują już na rdzeniach Cortex-M4 i M7. Doskonale sprawdzają się w aplikacjach wymagających dużych możliwości w zakresie szybkiego przetwarzania danych, wspierają obsługę operacji zmiennoprzecinkowych, świetnie radzą sobie także w urządzeniach wymagających obsługi grafiki średniej i wysokiej rozdzielczości (na ekranach o przekątnej – zazwyczaj – nie przekraczającej kilku cali).
  • STM32H7 – seria procesorów o ogromnej wydajności obliczeniowej, oferująca wysoką częstotliwość taktowania i bogate interfejsy peryferyjne, w tym USB 2.0 HS czy Ethernet. Świetnie nadaje się do obsługi zaawansowanych interfejsów GUI, opartych na systemach operacyjnych wysokiego poziomu (np. Linux).
  • STM32L – obejmuje mikrokontrolery silnie zoptymalizowane pod kątem niskiego zużycia energii, wykorzystujące rdzenie od M0+ do M4, zaimplementowane jednak w procesie technologicznym, umożliwiającym znaczne wydłużenie czasu działania urządzenia na baterii lub akumulatorze. Najwyższe modele z tej serii (STM32L4) nadają się nawet do aplikacji sztucznej inteligencji.
  • STM32G – kolejna rodzina mikrokontrolerów STM32, która obejmuje podrodziny G0 oraz G4. Podczas gdy układy STM32G0 (Cortex-M0+) oferują świetny stosunek wydajności do poboru mocy, STM32G4 (z rdzeniem Cortex-M4, wyposażonym w FPU) skierowane są do zastosowań wymagających zaawansowanego przetwarzania sygnałów czy też sterowania silników.
  • STM32W – rodzina obejmująca układy bazujące na rdzeniach ARM Cortex M0+, M4 lub M33, wyposażone w zintegrowane transceivery bezprzewodowe i – za ich sprawą – doskonale nadające się do aplikacji w segmencie urządzeń IoT.

Jak zacząć przygodę z programowaniem STM32?

To pytanie zadają sobie od wielu lat kolejne roczniki elektroników, znajdujących się zresztą na różnych poziomach zaawansowania. Odpowiedzi może być kilka, a wszystko zależy rzecz jasna od indywidualnych preferencji. Osoby biegle władające językiem angielskim mogą z powodzeniem korzystać z obszernej bazy materiałów dydaktycznych, dostępnej na stronie internetowej producenta – firmy STMicroelectronics.

Na szczęście, istnieje także znacznie prostsza, krótsza i przyjemniejsza ścieżka – na polskim gruncie powstała bowiem seria doskonałych kursów programowania STM32, dostępnych na otwartej platformie Forbot. I tutaj mamy świetną wiadomość dla wszystkich zainteresowanych szybkim wdrożeniem w arkana STM32 – w ofercie sklepu Botland można znaleźć gotowe zestawy elementów, niezbędnych do realizacji wszystkich opisanych w kursach mini projektów. W zestawach znajdują się zarówno płytki uruchomieniowe STM32, jak i wszelkie dodatkowe komponenty elektroniczne, przewody połączeniowe, płytki stykowe i moduły rozszerzeń, dzięki czemu wejście w świat nowoczesnych mikrokontrolerów nie przysparza najmniejszych problemów, związanych z samodzielnym kompletowaniem potrzebnego wyposażenia.

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.5 / 5. Liczba głosów: 11

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Mateusz Mróz

Mateusz Mróz

Marzyciel, miłośnik podróży i fan nowinek technologicznych. Swoje pomysły na Raspberry Pi i Arduino chętnie przekuwa w konkrety. Uparty samouk – o pomoc prosi dopiero wtedy kiedy zabraknie pozycji w wyszukiwarce. Uważa, że przy odpowiednim podejściu można osiągnąć każdy cel.

Zobacz więcej:

Rafał Bartoszak

Kurs Raspberry Pi Pico – #1 – Zaczynamy

Pierwszy artykuł z cyklu poradników dotyczących programowania dzięki platformie Raspberry Pi Pico W, czyli niewielkiej płytce wyposażonej w całkiem mocny mikrokontroler. Zaczynamy od podstawowych zagadnień i przygotowania odpowiedniego sprzętu, tak aby później na praktycznych przykładach nauczyć się bardziej rozbudowanego programowania.

Witold Krieser

Błędy pomiarowe

Celem artykułu jest analiza wpływów i sposobów włączania przyrządów pomiarowych do obwodu elektrycznego oraz przekazanie informacji dotyczących typowych woltomierzy, amperomierzy, odczytu wskazań wartości mierzonych oraz popełnianych błędów pomiarowych.

Dodaj komentarz

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

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce Prywatności oraz Warunkom użytkowania.