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

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik listopad 2021

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2021

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje listopad 2021

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna listopad 2021

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2021

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów