Mikrokontrolery STM32 - po które z nich warto sięgnąć?
| TechnikaSTMicroelectronics to jeden z najpopularniejszych producentów mikrokontrolerów w Polsce. Swoją renomę zawdzięcza nie tylko udanym konstrukcjom, ale i wdrażaniu najnowszych technologii oraz bogatej ofercie. W niniejszym artykule prezentujemy niektóre z ostatnio wprowadzonych układów ST oraz wybrane ciekawe modele, które od jakiegoś czasu cieszą się dużą popularnością wśród polskich inżynierów.
ST słynie z dobrych produktów opartych na rdzeniach ARM Cortex, należących do rodzin układów STM32. Obecnie warto zwrócić szczególną uwagę na podzespoły z rodzin STM32L4+, STM32F7 i STM32F4.
STM32L4+
Nowa rodzina układów firmy STMicroelectronics nosi nazwę STM32L4+ i cechuje się bardzo wysoką, jak na pobór mocy, mocą obliczeniową, dochodzącą do 150 DMIPS przy taktowaniu 120 MHz. Pod względem konstrukcji i funkcji układy te są bardzo zbliżone do nieco starszej rodziny - STM32L4, ale dzięki m.in. wyższemu taktowaniu są w stanie pracować bardziej wydajnie. Uzyskały nawet 233 punkty w teście ULPMark-CP.
Układy z rodziny STM32L4+ bazują na rdzeniu ARM Cortex-M4 i są polecane do zastosowań w niewielkich, inteligentnych opaskach sportowych i zegarkach, przenośnych urządzeniach medycznych, inteligentnych czujnikach przemysłowych i innych urządzeniach, które muszą szybko przetwarzać dane przy jak najmniejszym poborze mocy.
Duża szybkość obliczeniowa układów z rodziny STM32L4+ łączy się z obszerną, zintegrowaną pamięcią. W wielu nowoczesnych aplikacjach znaczenie będzie mieć też zaawansowany sterownik graficzny Chrom-GRC, który jest autorskim rozwiązaniem firmy STMicroelectronics. Zaprojektowano go w taki sposób, żeby nie marnować pamięci w sytuacjach, gdy kształt podłączonego wyświetlacza nie jest prostokątny.
Zamiast przechowywać informacje o pikselach, które i tak nigdy nie zostaną zapalone, bloki pikseli widocznych są odpowiednio zestawiane obok siebie i cała pamięć jest aktywnie wykorzystywana. Pozwala to zaoszczędzić około 20% pamięci w przypadku całkowicie okrągłych wyświetlaczy. Oczywiście sterownik poprawnie obsługuje także wyświetlacze o klasycznych kształtach.
Na wydajność, szczególnie w kontekście grafiki, wpływ ma także akcelerator Chrom-ART (DMA2D), który odciąża jednostkę CPU. W praktyce jest w stanie dwukrotnie szybciej wykonywać operacje obliczeń przezroczystości i sumowania pikseli w oparciu o różny jej stopień, a także zadania konwersji formatów pikseli.
Układy z serii STM32L4+ zawierają 640 KB pamięci SRAM i do 2 MB pamięci Flash, podzielonej na dwa banki. Można w nich równocześnie prowadzić operacje odczytu i zapisu. Warto zauważyć, że wartości te sprawiają, że jest to największa pamięć wewnętrzna, dostępna wśród mikrokontrolerów o ultraniskim poborze mocy.
Mikrokontrolery STM32L4+ zostały także przystosowane do pracy w aplikacjach wymagających podwyższonego bezpieczeństwa. W tym celu zaimplementowano rozbudowane funkcje korekcji błędów pamięci. Natomiast szybkość komunikacji z otoczeniem zapewniono poprzez wykorzystanie podwójnego interfejsu Octal SPI, który umożliwia uzyskanie wysokich przepustowości podczas przesyłania danych z oraz do pamięci single/dual/quad/octal SPI, pamięci HyperBus i zwykłych Flash lub SRAM.
Pomimo dużej dostępnej wydajności omawianych układów, są one przystosowane do pracy w urządzeniach wymagających bardzo małego poboru mocy. Jest to możliwe dzięki zastosowaniu technologii obniżających do minimum pobór mocy, przy jednoczesnym podtrzymywaniu pamięci SRAM oraz stanów linii wejść i wyjść. Natomiast w trybie shutdown mikrokontrolery te pobierają jedynie 20 nA.
Nowe MCU zostały wyposażone w bardzo bogaty zestaw obwodów peryferyjnych. Na liście funkcji znalazły się porty USB z obsługą trybów Host, Device i OTG, nawet 17 timerów, interfejsy SPI, SAI i CAN oraz szybkie, konfigurowalne filtry cyfrowe, do realizacji algorytmów DSP. W wielu aplikacjach przydatne będą też zintegrowane przetworniki analogowo-cyfrowe i cyfrowo- analogowe, pracujące z precyzyjnymi źródłami referencyjnymi oraz komparatory i wzmacniacze operacyjne.
STM32F7 i STM32F4
Drugą nowoczesną rodziną 32-bitowych mikrokontrolerów marki STMicroelectronics, opartych na rdzeniach ARM, jest STM32F7. Układy te bazują na bardzo wydajnych rdzeniach Cortex-M7, około półtora, a w niektórych przypadkach nawet dwukrotnie szybszych niż układy z rdzeniem Cortex-M4, taktowane tym samym zegarem. Rdzenie Cortex-M7 są zbliżone konstrukcyjnie do Cortex-M4, ale zostały dodatkowo przystosowane do współpracy z szybką, wewnętrzną pamięcią SRAM TCM, pamięcią cache dla danych i instrukcji oraz obsługują przetwarzanie potokowe z predykcją i podziałem na 6 etapów.
ST był pierwszym producentem układów scalonych, który zastosował rdzenie Cortex-M7 w swoich mikrokontrolerach. Żeby uniknąć ograniczonej przepustowości podczas dostępu do pamięci Flash, skorzystano z buforowania za pomocą sprzętowego akceleratora ART (Adaptive Real-Time), który rozkłada 128-bitowe słowa z pamięci Flash na 16-lub 32-bitowe słowa, które są kolejkowane w lokalnej pamięci cache.
Układy z rodziny STM-32F7 mogą być taktowane nawet zegarem 216 MHz i mimo zaawansowanej budowy tych podzespołów, producent zachował kompatybilność pod względem rozmieszczenia wyprowadzeń w obudowie i charakterystyki elektryczno-czasowej sygnałów z mikrokontrolerami z rodziny STM32F4. Dzięki temu ewentualna modernizacja starszego projektu nie powinna nastręczać dużych problemów.
W przypadku, gdy tworzone urządzenie wymaga wydajności wyższej niż dostępna w ramach układów STM32L4 i STM32L4+, ale sięganie po rdzenie Cortex-M7 nie jest konieczne, warto zwrócić uwagę na nieco starszą, ale sprawdzoną rodzinę STM32F4, bazującą na rdzeniu Cortex-M4. Układy te nie mają tak zaawansowanych funkcji oszczędzania energii, jak rodziny STM32L4 i STM32L4+, ale cechują się dobrą wydajnością i niskimi cenami.
Zestawy deweloperskie
STMicroelectronics przygotował również szereg zestawów startowych, które ułatwiają rozpoczęcie prac z mikrokontrolerami z rdzeniami Cortex-M4 i Cortex-M7 oraz prototypowanie urządzeń opartych na nich.
Dostępne zestawy deweloperskie można podzielić na trzy grupy: Nucleo, Discovery i Eval.
Płytki STM32 Nucleo pozwalają praktycznie każdemu na szybkie przetestowanie nowych pomysłów z niemal dowolnymi mikrokontrolerami STM32. Układ wyprowadzeń płytek Nucleo został zestandaryzowany tak, by można było do nich podłączać dodatkowe moduły sprzętowe. Płytki są też zgodne pod względem wyprowadzeń z Arduino, co umożliwia bezproblemowe łączenie ich z tymi popularnymi modułami.
Ponadto zawierają wbudowany debugger/programator ST-Link, a więc nie ma potrzeby stosowania żadnych dodatkowych narzędzi. Całość wspierana jest przez bogate oprogramowanie, w tym obszerne biblioteki programowe i przykłady kodów źródłowych. Płytki Nucleo współdziałają z oprogramowaniem firm IAR, Keil, mbed i innym.
Zestawy STM32 Discovery to również niedrogie, ale kompletne rozwiązania, przygotowane na potrzeby testowania i sprawdzania możliwości mikrokontrolerów STM32. Nie są tak zestandaryzowane jak moduły Nucleo, ale mają wszystko, co potrzebne, by zaprezentować określone specyficzne cechy wybranej grupy podzespołów.
Są dostarczane wraz z odpowiednimi bibliotekami programowymi i szeregiem przykładowych programów, w pełni demonstrujących możliwości mikrokontrolerów. Mają też zintegrowane debuggery i programatory.
Najbardziej zaawansowane, a przez to i nieco droższe, są zestawy ewaluacyjne serii Eval, które w kompletny sposób prezentują możliwości i pozwalają na testowanie mikrokontrolerów STM32. Zostały one pomyślane jako swoiste projekty referencyjne, zbudowane z wykorzystaniem danych MCU i powiązanych z nimi podzespołów.
Przykładowe zestawy
Jednymi z najciekawszych zestawów z serii Nucleo, będącymi zarazem dobrymi reprezentantami tej grupy produktów, są modele wyposażone w mikrokontrolery STM32F746ZG (1 MB Flash, 340 KB RAM) i STM32F767ZI (2 MB Flash, 512 KB RAM). W ramach tych zestawów dostępne są:
- programator-debugger ST-Link/v2-1 (mogący pracować jako: wirtualny COM, urządzenie pamięci masowej, interfejs debugujący), zgodny z mbed.org,
- interfejs USB OTG ze złączem Micro-AB,
- interfejs Ethernet IEEE-802.3-2002,
- trzy diody LED,
- dwa przyciski, w tym jeden do aplikacji użytkownika,
- dwa zestawy złączy peryferyjnych: ST Zio (zgodne z Arduino Uno v3) oraz ST morpho.
Dzięki prostej budowie ceny tych zestawów są bardzo atrakcyjne.
Jako przykłady zestawów serii Discovery warto przytoczyć dwa modele z mikrokontrolerami z rodziny STM32F7. Są to STM32F746G-DISCO i STM32F769IDISCO, przy czym ten drugi jest dostępny również w wersji STM32F769I-DISC1, a więc pozbawionej wyświetlacza LCD.
Zestaw STM32F746G-DISCO wyposażono w pamięć SDRAM o pojemności 128 Mb (z czego mikrokontroler wykorzystuje 64 Mb), 128 Mb pamięci Flash z interfejsem Quad-SPI, dwa mikrofony MEMS, interfejs ethernetowy IEEE-802.3-2002 oraz 4,3-calowy wyświetlacz z matrycą 480×272 piksele, zintegrowany z pojemnościowym panelem dotykowym.
Zestaw wyposażono także w złącze kamery CCD, sterownik i wzmacniacz audio, interfejsy USB OTG HS oraz USB OTG FS ze złączami Micro-AB, złącze dla karty Micro SD i przycisk dla aplikacji użytkownika. Co ciekawe, zestaw ma złącza umożliwiające podłączenie modułów zgodnych z Arduino UNO v3 oraz wbudowany programator debugger ST Link/v2-1, który jest zgodny m.in. z mbed.org.
Zestaw STM32F769I-DISCO wydaje się bardzo podobny do powyższego, ale w praktyce mocno różni się wyposażeniem. Poza innym mikrokontrolerem w STM32F769I-DISCO zastosowano także:
- cztery zamiast dwóch mikrofony MEMS (dołączone do interfejsu DFSDM),
- interfejs ethernetowy, wspierający PoE (IEEE 802.3af), który umożliwia zasilanie urządzeń o mocy do 3 W za pomocą okablowania sieciowego,
- wyświetlacz LCD z interfejsem MIPIDSI, zintegrowany z pojemnościowym ekranem dotykowym.
Wśród przykładów oprogramowania przygotowanego na te zestawy znalazły się m.in. odtwarzacze multimedialne, rejestrator audio, sieciowy serwer VNC oraz interfejsy użytkownika, bazujące na bibliotekach graficznych TouchGFX i Embedded Wizard.
Podsumowanie
Zaprezentowane w niniejszym artykule produkty to prawdopodobnie najciekawsze układy i zestawy z bardzo popularnej serii STM32. Warto przyjrzeć się im w pierwszej kolejności podczas tworzenia nowych aplikacji.
Wszystkie są dostępne prosto z magazynów firmy Micros, która dostarcza także szereg innych produktów marki STMicroelectronics i konkurencyjnych producentów. W ofercie Microsa znaleźć można również mikrokontrolery rodzin STM32F0, STM32F1, STM32F2, STM32F3, STM32L0, STM32L1, STM8S, STM8L i wielu innych.
Micros sp. j. W. Kędra i J. Lic