Energooszczędne STM32 z Cortex-M4F: podrodzina STM32F401/STM32F411 (STM32 Dynamic Efficiency Line)

Mikrokontrolery STM32F4 (Cortex-M4F) są przez firmę STMicroelectronics pozycjonowane jako rozbudowane funkcjonalnie układy o dużej mocy obliczeniowej, przeznaczone do wymagających aplikacji, ocierających się o zastosowania DSP. W ten sposób symbol STM32F4 stał się synonimem dużej mocy obliczeniowej, ale – jak się okazuje – ma podstawy zacząć się kojarzyć z małym poborem mocy…

Firma STMicroelectronics ma w swojej ofercie wiele typów mikrokontrolerów zoptymalizowanych do stosowania w aplikacjach low-power, które oznaczono prefiksem w nazwie STM32L. Są to mikrokontrolery wyposażone w rdzenie Cortex-M0+ (STM32L0) lub Cortex-M3 (STM32L1), które są taktowane sygnałami zegarowymi o częstotliwości do 32 MHz. Ich główną domeną aplikacyjną są urządzenia zasilane bateryjnie, do czego predestynuje je przede wszystkim niewielki pobór prądu w stanie statycznym i dynamicznym, a także zaawansowane tryby oszczędzania energii:

  • STM32L0: w trybie ultra-low-power pobierają zaledwie 250 nA, w czasie normalnej pracy ok. 87 μA/MHz
  • STM32L1: w trybie ultra-low-power pobierają zaledwie 280 nA, w czasie normalnej pracy ok. 177 μA/MHz.

Jeżeli wymogi obliczeniowe aplikacji są duże, może się okazać, że prędkość wykonywania programu osiągana przez mikrokontrolery STM32L0/STM32L1 (30,4/33,3 DMIPS) nie jest wystarczająca. Firma STMicroelectronics proponuje w takich przypadkach rozważyć zastosowanie mikrokontrolerów STM32F401 lub STM32F411, które w rodzinie STM32F4 zoptymalizowano pod kątem minimalizacji poboru mocy przy zachowaniu dużej wydajności, z czego wynika nazwa podrodziny – Dynamic Efficiency Line. I tak:

  • mikrokontrolery STM32F401 osiągają prędkość wykonywania programu 105 DMIPS przy taktowaniu 84 MHz,
  • mikrokontrolery STM32F411 osiągają prędkość wykonywania programu 125 DMIPS przy taktowaniu 100 MHz.

Zastosowane w prezentowanych mikrokontrolerach rozwiązanie nazwane Dynamic Efficiency, składa się z trzech istotnych modyfikacji dotychczasowych rozwiązań:

  • mikrokontrolery Dynamic Efficiency Line są wyposażone w interfejs ART (Adaptive Real Time), którego zadaniem jest akceleracja dostępu CPU do pamięci Flash oraz obsługa pamięci cache w taki sposób, żeby zapewnić dostęp do danych bez taktów oczekiwania (wait state) oraz zminimalizować transfer niepotrzebnych danych,
  • zastosowano „gęstszą” niż standardowo technologię produkcji struktur (90 nm vs 130 nm), co pozwoliło zmniejszyć dynamiczny pobór mocy,
  • zastosowano mechanizm skalowanego napięcia zasilania CPU, dzięki czemu można dobierać jego wartość do wymaganej częstotliwości taktowania, którą z kolei można dynamicznie dobierać do aktualnych wymogów aplikacji.

(Prawie) kompatybilne

Mikrokontrolery STM32F401/F411 w obudowach LQFP64 i LQFP100 są kompatybilne z pozostałymi mikrokontrolerami z tej rodziny, z drobnymi zastrzeżeniami pokazanymi na rysunkach poniżej. Trzeba o tym pamiętać podczas projektowania PCB, na szczęście informacja o niezbędnych zmianach jest wyraźnie pokazana w dokumentacji mikrokontrolerów.

Wprowadzenie tych udoskonaleń spowodowało, że natężenia poboru prądu podawane przez producenta wyglądają zaskakująco dobrze:

  • CPU w STM32F401 pobierają podczas normalnej pracy ok. 128 µA/MHz,
  • CPU w STM32F411 pobierają podczas normalnej pracy ok. 100 µA/MHz.

Pomimo niskiego poboru mocy, wewnętrzne wyposażenie prezentowanych mikrokontrolerów jest bardzo bogate, co widać na schemacie blokowym pokazanym na rysunku 1. Interfejsy komunikacyjne wbudowane w mikrokontrolery charakteryzują się duża prędkością transmisji (USART do 12,5 Mb/s, SPI do 50 Mb/s, I2C do 1 Mb/s), „oszczędności” nie widać także w szybkości pracy przetwornika A/C (do 2,4 MHz), szybkości taktowania timerów (84/100 MHz) czy częstotliwości próbkowania SPI (do 192 kHz).

 

Rys. 1. Schemat blokowy mikrokontrolerów STM32F4x1 Dynamic Efficiency Line

 

Mikrokontrolery F401/F411 wyposażono w pamięci SRAM o relatywnie dużej pojemności (do 128 kB), co – w połączeniu z szybkimi interfejsami komunikacyjnymi – ułatwia wykorzystanie m.in. ich jako inteligentne integratory sensorów (rysunek 2). Żeby ułatwić energooszczędną implementację tego typu rozwiązań, mikrokontrolery STM32F411 producent wyposażył w mechanizm BAM (Batch Acquisition Mode), który umożliwia gromadzenie danych z sensorów w pamięci SRAM bez udziału CPU i dostępu do pamięci Flash, które mogą zostać zatrzymane (co znacznie ogranicza pobór mocy) i wybudzane tylko w celu obrobienia zgromadzonych danych i ich wysłania do urządzenia nadrzędnego. W ten sposób można budować zasilane bateryjnie systemy telemetryczne działające w sposób always-on, mechanizm ten jest także wykorzystywany w Androidzie od wersji 4.0 (KitKat) począwszy, co tworzy duże perspektywy dla nowych mikrokontrolerów w urządzeniach mobilnych.

 

Rys. 2. Cechy mikrokontrolerów Dynamic Efficiency Line predestynują je do stosowania w aplikacjach typu inteligentne huby sensorów, które realizują akwizycję i obróbkę sygnałów

 

Przedstawione w artykule rozwiązania promowane przez firmę STMicroelectronics nieco zaburzają dotychczas kreowany wizerunek rodziny STM32F4, jako mikrokontrolerów dużych i wydajnych, przeznaczonych do stosowania w wymagających aplikacjach. Wydaje się, że producent znalazł dobry sposób, żeby cechy te skutecznie połączyć z energooszczędnością, co jest o tyle ważne, że coraz częściej wymagania stawiane urządzeniom zasilanym z baterii są tak duże, że 32-bitowy mikrokontroler nie ma w nich specjalnie czasu, żeby się nudzić…

Warto także zwrócić uwagę na fakt, że dla nowych mikrokontrolerów są dostępne bezpłatnie narzędzia programowe (jak STM32Cube) oraz tanie narzędzia sprzętowe (jak 32F401CDISCOVERY), które pozwalają na łatwe i szybkie rozpoczęcie własnych eksperymentów z energooszczędnymi mikrokontrolerami. Warto spróbować!

Newsy

Autor: