[4] [Smart IoT] SAM L21 – 32-bit Cortex-M0+
Po mikrokontrolerach SAM D20, SAM D21 i SAM D10/11 przychodzi kolej na rodzinę SAM L21, której poświęcono niniejszy artykuł.
Rodzina mikrokontrolerów SAM L21 pracuje w oparciu o Cortex-M0+ i jest dedykowana do aplikacji zasilanych bateryjnie ze względu na bardzo niski pobór prądu (35µA/MHz w trybie Active, 900nA przy podtrzymaniu SRAM oraz z pracującym RTC, 200nA w głębokim uśpieniu) oraz bardzo niskie czasy wybudzeń ze stanów uśpienia. Wśród mechanizmów pozwalających na takie osiągi wymienić należy, podział na „power domain”, Sleepwalking, peryferia rozbudowane o funkcje picoPower oraz wiele innych. Zostaną one opisane w dalszej części tekstu.
SAM L21 dostępny jest w obudowach od 32-pin do 64-pin, maksymalna wielkość pamięci flash to 256KB oraz 40KB pamięci SRAM (z podziałem na 32KB SRAM, 8KB low power SRAM). Układy pracują z maksymalną częstotliwością 48MHz przy 2.46 CoreMark®/MHz. Cała rodzina została tak pomyślana, aby inżynier decydujących się na jej wykorzystanie miał szerokie opcje migracyjne, zarówno w ramach różnych wielkości pamięci jak i obudów.
Rys. 1. Podstawowe parametry SAM L21
Rys. 2. Architektura rodziny SAML21
W układach zaimplementowano szereg peryferiów znanych z rodziny SAM D, ale także pojawiły się zupełnie nowe rozwiązania. Ogromny nacisk położono na aspekty związane z poborem energii. Aby maksymalnie ograniczyć pobór prądu aplikacji należy pamiętać o kilku zasadach.
- Należy maksymalnie ograniczyć użycie CPU:
- CPU używa ~40-80% energii całego mikrokontrolera
- Pozostać w trybie uśpienia, gdy tylko jest to możliwe
- Ograniczyć przerwania, które muszą wybudzać CPU
- Kontrolować częstotliwość taktowania systemu
- Zużycie energii jest proporcjonalne do częstotliwości pracy
- Zatrzymać taktowanie nieużywanych peryferiów
- Dopasować napięcie zasilania do wymagań urządzenia
- Zużycie energii jest ekspotencjalne do napięcia zasilania
- Wybudzać CPU tak szybko jak to tylko możliwe
- Energia jest tracona podczas wybudzania systemu podczas stabilizacji oscylatora
Zarządzanie energią
Część z tych zasad jest wymagana, aby wykorzystany mikrokontroler sprzętowo wspierał pewne funkcjonalności. Pierwszym na to przykładem jest realizacja układu zasilania CPU, pamięci oraz peryferiów w mikrokontrolerze.
Rys. 3. Obwód dla standardowego mikrokontrolera obrazujący jak wiele energii może być tracone
Na rysunku poniżej pokazano jak realizowane jest to w przypadku SAML21. W odróżnieniu od standardowego podejścia mamy tutaj kilka regulatorów, które zasilają różne power domain. Główny LDO został wzbogacony o możliwość regulacji napięcia w zależności od wymaganej częstotliwości pracy rdzenia oraz peryferiów. A podział na power domain pozwala na redukcję zużycia energii poprzez automatyczne wyłączanie zasilania poszczególnych PDx, w przypadku ich niewykorzystania oraz w trybach uśpienia. Same tryby uśpienia zostaną opisane w dalszej części.
Rys. 4. Zarządzanie energią przez SAM L21