STM32L4 - energooszczędny Cortex-M4F z rodziny STM32
| TechnikaSTMicroelectronics powoli domyka ofertę swoich mikrokontrolerów dla standardowych aplikacji, czego jednym z ostatnich przejawów są ultraszybkie mikrokontrolery STM32F7, wyposażone w rdzeń Cortex-M7. Jeszcze gorętszą nowością w ofercie producenta są mikrokontrolery o skrajnie odmiennym obszarze aplikacyjnym - STM32L4 - zoptymalizowane konstrukcyjnie do spełniania rygorystycznych wymogów minimalizacji poboru energii. W artykule pokrótce przedstawimy same mikrokontrolery i tanie zestawy startowe dla nich, wywodzące się ze znanych serii zestawów: NUCLEO i Discovery.
Minimalizacja poboru energii przez pracujący rdzeń mikrokontrolera pochłania firmę STMicroelectronics od lat, co - po latach rozwoju - przynosi coraz lepsze efekty. Coraz bardziej zaawansowana technologia produkcji struktur półprzewodnikowych oraz coraz bardziej zaawansowane pomysły implementowane zarówno w samej CPU, jak i blokach peryferyjnych, którymi CPU jest obudowywana, umożliwiają osiąganie coraz mniejszego poboru mocy bez szczególnej utraty wydajności.
Na rysunku 1 przedstawiamy przybliżone wartości natężenia prądu pobieranego przez CPU w mikrokontrolerach STM32L4 w różnych trybach pracy i ograniczonej aktywności w różnych trybach oszczędzania energii.
Mikrokontrolery STM32L4 uzupełniają ofertę popularnych rodzin mikrokontrolerów energooszczędnych: STM32L0 (rdzeń Cortex-M0+) oraz STM32L1 (rdzeń Cortex-M3 + peryferie low-power). Ich wewnętrzna budowa nie odbiega od dotychczasowych rozwiązań, co widać na schemacie blokowym z rysunku 2.
Podobnie jak w przypadku starszych mikrokontrolerów STM32L, najpoważniejszą różnicą w stosunku do klasycznych wersji STM32 jest użycie bloków peryferyjnych wykonanych w technologii low-power, dotyczy to przede wszystkim przetworników A/C (5 MSps - pobierają zaledwie 200 µA/MHz), timerów oraz bloków komunikacyjnych: UART, I²C i SPI. Peryferie LP są taktowane niezależnym (od głównego zegara systemowego) sygnałem zegarowym, co zwiększa elastyczność konfiguracji systemu taktującego.
Mikrokontrolery STM32L4 wyposażono w zaawansowany rdzeń Cortex-M4F (zintegrowany z FPU), który może być taktowany sygnałem zegarowym o częstotliwości 80 MHz. Produkowane obecnie mikrokontrolery są wyposażane w pamięci Flash o pojemności 1 MB (dual bank) lub 512 kB, w najbliższym czasie planowane są także układy o pojemności pamięci 256 kB (rys. 3). W każdym przypadku pamięć RAM ma pojemność 128 kB, co tworzy dogodne środowisko do realizacji aplikacji o niewielkim poborze prądu.
Wokół CPU producent zastosował wiele trybów oszczędzania, możliwość szybkiego i łatwego wybudzenia CPU z trybów uśpienia i szereg innych mechanizmów o wspólnej nazwie FlexPowerControl.
Zastosowane przez producenta w STM32L4 rozwiązania energooszczędne realnie ograniczyły pobór prądu, ale - jak pokazują testy CoreMark wykonane przez EEMBC - nie odbiło się to w znaczny sposób na wypadkowej wydajności CPU.
W publikowanych testach prezentowane mikrokontrolery osiągają wyniki 273 CoreMark oraz 100 DMIPS (1,25 DMIPS/MHz), co wynika między innymi z faktu wyposażenia ich w interfejs ST ART Accelerator (pośredniczący w dostępie CPU do pamięci Flash) oraz system magistralowy multi-AHB, który "obudowano" lokalnymi kontrolerami DMA.
Samodzielną weryfikację parametrów mikrokontrolerów STM32L4 umożliwiają - już tradycyjnie - tanie zestawy startowe przygotowane przez producenta. Wśród rozwiązań cieszących się dużą popularnością (co wynika z ceny) są dwa zestawy startowe: STM32L476G-DISCO (fot. 3) oraz Nucleo-L476RG (fot. 4).
Obydwa zestawy wyposażono w mikrokontrolery STM32L476 z pamięcią Flash o pojemności 1 MB i 128 kB RAM. Standardowym wyposażeniem obydwu zestawów jest programator-debugger ST-Link/V2-1 (w wersji współpracującej ze środowiskiem mbed.org), przyciski RESET oraz joystick lub mikroswitch do wykorzystania w aplikacji użytkownika. Jak widać, wyposażenie zestawu Discovery jest bogatsze niż Nucleo, w jego skład - poza mikrokontrolerem - wchodzą także:
- system pomiaru poboru prądu przez testowany mikrokontroler (fot. 5),
- sensory MEMS 9DoF (w tym cyfrowy kompas),
- wyświetlacz alfanumeryczny LCD o organizacji 4×24 segmenty,
- pamięć Flash qSPI o pojemności 128 Mb,
- kodek audio z wyjściem mini Jack 3,5 mm,
- mikrofon MEMS,
- interfejs USB-OTG do wykorzystania w aplikacji użytkownika.
Zestaw NUCLEO-L476RG jest dostarczany ze standardową aplikacją demonstracyjną, która realizuje funkcję migania pokładową diodą LED z częstotliwością zależną od ustawienia za pomocą przycisku użytkownika. Zestaw STM32L476G-DISCO dzięki bogatszemu wyposażeniu może zademonstrować więcej - domyślnie jest to przykładowych 7 aplikacji, w tym:
- pomiar napięcia zasilającego mikrokontroler,
- pobór prądu przez mikrokontroler w różnych trybach pracy (RUN @24MHz, SLEEP @24MHz, LPRUN, PL SLP @2MHz, STOP2, STDBY, SHTDWN),
- zapis sygnału audio do pamięci Flash qSPI (próbka 16-bitowa @48 kHz),
- odtwarzanie zapisanych sygnałów audio z pamięci Flash,
- cyfrowy kompas z procedurą kalibracji 3D,
- miernik natężenia dźwięku w otoczeniu (próbka 16-bitowa @48 kHz),
- stroik gitarowy (fot. 6).
Zestawy z serii Nucleo są zgodne z systemem Arduino (w wersji z zasilaniem 3,3 V), co pozwala wygodnie konfigurować różnorodne systemy z użyciem tanich ekspanderów oferowanych przez bardzo wielu producentów na świecie.
Uniwersalność zestawów Discovery jest mniejsza - nie są one bowiem kompatybilne ze sobą nawet w ramach rodziny, ale dzięki wyprowadzeniu wielu linii GPIO na złącza szpilkowe i bogate wyposażenie własne mogą być stosowane jako doskonałe narzędzie ewaluacyjne, także w zastosowaniach profesjonalnych.
Oprogramowanie demonstracyjne oraz konfiguracyjne dla obydwu zestawów jest dostarczane w ramach pakietu CUBE-L4, który można wykorzystywać samodzielnie lub jako element konfiguracji środowiska STM32Cube.
Piotr Zbysiński