Zostań liderem technologii Smart IoT z mikrokontrolerami firmy Atmel
| TechnikaDynamiczny rozwój rynku elektroniki wymusił na producentach elementów elektronicznych wprowadzenie do oferty układów, które muszą spełniać wymagania poszczególnych aplikacji, w sposób bardziej indywidualny niż dotychczas. Dotyczy to głównie rynku mikrokontrolerów.
Kiedyś głównym kryterium doboru mikrokontrolera była wielkość pamięci Flash oraz liczba pinów GPIO. Obecnie, zwłaszcza w obszarze IoT, duży nacisk kładzie się na aspekty komunikacyjne, zwłaszcza na możliwości uruchomienia na mikrokontrolerze jednego z bardziej popularnych stosów komunikacyjnych.
Ważne, aby mikrokontroler miał wystarczające zasoby do uruchomienia np. stosu ZigBee, 6LoWPAN lub do współpracy z modułem Wi-Fi czy Bluetooth, a tutaj oprócz pamięci SRAM, bardzo pomaga np. DMA. Kolejnym ważnym aspektem jest zapotrzebowanie mikrokontrolera na energię, z tego względu, że większość urządzeń zasilana jest bateryjnie. Coraz ważniejszy jest także atrakcyjny wygląd końcowego produktu.
Wspomnianą atrakcyjność zapewnić może nowoczesna klawiatura z przyciskami, sliderami, kółkami, wykonanymi w technologii pojemnościowej. Nie należy także zapominać o bezpieczeństwie, czyli o bezpiecznej transmisji jak i dodaniu elementów mających maksymalnie utrudnić podrobienie produktu lub wprowadzeniem innych niekorzystnych zmian w firmware.
Producenci urządzeń na rynek IoT mają w swojej ofercie z reguły od kilku do kilkudziesięciu produktów, które często różnią się mocno między sobą i przez to stawiają przed mikrokontrolerem bardzo różne wyzwania. Ważne, aby w ofercie producenta mikrokontrolerów była tak szeroka gama układów, aby podołać tym wyzwaniom. Takie właściwości ma platforma mikrokontrolerów firmy Atmel oparta na Cortex-M0+.
Producent, który do tej pory znany był głównie z układów 8-bitowych AVR, bardzo mocno postawił na rozwój jednostek 32-bitowych. Co ciekawe, wiele rodzajów funkcjonalności znanych z 8-bitowych AVR zostało przeniesionych na nową platformę, ale pojawiło się też wiele zupełnie nowych rozwiązań. W tym tekście postaramy się zwrócić uwagę na te najciekawsze.
Komunikacja w układach Atmela
W układach z rdzeniem Cortex-M0+ pojawił się nowy moduł zwany SERCOM (Serial Communication Interface), z których każdy może być programowo skonfigurowany jako interfejs I²C, SPI lub UART. Możliwość taka daje projektantowi dużą swobodę podczas doboru mikrokontrolera do aplikacji, nad którą pracuje.
Projektant nie musi już szukać układu, który ma określoną liczbę np. UART i SPI. Dodatkowo takie rozwiązanie pozwala na zastosowanie jednego MCU w kilku aplikacjach, w których wymagane są różne interfejsy komunikacyjne, w różnych konfiguracjach. I wreszcie moduł ten pomaga podczas projektu samej płytki PCB. W wielu przypadkach prowadzone ścieżki mogą być krótsze, przez co transmisja bardziej odporna na zakłócenia.
Moduł komunikacji szeregowej połączony jest z systemem eventów, co umożliwia współdziałanie peryferii bez nadzoru ze strony CPU. Interfejsy dostępne w ramach SERCOM służą bardziej do komunikacji z innymi układami w ramach całego urządzenia. Ale często wymagany jest interfejs "na zewnątrz" i tutaj wśród dostępnych przewodowych opcji najpopularniejszy jest USB, często służący również jako źródło zasilania.
USB może pracować zarówno w trybie host, jak i device, co można zmieniać podczas pracy programu. Jest on kompatybilny ze specyfikacją USB 2.1, wspiera zarówno full speed (12 Mbit/s), jak i low speed (1,5 Mbit/s) oraz protokół Link Power Management (LPM-L1). Ma zaimplementowany mechanizm DMA, co znacząco przyspiesza i ułatwia obsługę interfejsu.
Ponieważ komunikacja bezprzewodowa stale zyskuje na popularności, rośnie też popularność rozwiązań jednoukładowych, czyli chipów, gdzie mikrokontroler oraz układ radiowy zintegrowano w jednej obudowie. Atmel ma w ofercie układy z serii SAMR21, będące połączeniem serii SAMD21 oraz transceivera AT86RF233.
Są one zgodne z IEEE 802.15.4, przez co możliwe jest ich zastosowanie w aplikacjach pracujących zgodnie z ZigBee PRO, ZigBee RF4CE czy ZigBee Light Link (ZLL). Użytkownik może skorzystać także z IPv6/6LoWPAN czy bardzo popularnego stosu Lightweight mesh. Widoczna jest także silna integracja z Wi-Fi. W ofercie firmy jest certyfikowany moduł ATSAMW25 (SAMD21+WINC1500). Podobne tendencje można zauważyć w układach z Bluetooth.
Low power kluczem do rynku IoT
Duża część urządzeń rynku IoT zasilana jest bateryjnie, dlatego bardzo ważnym aspektem funkcjonalnym jest niski pobór prądu. Aby maksymalnie ograniczyć pobór prądu aplikacji, należy maksymalnie ograniczać użycie CPU, pozostawiając go w trybie uśpienia, gdy tylko jest to możliwe, np. przez ograniczenie liczby przerwań, które muszą wybudzać CPU.
Trzeba też kontrolować szybkość zegara taktującego, zatrzymać taktowanie nieużywanych peryferii i dopasować napięcie zasilania do wymagań urządzenia itd. Aby było to możliwe, mikrokontroler musi sprzętowo wspierać takie funkcje. Na rysunku 2 pokazano, jak realizowane jest to w przypadku rodziny SAML21, czyli serii przeznaczonej do aplikacji bateryjnych.
Jest tam kilka regulatorów napięcia o programowalnej wartości, które zasilają różne bloki funkcjonalne. A podział na bloki pozwala na redukcję zużycia energii poprzez automatyczne wyłączanie zasilania poszczególnych PDx, w przypadku ich niewykorzystania oraz w trybach uśpienia.
Układy z rodziny SAML21 dodatkowo mają Battery Backup Power Switch (BBPS). Jest to automatyczny przełącznik źródła zasilania pomiędzy baterią (VBAT) a głównym zasilaniem (VDDIN). Przełączenie na zasilanie bateryjne odbywa się, gdy napięcie zasilania spadnie poniżej 1,75 V lub poniżej progu BOD33. Układ wraca do zasilania głównego, gdy napięcie wzrośnie do 1,85 V lub zostanie to wymuszone poprzez pin PSOK (Main Power Supply OK).
Zegar
Kolejny element architektury SAM L21, który został wykonany w nieco inny sposób, to budowa systemu taktującego. Znajduje się tu do dziewięciu generatorów, które mogą być konfigurowane oraz przełączane niezależnie przez system bądź użytkownika. Pozwala to na dużą elastyczność taktowania poszczególnych peryferii, zwłaszcza w stanach uśpienia.
A sam CPU może pracować z różną częstotliwością w zależności od wymagań aplikacji (Dynamic Frequency Scaling). Źródło taktowania może pracować także w trybie on-demand, gdzie jest ono automatycznie zatrzymywane, w przypadku gdy nie jest ono potrzebne, a potem automatycznie włączane, gdy jego praca jest wymagana.
System eventów i SleepWalking
Kolejnym elementem, który, odpowiednio wykorzystany, może znacząco wpłynąć na sumaryczne zużycie energii, jest system eventów. Wielu inżynierów zna go doskonale z układów serii ATXMega. Teraz został on zaimplementowany także w układach z Cortex-M0+. Event system pozwala na współdziałanie peryferii bez udziału CPU. Dodatkowo czas reakcji na event jest w 100% przewidywany. Rysunek 3 obrazuje współdziałanie wybranych peryferii bez udziału CPU.
Kolejną funkcjonalnością przeniesioną z AVR do układów z Cortex-M0+ jest SleepWalking. Funkcjonalność ta daje możliwość, aby wybrane peryferia mogły wysłać żądanie wystawienia sygnału zegara, aby wykonać zadanie bez udziału CPU, w trybie standby. W przypadku SAML21 zostało to wzbogacone o współpracę ze stabilizatorem zasilającym. Zasilanie do danego bloku będzie dostarczone, gdy któryś z elementów tego potrzebuje do pracy. Kiedy zadanie jest wykonane, mikrokontroler może zostać wybudzony do stanu aktywnego bądź też pozostać w standby, tak jak pokazuje to rysunek 4.
Interfejs użytkownika
Wszystkie rodziny układów z rdzeniem Cortex-M0+ mają wbudowany moduł PTC, czyli Peripheral Touch Controller. Jest to sprzętowy moduł do obsługi technologii przycisków pojemnościowych. Do tej pory w ofercie Atmel były układy realizujące te zadania bądź na zasadzie dołączenia odpowiedniej biblioteki do projektu, zadaniem tym mógł zajmować się mikrokontroler.
Teraz obsługą tej technologii zajmuje się blok peryferyjny, który dodatkowo został wyposażony w filtry oraz inne mechanizmy, które zapewnić mają poprawne działanie. W ramach tej technologii realizować można trzy rodzaje konstrukcji, są to standardowe przyciski, suwaki oraz kółka. Odczyt, czy też wykrycie dotknięcia, odbywa się przy wykorzystaniu jednej z dwóch dostępnych metod pomiaru: self capacitance oraz mutual capacitance.
Metoda Self Capacitance używa tylko jednej elektrody (linia Y). Przycisk może być w tym przypadku obsłużony przez jeden kanał a kółko i slider są obsługiwane przy użyciu trzech kanałów. Charakteryzuje się ona odpornością na zakłócenia, jest bardzo łatwa w implementacji i przeznaczona do aplikacji z niewielką liczbą przycisków (do 16).
Metoda Mutual Capacitance używa pary elektrod (linie X-Y). Przycisk potrzebuje jednego kanału X-Y, a suwak i kółko może być skonfigurowany tak, aby użyć od 3 do 8 kanałów X-Y w zależności od rozmiaru. Jest przeznaczona do aplikacji z dużą liczbą przycisków (do 256) i zapewnia dużo lepszą odporność na zakłócenia.
Bezpłatne narzędzia od Atmela
Aby ułatwić budowę urządzenia z przyciskami pojemnościowymi Atmel, udostępnia darmowe narzędzia oraz proponuje specjalne zestawy rozwojowe. Oprogramowanie jest częścią pakietu Atmel Studio i można je pobrać ze strony producenta, pod nazwą QTouch Composer, w skład którego wchodzi QTouch Project Builder oraz QTouch Analyzer.
Pierwsze narzędzie służy do "tworzenia" nowego projektu. Przy wykorzystaniu narzędzia graficznego pozwalają one wybrać metodę, wskazać typ elementu, następnie wybrać mikrokontroler, wskazać piny, do którego podłączone będą elektrody, dodatkowo można zmieniać ustawienia pomiaru. Na podstawie tych ustawień generowany jest kod, który można dołączyć do projektu (rys. 5).
Poprawne skonfigurowanie bloku PTC to tylko jeden z etapów powstania produktu. Potrzebne jest jeszcze narzędzie, które umożliwi inżynierowi, przeprowadzenie testów oraz odpowiednią modyfikację wcześnie ustawionych parametrów. Właśnie po to powstał QTouch Analyzer. Narzędzie to łączy się z mikrokontrolerem i w czasie rzeczywistym odczytuje i wizualizuje aktualne wartości zarówno parametrów, jak i pomiarów. Daje to inżynierowi możliwość dostosowania parametrów, kształtu elektrod, układu zasilania do takiego poziomu, aby urządzenie działało poprawnie.
W oparciu o funkcjonalność PTC możliwe jest zbudowanie Surface sensor. Płytka ta bazuje na metodzie Mutual Capacitance. Możliwe jest budowanie aplikacji paneli dotykowych, w tej chwili dostępne są opcje 2,7" oraz 5.5".
Szeroka gama produktów z możliwością migracji
Ważne, aby decydując się na wybór konkretnej platformy, mieć szerokie możliwości migracji, zarówno w zakresie wielkości pamięci oraz obudów, jak i pomiędzy rodzinami mikrokontrolerów. Atmel zapewnia takie możliwości. Podział ten w zakresie Cortex-M0+ wygląda następująco:
- ATSAMD20 - rodzina podstawowa,
- ATSAMD21 - rozwinięcie SAMD20 o interfejs USB (host oraz device), DMA oraz high-end timers/counters,
- ATSAMD10, SAMD11 - mają podobne cechy jak SAMD20 oraz SAMD21, ale są w małych obudowach,
- ATSAML21 - energooszczędna rodzina Cortex-M0+ z 35 µA/MHz w trybie active,
- ATSAML22 - układy z kontrolerem segmentowego LCD.
- ATSAMC20 - układy zasilane 5 V,
- ATSAMC21 - układy 5-woltowe wraz z CAN,
- ATSAMR21 - układy ze zintegrowanym transceiverem 802.15.4 na 2,4 GHz,
- ATSAMDA1 - układy z kwalifikacją pod rynek motoryzacyjny.
Bezpieczeństwo
Na ten obszar trzeba zwrócić szczególną uwagę. Współczesne systemy bazujące na mikrokontrolerach muszą gwarantować poufność informacji (szyfrowanie każdej transmisji), umożliwiać weryfikowanie, czy odebrana wiadomość nie została celowo zmodyfikowana oraz pozwalać na upewnienie się, że nadawca wiadomości jest tym, z którym chcemy się komunikować. Takie możliwości dają układy z serii Atmel Crypto-Authentication: ATSHA204A, ATAES-132A i ATECC508A. W sposób bezpieczny zapewniają one przechowywanie kluczy. Oprócz tego sprzętowo realizują wybrane algorytmy kryptograficzne, takie jak krzywe eliptyczne, AES, DES, SHA.
Wsparcie środowiska programistycznego
Wszystkie układy z Cortex-M0+ wspierane są przez, w pełni darmowe, środowisko Atmel Studio 6. Dodatkowo producent nie stosuje żadnego rodzaju ograniczeń na kod czy poziom optymalizacji kodu. W ramach Atmel Studio dostępny jest moduł ASF (Atmel Software Framework). W ramach tego modułu programista skorzystać może z szeregu driverów, stosów komunikacyjnych, przykładowych programów.
Wpływa on znacznie na czas pracy nad projektem i zdecydowanie skraca tak zwany time to market, przez co oferta producenta może być zdecydowanie atrakcyjniejsza, bo produkt trafi na rynek szybciej niż od konkurencji. Dodatkowo skracając czas, redukuje się sumaryczny koszt opracowania nowego produktu.
Mariusz Rudnicki
JM elektronik sp. z o.o.
www.jm.pl