SAM D20 – połączenie możliwości rdzenia Cortex-M0+ z autorskimi rozwiązaniami firmy Atmel

SAM D20 – połączenie możliwości rdzenia Cortex-M0+ z autorskimi rozwiązaniami firmy Atmel

Atmel  to producent układów elektronicznych kojarzony przede wszystkim z popularną rodziną mikrontrolerów AVR. Na przestrzeni lat firma ta zbudowała pokaźną ofertę tych układów obejmującą kilka różnych rodzin produktów, od energooszczędnych i prostych 8-bitowych mikrokontrolerów tinyAVR, poprzez mikrokontrolery ogólnego przeznaczenia megaAVR i AVR XMEGA, aż po 32-biotwe mikrokontrolery o wysokiej wydajności obliczeniowej i z licznymi peryferiami AVR UC3. Aby być jednak jeszcze bardziej konkurencyjnym na rynku, Atmel śladem innych producentów mikrokontrolerów zdecydował się rozszerzyć swoje portfolio o układy z rdzeniem ARM. Pierwszymi rodzinami układów były obecnie już nieco zapomniane mikrokontrolery SAM7 z rdzeniem ARM7TDMI i SAM9 z rdzeniem ARM9. Gdy na rynku coraz większą popularnością zaczęły cieszyć się mikrokontrolery z rdzeniem ARM Cortex-M3 i ARM Cortex-M4, firma Atmel rozszerzyła swoją ofertę o rodziny SAM3 i SAM4. Teraz producent poinformował o kolejnej rodzinie mikrokontrolerów z rdzeniem ARM w swojej ofercie – SAM D20 z rdzeniem ARM Cortex-M0+.

 

Dostępne obecnie rodziny mikrokontrolerów z rdzeniem ARM Cortex-M0+

Warto podkreślić, że SAM D20 to jedna z pierwszych na rynku rodzin mikrokontrolerów z rdzeniem ARM Cortex-M0+. Obecnie analogiczne układy oferuje tylko firma Freescale (Kinetis L) oraz NXP (LPC800), a w najbliższym czasie dostępne będą kolejne dwie, zapowiedziane już rodziny, opracowane przez firmę Fujitsu (FM0+) oraz Energy Micro (EFM32 Zero). Inni producenci obecnie opracowują swoje rodziny mikrokontrolerów z rdzeniem ARM Cortex-M0+ (jest to między innymi rodzina STM32L0 firmy ST Microelectronics).

 

Rdzeń ARM Cortex-M0+

Cortex-M0+ to zoptymalizowana odmiana rdzenia Cortex-M0. Jest to najbardziej energooszczędny rdzeń firmy ARM (11,21 µW/MHz), a jednocześnie cechuje się wyższą wydajnością obliczeniową niż Cortex-M0 (2,15 CoreMark/MHz). Osiągnięcie takich parametrów było możliwe dzięki wprowadzonym modyfikacjom do rdzenia Cortex-M0. Są to między innymi:

  • zredukowane przetwarzanie potokowe (pipeline) z 3- do 2-stopniowego, co umożliwia szybsze wykonywanie instrukcji,
  • dostęp do portów I/O i krytycznych zasobów w jednym cyklu,
  • zoptymalizowany dostęp do pamięci,
  • jednolita przestrzeń pamięci 4 GB,
  • bufor MTB (Micro Trace Buffer) pozwalający na śledzenie wykonywania instrukcji,
  • blok MPU (Memory Protection Unit).

W mikrokontrolerach SAM D20 rdzeń ARM Cortex-M0+ może pracować z częstotliwością maksymalną 48 MHz.

 

Autorskie rozwiązania firmy Atmel

Mikrokontrolery SAM D20 reklamowane są jako efekt połączenia nowoczesnej architektury rdzenia Cortex-M0+ i lat doświadczeń firmy Atmel w projektowaniu mikrokontrolerów. Nie są to słowa na wyrost, gdyż rodzina SAM D20 wyposażona została w sprawdzone, autorskie rozwiązania firmy Atmel. Pozwala to nie tylko zwiększyć funkcjonalność układów, ale jednocześnie też nadać im cechy wyróżniające je na rynku mikrokontrolerów.

Pierwszym zastosowanym rozwiązaniem jest Peripheral Event System. Jest to prosty mechanizm pozwalający na wzajemną komunikację peryferiów mikrokontrolera bez użycia przerwań CPU, jak też bez wykorzystania modułu DMA. Peripheral Event System pozwala tworzyć tak zwane zdarzenia (events). Są to zdefiniowane dla wybranych peryferiów warunki, które jeśli zostaną spełnione, wymuszą wykonanie zdefiniowanych akcji przez inne peryferia. Sygnalizacja zajścia zdarzeń odbywa się przez Peripheral Event Routing Network (rysunek 1, rysunek 2).

Rys. 1. Peripheral Event System – pierwszy przykład działania

Rys. 1. Peripheral Event System – pierwszy przykład działania

Rys. 2. Peripheral Event System – drugi przykład działania

Rys. 2. Peripheral Event System – drugi przykład działania

Kolejnym rozwiązaniem firmy Atmel w układach SAM D20 jest moduł QTouch PTC (Peripheral Touch Controller). Jest to kontroler pozwalający na realizowanie interfejsów dotykowych. Co ważne, poprawne działanie takiego interfejsu wymaga dołączenia do mikrokontrolera tylko czujników dotykowych. Nie są wymagane żadne dodatkowe elementy.

Mikrokontrolery SAM D20 wykorzystują autorski mechanizm SleepWalking firmy Atmel. Jest on niezwykle przydatny w aplikacjach, w których mikrokontroler wykorzystuje tryb uśpienia. Zasada działania mechanizmu SleepWalking polega na zdefiniowaniu dla peryferiów warunków, po spełnieniu których CPU mikrokontrolera zostanie wybudzone z trybu uśpienia. Przykładowym warunkiem może być np. przekroczenie określonej wartości napięcia na wejściu przetwornika A/C. Klasyczna implementacja tej funkcjonalności wymagałaby cyklicznego budzenia mikrokontrolera w celu wykonania i sprawdzenia wartości napięcia, co jest sposobem dużo mniej efektywnym pod względem zużycia energii w porównaniu ze sposobem wykorzystującym mechanizm SleepWalking.

Nowym blokiem funkcjonalnym firmy Atmel zastosowanym w mikrokontrolerach SAM D20 jest SERCOM. Jest to peryferium, które może zostać skonfigurowane do pracy jako interfejs komunikacyjny UART/USART, SPI lub  I2C. W zależności od modelu, w mikrokontrolerze SAM D20 może być zintegrowanych do sześciu modułów SERCOM (rysunek 3). Dzięki temu programista nie jest ograniczony do jednego lub dwóch interfejsów danego typu w mikrokontrolerze. Ponadto mając możliwość użycia danego interfejsu korzystając z różnych wyprowadzeń mikrokontrolera, projektant płytki może dokonać optymalnego wyboru wyprowadzeń w celu korzystniejszego rozprowadzenia ścieżek na płytce.

Rys. 3. SERCOM – przykład wykorzystania

Rys. 3. SERCOM – przykład wykorzystania

 

O autorze