STM32G0, STM32L0 czy STM32F0 – który wybrać?

STM32G0

Najnowsza rodzina mikrokontrolerów STM32G0 ma również wbudowany nowszy rdzeń Cortex-M0+, taktowany maksymalną częstotliwością 56 MHz. W założeniu ma być następcą rodziny STM32F0 i podzielono ją na trzy linie

  • Value Line
  • Access Line
  • Access Line & Encryption (AES)

Wyposażenie w zasoby (pamięć, peryferia itp.) w zależności od linii zostało to pokazane na rysunku 18.

Linie produktów STM32G0Rysunek 18. Linie produktów STM32G0

Już na pierwszy rzut oka widać, że nowa rodzina mikrokontrolerów została solidnie wyposażona w układy peryferyjne i pamięć. Dodatkowo linia Access Line & Encryption jest mocno zorientowana na stosowanie w aplikacjach IoT. Na rysunku 19 przedstawiono portfolio rodziny STM32G0.

Portfolio rodziny STM32G0 Rysunek 19. Portfolio rodziny STM32G0

STM32G0 Value Line

Schemat blokowy najprostszego mikrokontrolera z linii Value STM32G030 pokazano na rysunku 20. Rdzeń Cortex-M0+ ma maksymalną częstotliwość taktowania 56 MHz. Elastyczny układ taktowania zawiera dwa oscylatory kwarcowe:32 kHz oraz od 1 MHz do 56MHz, dwa wewnętrzne oscylatory RC: 32 kHz i 16 MHz, a także układ PLL. Wyposażenie w układy peryferyjne, jak na mikrokontroler w 8-pinowej obudowie, jest całkiem niezłe. Znajdziemy tu moduł zegara RTC, 12-bitowy przetwornik SAR próbkujący z prędkością 2 MSPS, interfejsy SPI, USART z opcjami LIB, IrDA i obsługą kart SD, interfejs I2C, licznik przeznaczony do sterowania silnikami DC z komplementarnymi wyjściami PWM, a także klasyczny licznik PWM i 5 kanałowy układ DMA. Jednak nie znajdziemy tu wielu układów peryferyjnych z wyższych linii. Temperaturę pracy ograniczono do +85 ̊C, a zakres napięć zasilających wynosi od 2,0 V do 3,6 V.

Podobnie jak w poprzednio opisywanych rodzinach, zastosowano rozbudowany, konfigurowalny i elastyczny system taktowania. Podstawowym źródłem zegara może być oscylator stabilizowany kwarcem o częstotliwościach od 1 MHz do 56 MHz lub też wewnętrzny oscylator RC o częstotliwości 16 MHz (w wyższych liniach kalibrowany laserowo na etapie produkcji). Dostępne są też dwa oscylatory – kwarcowy i RC – o niskich częstotliwościach ok. 32 kHz. Wbudowany układ kontroli taktowania nadzoruje pracę oscylatora kwarcowego i po zaniku oscylacji w wyniku awarii automatycznie przełącza na taktowanie z wewnętrznego oscylatora RC 16 MHz. Dokładną częstotliwość taktowania można zaprogramować w bloku PLL połączonym z preskalerem. Nadzór nad prawidłowym wykonywaniem programu sprawują 2 niezależne liczniki watchdog, które można łączyć w watchdog okienkowy.

Rysunek 20. Schemat blokowy mikrokontrolera STM32G030

STM32G0 Access AES

Na drugim biegunie są najbardziej rozbudowane mikrokontrolery linii Access AES. Schemat blokowy mikrokontrolera STM32G0A1 z tej linii pokazano na rysunku 21. Ta jednostka może być umieszczana obudowie o nawet 100 wyprowadzeniach i może mieć do 512 kB pamięci programu Flash i do 80 kB pamięci SRAM. Poza tym rozszerzono zakres napięć zasilających i wynosi on od +1,8 V do +3,6 V, a górną temperaturę pracy aż do +125°C.

Wyposażenie w układy peryferyjne jest imponujące. Blok peryferii odpowiadający za szyfrowanie zawiera 256-bitowy moduł szyfrujący AES, a także generator liczb losowych True RNG. Interfejs USB 2.0 Full Speed OTG rozszerzono o USB PDI (Power Delivery Interface). Wśród interfejsów analogowych znajdują sie 12-bitowy przetwornik analogowo-cyfrowy SAR próbkujący z szybkością 2MSPS z 16-toma kanałami pomiarowymi, 2-kanałowy 12-bitowy przetwornik cyfrowo-analogowy DAC, 2 komparatory, a także sensor do pomiaru temperatury. Standardowe interfejsy komunikacyjne SPI (opcjonalnie I2S), USART (opcja LIN, IrDA, obsługa kart SD i sterowanie modemem) oraz I2C są uzupełnione znanym z rodziny STM32L0 interfejsem LPUART o małym poborze prądu. Podobnie jest w przypadku liczników. Oprócz 16-bitowego licznika przeznaczonego do sterowania silnikami (komplementarne PWM) i 16-bitowych liczników uniwersalnych z opcją PWM, dodano także dwa liczniki o niskim poziomie poboru prądu Low Power Timer. Blok liczników uzupełnia moduł zegara czasu rzeczywistego RTC z możliwością zasilania z baterii.

Schemat blokowy mikrokontrolera STM32G0A1Rysunek 21. Schemat blokowy mikrokontrolera STM32G0A1

Specyfikację STM32G0A1 wyraźnie nastawiono na możliwość stosowania w aplikacjach IoT. Z jednej strony mamy blok szyfrujący z możliwością uwierzytelniania, a z drugiej strony widać dbałość o niski poziom poboru energii. Umieszczenie modułów peryferyjnych o bardzo niskim poborze prądu sugeruje, że linia Access jest optymalizowana pod względem możliwości niskiego poboru mocy. Podobnie jest w przypadku rodziny STM32L0.

Pobór mocy

Na rysunku 22 pokazano możliwe tryby oszczędzania energii z orientacyjnymi poborami prądu. W nowo wprowadzonym trybie SHUTDOWN mikrokontroler pobiera rekordowo niski prąd 40 nA, natomiast z włączonym modułem RTC – 400 nA. Tryb STANBY jest porównywalny w obu seriach – pobór prądu wynosi 200 nA dla STM32G0 oraz 230 nA dla STM32L0.

W tym względzie rodzina STM32G0 przejęła najlepsze cechy z energooszczędnej rodziny STM32L0.

Orientacyjne pobory prądu dla różnych trybów oszczędzania energiiRysunek 22. Orientacyjne pobory prądu dla różnych trybów oszczędzania energii

Ceny układów

Popatrzmy teraz jak wygląda kryterium cenowe. Na rysunku 23 zaprezentowano ceny układów Value Line z serii STM32G070.

Orientacyjne ceny mikrokontrolerów STM32G0 Value LineRysunek 23. Orientacyjne ceny mikrokontrolerów STM32G0 Value Line

Jeżeli porównamy te ceny z cenami STM32F0 Value Line i podobną pamięcią Flash (128 kB), to ceny STM32G0 są trochę niższe

Na rysunku 24 pokazano ceny STM32G081 z pamięcią 128 kB z linii Access AES. Ceny są zdecydowanie wyższe, ale trzeba pamiętać, że możliwości tych mikrokontrolerów są spore.

Orientacyjne ceny mikrokontrolerów z linii Access AES Rysunek 24. Orientacyjne ceny mikrokontrolerów z linii Access AES

Mikrokontrolery z serii STM32G0 dostępne są w sklepie Kamami.pl. W ofercie również bogaty wybór zestawów rozwojowych z tymi układami.

Podsumowanie

Trudno odpowiedzieć jednoznacznie na postawione na wstępie pytanie: „ co wybrać?”. Przedstawiłem kilka cech każdej z rodzin, które zależnie od potrzeb aplikacji, mogą rzutować na decyzję. Najważniejsze z nich to zastosowany rdzeń, pojemność pamięci, wyposażenie w układy peryferyjne, szacunkowy pobór prądu w różnych trybach oszczędzania energii i orientacyjna cena.

STM32F0 historycznie są najstarsze i mają relatywnie gorszy rdzeń Cortex-M0. Za to dostępna jest bardzo szeroka gama tych mikrokontrolerów we wszystkich liniach z wieloma możliwościami doboru konfiguracji wyposażenia do potrzeb aplikacji. Precyzyjnie dobrany element ma optymalną cenę, bo nie płacimy za możliwości, których nie wykorzystamy, na przykład zbyt dużą pamięć lub niepotrzebne peryferia.

STM32L0 zoptymalizowane do pracy z niskim poborem energii to naturalny wybór dla urządzeń zasilanych bateryjnie. Umieszczenie w bardziej rozbudowanych liniach modułów kryptograficznych pozwala myśleć o stosowaniu w aplikacjach IoT. STM32L0 mają nowszy rdzeń Cortex-M0+, ale częstotliwość taktowania ograniczono do 32 MHz. Ograniczenie wydajności w części zastosowań może się okazać znaczące.

Najnowsza seria STM32G0 wydaje się najbardziej atrakcyjna technicznie. Nowszy rdzeń, dobre wyposażenie w układy peryferyjne i pamięć, a także niski pobór mocy porównywalny z STM32L0 to silne strony tej rodziny. Rdzeń ma najwyższą częstotliwość taktowania ze wszystkich trzech rodzin (56 MHz) i w związku z tym jest najbardziej wydajny. Ukierunkowanie na możliwości łatwego stosowania w IoT to dodatkowa zaleta. Problemem może być obecnie mała ilość dostępnych typów i tym samym ograniczona możliwość dobrania mikrokontrolera do aplikacji. To oczywiście z czasem powinno się zmieniać przy założeniu, że ST będzie dalej rozwijać tę bardzo ciekawą rodzinę.

Przy wyborze bardzo pomocny jest selektor mikrokontrolerów wbudowany w konfigurator projektu STM32CubeMX lub STM32CubeIDE. Układ można wybierać kierując się wieloma kryteriami: rodziną mikrokontrolera, linią w ramach rodziny, ceną, ilością linii I/O, rozmiarem pamięci lub wbudowanymi układami peryferyjnymi.

O autorze