STM32L0: Cortex-M0+ do energooszczędnego kompletu

STM32L0: Cortex-M0+ do energooszczędnego kompletu
Pobierz PDF Download icon
Firma STMicroelectronics przez długi czas nie widziała konieczności wprowadzania na rynek rodziny mikrokontrolerów wyposażonych w rdzeń Cortex-M0. Z racjonalnego, bazującego na technice, punktu widzenia była to słuszna decyzja, ale we współczesnym świecie ważniejsze od racjonalnych motywacji są trendy...

Nowe w ofercie STMicroelectronics mikrokontrolery doskonale wpasowują się w dotychczasowe portfolio produkcyjne firmy, w którym dostępne były układy wyposażone we wszystkie wersje rdzeni Cortex-M. Zalety i przewagi rdzenia Cortex-M0+ nad rdzeniem Cortex-M0 spowodowały, że nieuniknionym dla producenta stało się wprowadzenie ich do produkcji wraz z nową rodziną mikrokontrolerów, co nastąpiło w lutym 2014 pod nazwą STM32L0. Podobnie do starszych rodzin STM32L, także L0 są przeznaczone do stosowania w aplikacjach wymagających minimalizacji poboru mocy, w czym pomaga zarówno bardziej wydajny (niż w przypadku Cortex-M0) rdzeń, jak i specyficzne peryferia.

Rysunek 1. Wyposażenie podrodzin mikrokontrolerów STM32L0

Rysunek 2. Wartości natężenia poboru prądu przez CPU w STM32L0, w różnych trybach pracy

Rdzenie Cortex-M0+ w STM32L0 mogą być taktowane z maksymalną częstotliwością do 32 MHz, co zapewnia prędkość wykonywania programu do 26 DMIPS. Podstawowe peryferia we wszystkich podrodzinach mikrokontrolerów są identyczne (rysunek 1), producent zaplanował ich rozwój w trzech głównych kierunkach:

  • mikrokontrolery wyposażone w "bezkwarcowy" interfejs USB i wbudowany kontroler LCD - rodzina USB&LCD Line,
  • mikrokontrolery wyposażone w interfejs USB (także nie wymagający stosowania specjalnego rezonatora) bez wbudowanego kontrolera LCD - USB Line,
  • mikrokontrolery pozbawione przetwornika C/A, interfejsu USB, sprzętowego generatora liczb losowych oraz sensorów pojemnościowych na liniach GPIO - są to mikrokontrolery Access Line.

Tabela 1. Zestawienie najważniejszych parametrów dostępnych obecnie wersji mikrokontrolerów STM32L0

Mikrokontrolery należące do wymienionych podrodzin są już dostępne (tabela 1), wersje mikrokontrolerów o większej i mniejszej liczbie pinów oraz pamięciami Flash o pojemnościach 16/128/192 kB będą dostępne nieco później. Mikrokontrolery wyposażone w pamięć Flash o pojemności powyżej 128 kB będą miały dzieloną ja na dwa segmenty, co ułatwi m.in. wymianę firmware'u.

Wspólnymi elementami wyposażenia wszystkich mikrokontrolerów STM32L0 są m.in.: wbudowana pamięć EEPROM (fizycznie zaimplementowana, a nie emulowana w pamięci Flash), kontroler DMA, komparatory analogowe oraz interfejsy komunikacyjne SPI (z obsługą trybu cyfrowego audio I²S), I²C z FM+ i nie wymagający stosowania specjalnego rezonatora kwarcowego interfejs USB (z obsługą trybów BCD i LPM), a także 96-bitowy sprzętowy numer seryjny struktury, pozwalający zidentyfikować urządzenie z wbudowanym mikrokontrolerem.

Zastosowany w rodzinie STM32L0 rdzeń Cortex-M0+ jest promowany przez firmę ARM jako jeden z najbardziej energooszczędnych, co - zgodnie z informacjami udzielonymi przez producenta (m.in. na rysunku 2) udało się. Zmniejszenie poboru energii przez rdzeń wynika zarówno z jego przemyślanej konstrukcji, dobrej implementacji w krzemie oraz dostępnym wielu trybom oszczędzania. Atutem mikrokontrolerów STM32l0 jest relatywnie krótki czas wybudzania z trybów uśpienia, co trwa od 3,5 ms (budzenie ze stanu STOP do RUN, przy wykonywaniu programu z pamięci SRAM), przez 5 ms (budzenie ze stanu STOP do RUN, przy wykonywaniu programu z pamięci Flash) aż do 50 ms (budzenie CPU ze stanu STANDBY do RUN).

Optymalizacja mikrokontrolerów STM32L0 do stosowania w aplikacjach wymagających podzespołów energooszczędnych nie kończy się jednak wyłącznie na wymienionych zabiegach - producent zastosował w tych mikrokontrolerach także bloki peryferyjne o zminimalizowanym poborze mocy. Są to m.in.:

  • wyzwalany przetwornik A/C pobierający zaledwie ok. 200 mA przy czstotliwości próbkowania 1,14 MHz,
  • interfejs komunikacyjny LPUART, który może realizować dupleksową transmisję danych z prędkością od 300 do 9600 b/s z wykorzystaniem wewnętrznego generatora taktującego 32,768 kHz (wyższe prędkości są możliwe przy zastosowaniu generatora taktującego o większej częstotliwości) i którego wyposażenie umożliwia szybkie wybudzenie CPU z trybu STOP. Dodatkową możliwością tego interfejsu jest obsługa półdupleksowej komunikacji dwukierunkowej po jednym przewodzie,
  • 16-bitowy timer LPTIM przystosowany do realizacji funkcji odmierzania "timeoutów" podczas uśpienia CPU, a także realizacji innych funkcji licznikowych bez ingerencji CPU i aktywnego wewnętrznego generatora taktującego (schemat blokowy pokazano na rysunku 3),
  • zegar RTC przystosowany do konfigurowanego przez aplikacje użytkownika wybudzania CPU z trybów uśpienia STOP, STANDBY i SLEEP.

Przetwornik A/C wbudowany w mikrokontrolery STM32L0 jest przez producenta reklamowany jako 12-/16-bitowy, co wynika z faktu wyposażenia go w sprzętowy oversampling, który umożliwia zwiększenie jego rozdzielczości do 16 bitów (co się wiąże ze zwiększeniem ilości energii potrzebnej do wykonania konwersji). W zależności od potrzeb liczbę nadpróbkowań użytkownik może samodzielnie ustalić w zakresie od 2 do 256 (z krokiem 2n).

Rysunek 3. Schemat blokowy timera LPTIM

Rysunek 4. Schemat blokowy sprzętowego firewalla chroniącego zadane obszary pamięci w mikrokontrolerach STM32L0 oraz algorytm jego działania

Nowością w wyposażeniu mikrokontrolerów STM32L0 jest sprzętowy firewall (rysunek 4), którego zadaniem jest ochrona zawartości zadanych obszarów pamięci nieulotnej oraz RAM przed odczytem przez program uruchamiany z pamięci Flash lub RAM ulokowanych w obszarze niechronionym. Działaniem tego bloku użytkownik może sterować z poziomu swojego programu, włączając i wyłączając ochronę w zależności od bieżących potrzeb. Obszary chronione - w zależności od wybranego segmentu pamięci - mogą mieć rozmiary od 256 B do 64 kB z krokiem 256 B (segment programu i pamięć nieulotna) lub 64 B do 8 kB z krokiem 64 B (pamięć RAM). Firewall jest dostępny w mikrokontrolerach z podrodzin STM32L0x2 oraz STM32L0x3.

W przypadku korzystania w aplikacji z maksymalnej częstotliwości taktowania rdzenia mikrokontrolerów (przypomnijmy: do 32 MHz) konieczne jest wstawienie taktu oczekiwania podczas odczytu zawartości pamięci Flash, chyba że taktowanie CPU ma częstotliwość do 16 MHz. Na maksymalną dopuszczalną prędkość odczytu Flash ma także wartość napięcia zasilania rdzenia (rysunek 5):

  • w zakresie napięć 1,35-1,65 V maksymalna częstotliwość taktowania nie powinna przekraczać 8 MHz (przy odczycie bez wait-state'ów) lub 16 MHz (z 1 wait-statem),
  • w zakresie napięć 1,05-1,35 V maksymalna częstotliwość taktowania nie powinna przekraczać 4,2 MHz w każdym przypadku.

Jak wspomniano już wcześniej, część wewnętrznego wyposażenia jest dostępna wyłącznie w niektórych typach mikrokontrolerów, jak na przykład:

  • koprocesor kryptograficzny AES128, który jest wbudowywany w układy STM32L063x8,
  • kontroler LCD o organizacji 8×48 wbudowany w mikrokontrolery STM32L0x3,
  • interfejsy USB 2.0FS wbudowane w mikrokontrolery STM32L0x2 i STM32L0x3.

Z naturalnych przyczyn nie możemy przedstawić w artykule wszystkich interesujących cech i możliwości mikrokontrolerów STM32L0. Przygotowaliśmy go z myślą o przekazaniu ważnej informacji: oprócz dobrze przyjętych na rynku mikrokontrolerów STM32L1 firma STMicroelectronics oferuje kolejną rodzinę "niskomocową" - STM32L0 - która dobrze wpasowuje się w aplikacje wymagające energooszczędnych podzespołów i relatywnie niewielkiej wydajności obliczeniowej.

Rysunek 5. Częstotliwości taktowania CPU w STM32L0 w zależności od wartości napięcia zasilającego

Fotografia 6. Wygląd zestawu STM32NUCLEO – wersje dla mikrokontrolerów STM32L0 będą dostępne wkrótce

Firma STMicroelectronics wraz już wprowadziła do sprzedaży tanie zestawy startowe dla nowych mikrokontrolerów, przy czym tym razem jako pierwsze na rynku znalazły się zestawy z serii STM-32Nucleo (fotografia 6) (sprzętowo zgodne z systemem Arduino i pakietem programistycznym mbed). Zestaw STM32Nucleo - podobnie do popularnych DISCOVERY z STM32 - wyposażono w zintegrowany programator/debuger ST-LINK/V2-1 (ze zmodyfikowanym firmware, który współpracuje z pakietem mbed), podsystem zasilania, trzy diody LED (w tym jedna dla aplikacji użytkownika, jedna sygnalizująca włączenie zasilania i jedna dwukolorowa - spełnia rolę sygnalizacyjną w programatorze), dwa przyciski (w tym jeden RESET), złącze miniUSB (do zasilania, komunikacji z mikrokontrolerem aplikacji via wirtualny COM, emulacji urządzenia klasy mass storage oraz komunikacji z programatorem ST-Link).

Warto zwrócić uwagę, ze konstruktorzy przyzwyczajeni do klasycznych środowisk programistycznych nie będą musieli zmieniać swoich przyzwyczajeń, bowiem wbudowany programator jest zgodny z popularnym ST-Link/v2. W ten sposób zagwarantowano możliwość współpracy zestawu ze wszystkimi popularnymi pakietami narzędziowymi: Keil MDK (mVision), IAR EWARM (Workbench) oraz Atollic TrueStudio. Na zestaw DISCOVERY z mikrokontrolerem STM32L0 musimy jeszcze chwilę poczekać, ale zapowiada się interesująco: ma być wyposażony w wyświetlacz e-papier.

Piotr Zbysiński, EP

Artykuł ukazał się w
Elektronika Praktyczna
maj 2014
DO POBRANIA
Pobierz PDF Download icon
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio czerwiec 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje maj 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich maj 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów