Nieduże, lecz wydajne: małe mikrokontrolery zyskują popularność

Atmel-ATtiny-Applications_496x441

Okazuje się, że mały, lecz silny może zwyciężyć. Mowa o skromnych mikrokontrolerach, które udowadniały to w kolejnych latach. Powstaje pytanie, jak wiele funkcjonalności projektant jest w stanie zmieścić w mikrokontrolerze wyposażonym w 1 kB pamięci RAM? Odpowiedź zależy od możliwości i układów peryferyjnych zintegrowanych wewnątrz mikrokontrolera. O ile duże modele zawierają liczne układy peryferyjne, w przypadku małych mikrokontrolerów ograniczenie ich możliwości wynika z kosztu, rozmiaru i zużycia energii.

Stopniowo rośnie wykorzystanie małych mikrokontrolerów zastępujących dyskretne układy logiczne służące do pomiaru napięcia baterii, wykonywania operacji logicznych i sterowania za pomocą wejść, a także obsługi czujników temperatury, natężenie światła, wilgotności czy ruchu. Inne zastosowania obejmują podstawowy interfejs wykorzystujący przyciski, diody LED i głośniczki. W pewnych sytuacjach mały mikrokontroler może przesyłać niewielkie porcje danych za pośrednictwem sieci przewodowej lub bezprzewodowej. Obserwuje się zapotrzebowanie na bogatą funkcjonalność i rozbudowane układy peryferyjne umieszczone w mniejszych obudowach mikrokontrolerów, które wynika z rozwoju takich rozwiązań, jak osobiste urządzenia medyczne, inteligentne sprzęty kuchenne, oświetlenie LED, elektronarzędzia oraz węzły czujnikowe Internetu Przedmiotów. Na rynku rośnie zatem popyt na małe mikrokontrolery o bogatej funkcjonalności i układach peryferyjnych zazwyczaj spotykanych w większych modelach.

Projektanci przez długi czas mogli pracować z setkami małych mikrokontrolerów, które już wcześniej obsługiwały wiele różnych układów peryferyjnych. Jednak nowe energooszczędne 8-bitowe mikrokontrolery Atmel tinyAVR z serii AT-tiny102/104 oferują funkcjonalność, która do tej pory była spotykana wyłącznie w bardziej zaawansowanych produktach. Mikrokontrolery tinyAVR pozwalają projektantom systemów wbudowanych uzyskać jednocześnie niski koszt jednostkowy, ale także zaawansowane funkcje w małym układzie. Należy do nich 8 nowych zintegrowanych funkcjonalności: wbudowana programowalna pamięć Flash, unikalny identyfikator (ID), opcja szybkiego rozruchu, dokładny oscylator, USART, 10-bitowy przetwornik analogowo-cyfrowy (ADC), kilka źródeł napięcia referencyjnego i jednostka CPU o wydajności 12 MIPS.

Wbudowana pamięć Flash wielokrotnego zapisu przeznaczona na program pracuje w całym zakresie napięć od 1,8 do 5,5 V. Ta cecha pozwala na aktualizację systemu w miejscu pracy, ale też eliminuje potrzebę stosowania pamięci EEPROM do przechowywania danych kalibracji, parametrów, danych pomiarowych i wariantów ustawień. Jest to szczególnie ważne w przypadku systemów o małych rozmiarach.

Każdy układ ma unikalny 10-bajtowy identyfikator, do którego programiści mają bezpośredni dostęp z rejestrów. Projektanci mogą wykorzystać unikalny identyfikator jako adres podczas komunikacji przewodowej lub bezprzewodowej – na przykład jako urządzenie do zdalnego sterowania, pilot do garażu, tagi identyfikacyjne, jak również do śledzenia towarów i jako zabezpieczenie przed kradzieżą.

Funkcja szybkiego rozruchu pozwala zwiększyć komfort użytkownika w takich zastosowaniach, jak elektronarzędzia, małe urządzenia medyczne czy sterowniki LED, umożliwiając reakcję na polecenia użytkownika niemal natychmiast po uruchomieniu. Możliwe jest również przyspieszenie usypiania i budzenia, co pozwala znacząco wydłużyć czas pracy na baterii w zastosowaniach, które wymagają maksymalnego skrócenia czasu przetwarzania, takich jak węzły czujnikowe IoT.

Funkcja szybkiego rozruchu jest dostępna w modelach oznaczonych literą „F” (ATtiny102F-xxx, ATtiny104-xxx). Normalny czas budzenia w tych mikrokontrolerach wynosi 64 ms + 6 cykli oscylatora + 21 cykli zegara systemowego. W trybie przyspieszonym jest to 8 ms + 6 cykli oscylatora + 21 cykli zegara systemowego. Po wybudzeniu ze stanu bezczynności, oczekiwania lub trybu redukcji szumów przetwornika ADC oscylator układu już pracuje i jest gotowy bez zbędnego opóźnienia.

Poza wewnętrznym oscylatorem o częstotliwości 128 kHz i zewnętrznym wejściem zegara, mikrokontrolery zawierają skalibrowany oscylator 8 MHz, który może stanowić źródło głównego zegara. Podczas resetu automatycznie, sprzętowo wczytywany jest bajt służący do kalibracji oscylatora. Wbudowany, skalibrowany oscylator pozwala małemu mikrokontrolerowi generować dokładny sygnał PWM w celu ładowania baterii, wysterowania diod lub kontroli napędu w takich zastosowaniach, jak elektronarzędzia, szczoteczki do zębów i golarki, a także małe sprzęty AGD. Dzięki temu można też zmniejszyć liczbę dyskretnych komponentów w systemie. Mikrokontroler może też obsługiwać komunikację szeregową wysokiej szybkości.

Dokładność skalibrowanego oscylatora wynosi +- 3% przy stałym napięciu w zakresie temperatur od 0°C do 50°C i +- 4% w zakresie napięć od 2,7 do 4,0 V w temperaturze od 0°C do 85°C. Po włączeniu skalibrowany oscylator nie potrzebuje do pracy zewnętrznych komponentów, co pozwala uprościć projekt i strukturę płytki. Układ zegara systemowego pozwala na podział częstotliwości oscylatora przez 1, 2, 4, 8, 16, 32, 64, 128 lub 256. To umożliwia uzyskanie bardzo niskiej szybkości mikrokontrolera i tym samym niskiego poboru mocy.

Moduł komunikacji szeregowej USART oferuje pracę w trybie full duplex, zapewniając niezależne rejestry nadawcze i odbiorcze. Ten moduł pozwala zrealizować system, w którym zachodzi potrzeba wymiany danych między mikrokontrolerami. Ponadto umożliwia komunikację synchroniczną lub asynchroniczną z ramkami zawierającymi 5, 6, 7, 8 lub 9 bitów danych i 1 lub 2 bity stopu. Moduł zapewnia ponadto generację i sprawdzanie parzystości / nieparzystości bitów oraz przekroczenie bufora zapisu i błędy ramki. Dostępna jest też możliwość wykrywania błędnego bitu startu i cyfrowy filtr dolnoprzepustowy. Zużycie mocy można obniżyć, korzystając ze specjalnego rejestru w celu zatrzymania zegara USART.

Te małe mikrokontrolery zawierają również 10-bitowy przetwornik analogowo-cyfrowy (ADC) typu SAR o szybkości próbkowania 15 tysięcy próbek na sekundę. Przetwornik obsługuje do 8 kanałów wyjściowych, a jego dokładność to 30 mV przy napięciu wejściowym 1,5 V lub 50 mV przy napięciu 4,2 mV. Osobny system zegara ADC pozwala zatrzymać zegary CPU i układów wejścia-wyjścia, aby zmniejszyć szumy generowane przez układy cyfrowe i tym samym zapewnić większą dokładność konwersji. Trzy skalibrowane, wewnętrzne źródła napięcia referencyjnego pozwalają na pomiary z typową dokładnością +- 3%. Napięcie referencyjne 1,1 V jest przeznaczone dla słabych sygnałów wejściowych. Napięcie 2,2 V jest odpowiednie do pomiaru ogniw baterii niklowo-metalowo-wodorkowych i alkalicznych 1,5 V. Natomiast napięcie 4,3 jest przeznaczone do pomiaru stanu baterii litowo-jonowych.

Potok zastosowany w architekturze tinyAVR pozwala mikrokontrolerowi na osiągnięcie wydajności do 1 MIPS/MHz. Poza możliwością pracy z wewnętrznym, skalibrowanym oscylatorem 8 MHz, mikrokontroler może też pracować z zewnętrznym źródłem zegara pracującym z częstotliwością do 12 MHz. To pozwala na szybszą pracę, ale również może wydłużyć czas pracy na baterii – układ może krócej przebywać w stanie aktywnym, wykonując swe zadania, po czym szybciej przejść w tryb uśpienia lub tryb obniżonego poboru mocy. Daje to projektantom możliwość optymalizacji ich projektów w celu poprawy zużycia mocy, czasu odpowiedzi lub wydajności obliczeniowej.

Materiały projektowe

Nowe mikrokontrolery są dostępne w obudowach SOIC z liczną wyprowadzeń 8 lub 14, a także w obudowie UDFN o wymiarach 2 x 3 mm z 8. wyprowadzeniami. Zestaw ewaluacyjny Atmel Xplained Nano stanowi platformę dla projektantów, która umożliwia wykorzystanie tych mikrokontrolerów. Połączenie układu z płytką jest możliwe bez lutowania i daje projektantom dostęp do wszystkich wejść i wyjść mikrokontrolera. Zestaw można wykorzystać jako programator również dla innych mikrokontrolerów tinyAVR dzięki interfejsowi programatora Tiny.

fota

Darmowe środowisko projektowe Atmel Studio 7 obsługuje około 600 modeli mikrokontrolerów tinyAVR, w tym nowe układy tiny102 z 8. wyprowadzeniami i tiny104 z 14. wyprowadzeniami. Dostępne przykładowe kody zostały zoptymalizowane pod kątem minimalnego zużycia pamięci. Zawierają przykłady takich czynności, jak programowanie pamięci Flash, wybór zegara systemowego, dostęp do pinów GPIO, obsługa przetwornika ADC, obsługa wyjść T/C oraz PWM, a także odczytywanie unikalnego identyfikatora układu. Bardziej zaawansowane przykłady to między innymi bootloader i układ kontrolera interfejsów TWI/I2C.

Nowe układy tinyAVR są jednymi z najmniejszych modeli skalowanej rodziny, w skład której wchodzi około 2000 wariantów układów. Te wydajne 8-bitowe mikrokontrolery wykorzystują technologię Atmel picoPower, aby uzyskać jak najmniejszy pobór mocy. Projektanci korzystający z tinyAVR mają dostęp do zaawansowanych narzędzi projektowych przyspieszających pracę, mogą też odwiedzić forum AVR Freaks i otrzymać wsparcie społeczności konstruktorów Arduino.

Podsumowując, nowe mikrokontrolery tinyAVR są odpowiednie dla wielu zastosowań, w których wymagane są duże możliwości przy małym rozmiarze, niskim zużyciu mocy i niskiej cenie.

 

 

O autorze