STM32L0: Cortex-M0+ w rodzinie STM32

STM32L0: Cortex-M0+ w rodzinie STM32
Pobierz PDF Download icon
Norymberskie targi embedded world 2014 były dla STMicroelectronics okazją do przedstawienia wielu nowości, wśród których jedną z najbardziej wyczekiwanych przez konstruktorów są mikrokontrolery wyposażone w rdzeń Cortex-M0+. Nowa rodzina mikrokontrolerów nosi oznaczenie STM32L0, jak łatwo zauważyć - po literze "L" w nazwie - są to mikrokontrolery energooszczędne.

Rys. 1. Deklarowane przez producenta pobory mocy przez CPU w różnych trybach pracy

STMicroelectronics ma w swojej ofercie szeroką gamę mikrokontrolerów wyposażonych w rdzenie Cortex-M0, Cortex-M3 oraz Cortex-M4F, produkuje także jedną rodzinę układów, zoptymalizowaną konstrukcyjnie pod kątem aplikacji wymagających stosowania podzespołów energooszczędnych (STM32L1).

Nowość w ofercie firmy - mikrokontrolery STM32L0 - także należą do linii zoptymalizowanej pod kątem minimalizacji poboru mocy, zastosowano w nich nowy rdzeń - Cortex-M0+. Rdzeń ten jest udoskonaloną wersją rdzenia Cortex-M0 (stosowanego m.in. w mikrokontrolerach STM32F0), zwiększono jego wydajność i możliwości, zmniejszono jedocześnie pobór mocy i elastyczność implementacji w krzemie.

Na rysunku 1 pokazano deklarowane przez producenta pobory mocy przez CPU w różnych trybach pracy, których mnogość jest jednym z elementów pozwalających zminimalizować pobór prądu przez mikrokontroler.

Na trybach oszczędzania energii CPU nie kończy się optymalizacja mikrokontrolerów STM32L0 do stosowania w aplikacjach wymagających podzespołów energooszczędnych: producent zastosował w nich ponadto bloki peryferyjne o zminimalizowanym poborze mocy:

  • przetwornik A/C pobierający zaledwie ok. 200 mA przy częstotliwoś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,
  • 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,
  • zegar RTC przystosowany do konfigurowanego przez aplikacje użytkownika wybudzania CPU z trybów uśpienia STOP, STANDBY i SLEEP.

Rys. 2. Schemat blokowy ilustrujący budowę mikrokontrolerów z rodziny STM32L0

Rys. 3. Elementem wyposażenia mikrokontrolerów STM32L0 jest sprzętowy firewall, chroniący zadane przez użytkownika obszary pamięci

Wspólnymi elementami wyposażenia wszystkich mikrokontrolerów STM32L0 są także m.in. (rysunek 2): wbudowana pamięć EEPROM (fizycznie zaimplementowana, a nie emulowana w pamięci Flash), kontroler DMA, komparatory analogowe oraz interfejsy komunikacyjne SPI (z obsługą trybu 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.

Przypominamy o ujednoliceniu sposobu oznaczania mikrokontrolerów STM32, który pozwoli określić wewnętrzne wyposażenie układów. Nowy schemat oznaczania przedstawiono na rysunku.

Rys. 4. Produkowane modele mikrokontrolerów STM32L0 oraz wdrożenia planowane w najbliższym czasie

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).

Nowością w wyposażeniu mikrokontrolerów STM32L0 jest sprzętowy firewall (rysunek 3), 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.

Fot. 5. Wygląd zestawu STM32Nucleo z mikrokontrolerem STM32L053

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 8x48 wbudowany w mikrokontrolery STM32L0x3,
  • interfejsy USB 2.0FS wbudowane w mikrokontrolery STM32L0x2 i STM32L0x3.

Na rysunku 4 pokazano produkowane już modele mikrokontrolerów STM32L0, a także planowane ich wdrożenia z podziałem na fazy. 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.

Swoim zwyczajem, firma STMicroelectronics wraz z nowymi mikrokontrolerami wprowadziła do sprzedaży tanie zestawy startowe, przy czym tym razem jako pierwsze na rynku znalazły się zestawy z serii iSTM32Nucleo (fotografia 5). Jest to nowa rodzina zestawów ewaluacyjnych z mikrokontrolerami STM32, które od niezwykle popularnych Discovery różni m.in.:

  • sprzętowa zgodność z płytkami systemu Arduino (rysunek 6),
  • wyposażenie w złącza nowego systemu połączeniowego ST Morpho (rysunek 7),
  • współpraca z bezpłatnym, internetowym pakietem narzędziowym mbed.

Zestaw STM32Nucleo jest 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). Standardowym wyposażeniem prezentowanych zestawów są także złącza z wyprowadzonymi GPIO, co zapewnia im między innymi kompatybilność z płytkami systemu Arduino (shields).

Rdzeń Cortex-M0+...

...jest poprawioną wersją rdzenia Cortex-M0, który powstał z kolei jako "okrojona" wersja Cortex-M3. Celem tego okrojenia było zminimalizowanie powierzchni zajmowanej przez rdzeń na płytce krzemowej, ale dość szybko okazało się, że zabieg chirurgiczny wykonany przez ARM nie był sukcesem, a próbą naprawienia błędu jest wprowadzenie mniej okaleczonej wersji rdzenia - Cortex-M0+.

Tak więc, rdzeń Cortex-M0+ma do dyspozycji rozdzielone magistrale peryferyjne (I/O oraz AHB), opóźnienie wykonania przerwania wynosi 15 (a nie 16 jak w Cortex-M0) cykli zegarowych, dostęp do GPIO odbywa się w jednym takcie (a nie w dwóch), a system pipelinening’u ma dwa stopnie zamiast 3 (co zmniejsza opóźnienia w wykonywaniu programu po skokach).

Rdzeń Cortex-M0+ pobiera nieco mniej energii (statycznie i dynamicznie) od pierwowzoru, charakteryzuje się ponadto większą od niego wydajnością, która dochodzi do 2,42 CoreMark/MHz (vs 2,33 CoreMark/MHz w Cortex-M0) lub 1,31 DMIPS/MHz (vs 1,21 DMIPS/MHz).

Mikrokontrolery w prezentowanych zestawach wykorzystują wewnętrzne generatory taktujące, ale producent przewidział miejsca na PCB umożliwiające montaż rezonatorów kwarcowych (32,768 kHz dla RTC i głównego). Na ewaluacyjnej części płytki zastosowano także zworkę, która umożliwia zmierzenie poboru prądu przez mikrokontroler. Warto pamiętać, że mikrokontroler programatora realizuje także funkcję wirtualnego COM, którego linie Rx i Tx wyprowadzono na złącze gold-pin płytki programatora, dzięki czemu można je podłączyć do dowolnych linii testowanego mikrokontrolera.

Rys. 6. Zestawy STM32Nucelo są sprzętowo zgodne z systemem Arduino

Rys. 7. Zestawy STM32Nucleo wyposażono w alternatywny system złącz o nazwie ST Morpho

Fot. 8. Wygląd zestawu DISCOVERY dla mikrokontrolerów STM32L0

Wspomnianym atutem płytek Nucelo jest ich zgodność z internetowym pakietem narzędziowym mbed (www.mbed.org), dla którego są one natywnymi platformami sprzętowymi. Nie oznacza to jednak, że konstruktorzy przyzwyczajeni do innych środowisk będą musieli zmienić swoje przyzwyczajenia: wbudowany w zestawy programator jest zgodny z popularnym ST-Link/v2, dzięki czemu testowany mikrokontroler można programować z poziomu wszystkich popularnych pakietów narzędziowych, jak na przykład: Keil MDK (mVision), IAR EWARM (Workbench), czy Atollic TrueStudio.

Producent zapowiada także wprowadzenie do sprzedaży zestawu DISCOVERY z wyświetlaczem e-paper (fotografia 8) oraz klasycznego "evala" z wyświetlaczem LCD-TFT i monochromatycznym wyświetlaczem segmentowym, sterowanym bezpośrednio przez wewnętrzny kontroler mikrokontrolera STM32L0. Przedstawimy je w EP już wkrótce!

Andrzej Gawryluk

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

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik lipiec 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio lipiec 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje lipiec 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna lipiec 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 lipiec 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów