energooszczędnych układów elektronicznych (5) Mikrokontrolery zasady wyboru układu

Podobne dokumenty
Układy zegarowe w systemie mikroprocesorowym

Wstęp Architektura... 13

WPROWADZENIE Mikrosterownik mikrokontrolery

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Pobór mocy przez układy mikroprocesorowe

WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR

Układy czasowo-licznikowe w systemach mikroprocesorowych

Układy zegarowe w systemie mikroprocesorowym

Notatka lekcja_#3_1; na podstawie W.Kapica 2017 Strona 1

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Wykład 2. Mikrokontrolery z rdzeniami ARM

Programowanie mikrokontrolerów 2.0

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

2. Architektura mikrokontrolerów PIC16F8x... 13

Układy czasowo-licznikowe w systemach 80x86

BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO

Wykład 6. Mikrokontrolery z rdzeniem ARM

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Systemy wbudowane. Paweł Pełczyński

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe. 20 wyjść tranzystorowych

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

energooszczędnych Część VII : Oprogramowanie

4. Funktory CMOS cz.2

SML3 październik

ZL10PLD. Moduł dippld z układem XC3S200

Sterownik oczyszczalni ścieków OS-One

System mikroprocesorowy i peryferia. Dariusz Chaberski

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Część 6. Mieszane analogowo-cyfrowe układy sterowania. Łukasz Starzak, Sterowanie przekształtników elektronicznych, zima 2011/12

Karta katalogowa JAZZ OPLC JZ20-R31

Pobór mocy przez układy mikroprocesorowe

E-TRONIX Sterownik Uniwersalny SU 1.2

Hardware mikrokontrolera X51

Szkolenia specjalistyczne

T 1000 PLUS Tester zabezpieczeń obwodów wtórnych

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

CONSUL BUSINESS TRANSFER MARKETING

Karta katalogowa JAZZ OPLC. Modele JZ20-T10/JZ20-J-T10 i JZ20-T18/JZ20-J-T18

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

Dalsze informacje można znaleźć w Podręczniku Programowania Sterownika Logicznego 2 i w Podręczniku Instalacji AL.2-2DA.

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Generatory przebiegów niesinusoidalnych

PROGRAMOWANIE PWM. Porty, które mogą być zamienione na PWM w każdym module RaT16 to port 3,4,5,6

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Instytut Teleinformatyki

2.1 Porównanie procesorów

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

Scalony analogowy sterownik przekształtników impulsowych MCP1630

projekt przetwornika inteligentnego do pomiaru wysokości i prędkości pionowej BSP podczas fazy lądowania;

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Klasyfikacja metod przetwarzania analogowo cyfrowego (A/C, A/D)

Badanie działania bramki NAND wykonanej w technologii TTL oraz układów zbudowanych w oparciu o tę bramkę.

Zastosowania mikrokontrolerów w przemyśle

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

MCAR Robot mobilny z procesorem AVR Atmega32

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

ACX-210. Miniaturowy ekspander wejść i wyjść przewodowych. Wersja oprogramowania 1.00 acx-210_pl 03/19

Czujniki podczerwieni do bezkontaktowego pomiaru temperatury. Czujniki stacjonarne.

12. Zasilacze. standardy sieci niskiego napięcia tj. sieci dostarczającej energię do odbiorców indywidualnych

Politechnika Gdańska. Gdańsk, 2016

Gdy wzmacniacz dostarcz do obciążenia znaczącą moc, mówimy o wzmacniaczu mocy. Takim obciążeniem mogą być na przykład...

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

JAZZ OPLC JZ20-R10 i JZ20-R16

MiniTrans. Michał Nitschke ul. Strzeszyńska 67C/ Poznań tel./fax:

Opracowane przez D. Kasprzaka aka 'master' i D. K. aka 'pastakiller' z Technikum Elektronicznego w ZSP nr 1 w Inowrocławiu.

Liniowe układy scalone w technice cyfrowej

Część 4. Zmiana wartości napięcia stałego. Stabilizatory liniowe Przetwornice transformatorowe

Sterownik PLC ELP11R32-BASIC Dokumentacja techniczna (ver. 1.0)

Samba OPLC SM35-J-T20

Programowanie mikrokontrolerów 2.0

LOKALIZATOR PRZENOŚNY KDZ-3C.

Przetwornica SEPIC. Single-Ended Primary Inductance Converter z przełączanym jednym końcem cewki pierwotnej Zalety. Wady

Układy akwizycji danych. Komparatory napięcia Przykłady układów

Przykłady wybranych fragmentów prac egzaminacyjnych z komentarzami Technik elektroniki medycznej 322[18]

Temat: Pamięci. Programowalne struktury logiczne.

LEKCJA TEMAT: Zasada działania komputera.

Technika Mikroprocesorowa

MIKROKONTROLERY I MIKROPROCESORY

Miernik LED 3w1: woltomierz zegar DS3231 termometr

Ćwiczenie 21 Temat: Komparatory ze wzmacniaczem operacyjnym. Przerzutnik Schmitta i komparator okienkowy Cel ćwiczenia

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

LOKALIZATOR PRZENOŚNY KDZ-3C. 1. WSTĘP. 2. Zastosowanie. 3. Budowa. System kontroli doziemienia KDZ-3. ZPrAE Sp. z o.o. 1

1. Zasilacz mocy AC/ DC programowany 1 sztuka. 2. Oscyloskop cyfrowy z pomiarem - 2 sztuki 3. Oscyloskop cyfrowy profesjonalny 1 sztuka

Projektowanie i produkcja urządzeń elektronicznych

dokument DOK wersja 1.0

CENNIK HURTOWY. Baterie alkaliczne. 4,30 zł 0,43 zł. 4,00 zł 0,40 zł. 12,00 zł 2,40 zł. 2,60 zł 0,52 zł. R. Czesnowski, B. Czesnowska sp.j.

OSTER 2 Sterownik programowalny z wbudowanym modemem GPRS

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Tranzystory bipolarne. Właściwości dynamiczne wzmacniaczy w układzie wspólnego emitera.

Karta katalogowa JAZZ OPLC. Modele JZ20-R10/JZ20-J-R10 i JZ20-R16/JZ20-J-R16

JAZZ OPLC JZ20-R31/JZ20-J-R31

SPECYFIKACJA TECHNICZNA

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Porty wejścia/wyjścia w układach mikroprocesorowych i w mikrokontrolerach

Regulacja dwupołożeniowa (dwustawna)

Transkrypt:

Projektowanie energooszczędnych układów elektronicznych (5) Mikrokontrolery zasady wyboru układu Dodatkowe materiały na CD i FTP Od początku swojego istnienia mikroprocesory i mikrokontrolery pomagają ograniczać zużycie energii przez silniki spalinowe i elektryczne, urządzenia grzewcze itp. Jednak dopiero ostatnie kilka lat przyniosło wzrost zainteresowania ograniczaniem poboru prądu przez same mikrokontrolery. Co prawda tryby oszczędzania energii były dostępne od dawna, jednak ich intensywne wykorzystywanie rozpoczęło się po upowszechnieniu urządzeń zasilanych bateryjnie. Kategorie układów energooszczędnych Zasilane bateryjnie urządzenia z mikrokontrolerami, w zależności od mocy obliczeniowej oraz tzw. czasu autonomii, można podzielić na dwie kategorie. Czas autonomii, to czas pracy urządzenia przy zasilaniu z jednego kompletu baterii lub z akumulatorów ładowanych w jednym cyklu. Grupa pierwsza, to urządzenia z czasem autonomii od kilkunastu do kilkuset godzin. Należą do niej głównie urządzenia powszechnego użytku: telefony komórkowe, nawigacje GPS, aparaty cyfrowe, przenośne odtwarzacze itp. W tej grupie głównym zadaniem konstruktorów jest kuszenie nabywcy bogactwem funkcji i możliwości, a oszczędność energii jest istotna, ale nie najważniejsza. Stosowane tutaj mikrokontrolery, to zwykle jednostki 32-bitowe o bardzo dużej mocy obliczeniowej i bogato wyposażone w układy peryferyjne. Do grupy drugiej należą urządzenia, których czas autonomii liczy się w miesiącach lub latach. Tutaj różnorodność urządzeń jest dość duża: Czujniki i rejestratory parametrów fizykochemicznych instalowane w miejscach trudnodostępnych, bez możliwości zasilania z sieci. Transmisja wyników może odbywać się na bieżąco drogą radiową, lub okresowo poprzez łącze kablowe lub pętlę indukcyjną. Przykłady: czujnik ciśnienia powietrza montowany wewnątrz opony samochodu, miernik energii cieplnej instalowany na grzejni- kach, transportowy rejestrator temperatury, wkładany do wnętrza opakowania produktów wymagających ciągłego chłodzenia, czujnik wibracji wbudowany do wnętrza turbiny. Elektroniczne implanty i urządzenia wszczepiane do organizmu ludzkiego. Do niedawna były to wyłącznie elektroniczne stymulatory/rozruszniki serca. Obecnie grupa elektronicznych implantów biomedycznych bardzo szybko się rozwija. Lekarze mają już do dyspozycji między innymi: elektroniczne kontrolery pracy protez kończyn, implanty słuchowe, systemy monitorujące stan pacjenta i w razie potrzeby podające odpowiednie dawki leku bezpośrednio do krwi, elektroniczne pigułki, które po połknięciu przekazują obraz przewodu pokarmowego i żołądka. Systemy zdalnego sterowania i nadzoru. Jest to olbrzymia i zróżnicowana grupa urządzeń, w której z jednej strony mamy sterowanie marsjańskim łazikiem, a z drugiej sygnalizator zmoczenia pieluchy przez niemowlaka. Z punktu widzenia tematyki artykułu bardziej interesujące są urządzenia grupy drugiej, które łączy jedno: konieczność oszczędnego korzystania ze źródła zasilania i niezawodnej pracy przez wiele miesięcy lub lat. Coraz częściej spotyka się konstrukcje, w których bateria zasilająca jest wbudowana na stałe i powinna wystarczyć na cały okres użytkowania urządzenia. Takie rozwiązanie Dodatkowe materiały na CD i FTP: ftp://ep.com.pl, user: 16195, pass: 4k17u606 ma szereg zalet: brak konieczności dostępu do wnętrza urządzenia upraszcza konstrukcję obudowy, ułatwia zapewnienie całkowitej wodoszczelności i odporności na trudne warunki eksploatacji. Przykładem mogą być elektroniczne termometry lekarskie zapewnienie możliwości wymiany baterii przy zachowaniu szczelności urządzenia, spowodowałoby znaczny wzrost gabarytów i ceny takiego termometru. Na dwóch przykładach obliczeniowych przekonamy się, z jak małymi poborami prądu muszą się zmierzyć konstruktorzy: Przykład 1: Bateria 3 V typu CR2032, czas ciągłej eksploatacji 3 lata lub 5 lat. Dzieląc katalogową pojemność 210 mah przez 3 365 dni 24 godziny tj. 26280 godzin, otrzymujemy średni pobór prądu ok. 8 ma dla 3-letniej eksploatacji. Dla 5 lat będzie to 210 mah/43800 godz.=4,8 ma. Przyjmując 10% margines bezpieczeństwa otrzymamy 7,2 ma dla 3 lat i 4,3 ma dla 5 lat. Przykład 2: Bateria litowa 3,6 V typu LS14500 (AA), o pojemności 2200 mah. Tu możemy pozwolić sobie na dłuższy czas eksploatacji, bo producent deklaruje 10-letnią trwałość baterii. Dopuszczalny, średni pobór prądu wyniesie 50 ma dla 5 lat i 35,8 ma dla 7 lat. Z marginesem 10% będzie to odpowiednio 45,0 i 32,3 ma. W przypadku wieloletnich okresów eksploatacji należy uwzględnić także ubytek pojemności wynikający z samorozładowania się baterii. Należy oczekiwać utraty pojemności rzędu 1% na rok dla baterii litowych i 3% na rok dla baterii alkalicznych. Dla obciążeń na poziomie kilku mikroamperów, samorozładowanie w widoczny sposób zmniejsza użyteczną pojemność baterii (rysunek 28). Podwyższona temperatura otoczenia przyspiesza proces samorozładowania (rysunek 29). 126 ELEKTRONIKA PRAKTYCZNA 12/2010

Mikrokontrolery zasady wyboru układu Rysunek 28. Zjawisko samorozładowanie się baterii w widoczny sposób zmniejsza jej użyteczną pojemność Rysunek 29. Podwyższona temperatura otoczenia przyśpiesza proces samorozładowania się baterii Mikrokontroler 8, 16 czy 32-bitowy? Zwolennicy mikrokontrolerów z rdzeniem ARM już ogłosili rychłą śmierć systemów innych, niż 32-bitowe. Jednak historia uczy, że w dziedzinie elektroniki i informatyki proroctwa rzadko się sprawdzają. Może się okazać, że za 10 lat zarówno rdzenie 8-bitowe, jak i ARM-Cortex będą jednakowo przestarzałe. Jak na razie, producenci mikrokontrolerów 8/16-bitowych znaleźli niszę rynkową właśnie w dziedzinie układów energooszczędnych. Najnowsze konstrukcje z kategorii Ultra Low Power zadowalają się poborem prądu nieosiągalnym dla rdzeni 32-bitowych. Z drugiej strony, wydajność obliczeniowa systemów 32-bitowych jest nieporównywalnie większa, co pozwala na realizację zadań obliczeniowych w krótszym czasie, a niektóre rdzenie (np. Cortex-M0) są zorientowane na jak najniższe zużycie energii. W układach energooszczędnych nie można kierować się zasadą, że mikrokontroler 16-bitowy będzie zawsze lepszy od 8-bitowego, a 32-bitowy lepszy od 16-bitowego. Jeżeli mamy do dyspozycji 4 lub 7 ma ze źródła zasilania, to żadna siła tego nie zmieni i musimy wybrać mikrokontroler odpowiedni do aplikacji, bez oglądania się na mody i trendy. Rdzeń 32-bitowy niezbędny jest w aplikacjach wymagających szybkiej arytmetyki zmiennoprzecinkowej lub FFT oraz do przetwarzania dużej ilości danych (np. strumienie audio i wideo). Do aplikacji typu maszyna stanów oraz prostych układów pomiarowych z reguły wystarczy system 8/16-bitowy. Istotnym czynnikiem jest ELEKTRONIKA PRAKTYCZNA 12/2010 na pułapki związane z niskim napięciem. Na przykład MSP430L092 (prod. TI) jest jednym z pierwszych mikrokontrolerów dopuszczających zasilanie napięciem 0,9 do 1,65 V, ale przy 0,9 V maksymalna częstotliwość zegarowa wynosi 1 MHz. Stosowanie zegara 4 MHz wymaga zachowania wąskiego zakresu napięcia zasilania 1,3...1,65 V. Pogorszenie parametrów dynamicznych mikrokontrolerów w pobliżu dolnej granicy dopuszczalnego zakresu napięć zasilających jest zjawiskiem dość typowym, dlatego producenci często podają dwa zakresy napięć: dopuszczalny i rekomendowany, albo zastrzegają, że wybrane parametry robocze nie są gwarantowane dla najniższych napięć zasilania. Powszechne jest podawanie dwóch różnych wartości maksymalnych częstotliwości zegara, na przykład 16 MHz dla Vcc=2,5...3,6 V, ale tylko 2 MHz dla Vcc=1,8...2,5 V. Podobne ograniczenia dotyczą wbudowanych układów analogowych (przetworniki A/C i C/A, komparatory), które do prawidłowej pracy wymagają nieco wyższego napięcia zasilania, niż układy cyfrowe. Problem ten nie występuje w mikrokontrolerach z wbudowanym stabilizatorem napięcia Low Drop: mikrokontroler jest zasilany wewnętrznie stabilizowanym napięciem np. 1,6 V. Wtedy wahania zewnętrznego napięcia zasilającego w granicach np. 1,65...3,6 V nie wpływają znacząco na pobór prądu, ani na parametry dynamiczne. Jest to szczególnie istotne przy zasilaniu bateryjnym. Przykład: napięcie baterii 3 V maleje w trakcie eksploatacji od 3,0...2,0 V. Mikrokontroler bez stabilizatora będzie pobierał 300 ma przy 3 V i 200 ma przy 2 V. Zastosowanie stabilizatora 1,9 V da nam stały pobór prądu 190 ma przez cały okres eksploatacji (dane liczbowe dla MSP430G2 z zegarem 1 MHz). Bardziej rozbudowane systemy dysponują układem zarządzania zasilaniem, który może obniżać napięcie zasilania rdzenia, pamięci i układów peryferyjnych po przejściu mikrokontrolera w tryb oszczędny i ponownie je podwyższać dla maksymalnej prędkości pracy. W stanie uśpienia układ zarządzania zasilaniem może całkowicie odcinać zasilanie poszczególnych bloków, zachowując minimalne napięcie podtrzymania zawartości rejestrów i pamięci RAM. Analizując dane katalogowe mikrokontrolerów, warto poszukać informacji z kategorii pisanych drobnym drukiem, na temat minimalnego napięcia zasilania przy programowaniu pamięci Flash. Zdarza się, że napięcie to jest wyższe od minimalnego napięcia roboczego o 0,5...1 V. W konstrukcjach wymagających programowania w układzie (ISP lub IAP) należy zadbać o odpowiednie napięcie zasilania podczas programowania. Pobór prądu w funkcji częstotliwości zegara. Ze względu na prawie liniową zależność poboru prądu od częstotliwości zeteż koszt i pracochłonność oprogramowania. Optymalizacja programu pod kątem oszczędności energii jest zagadnieniem stosunkowo nowym i słabo wspieranym przez popularne kompilatory. Często niezbędna jest ręczna optymalizacja na poziomie asemblera i modyfikacje pojedynczych bitów w rejestrach konfiguracyjnych. Takie działania są znacznie mniej pracochłonne w przypadku mikrokontrolerów 8-bitowych. Pobór prądu przez mikrokontroler Wybierając mikrokontroler do aplikacji energooszczędnych, należy bardzo uważnie przestudiować dane katalogowe zwracając uwagę na parametry, które nie były krytyczne w tradycyjnych zastosowaniach, a mają znaczący wpływ na pobór prądu. Dodatkowym utrudnieniem jest, że producenci często prezentują dane katalogowe w taki sposób, aby wypaść korzystnie w stosunku do produktów konkurencji. Można tu użyć analogii do wartości zużycia paliwa podawanych przez producentów samochodów. Pomiary producentów wykonywane są w sztucznych, precyzyjnie określonych warunkach, które nie odpowiadają normalnym warunkom eksploatacji zarówno samochodów, jak i mikrokontrolerów. Całkowite zużycie energii przez mikrokontroler zależy od wielu czynników, najważniejsze z nich przedstawiono poniżej. Napięcie zasilania. Jest rzeczą oczywistą, że niższe napięcia zasilające wiążą się z mniejszym poborem prądu. Obecnie standardem jest zakres napięć 1,8...3,6 V, chociaż zdarzają się już mikrokontrolery pracujące przy napięciu 0,9 V. Niestety, trzeba uważać 127

garowej, często podawany jest współczynnik Kf=I CC /f CLK [ma/mhz]. Dla mikrokontrolerów klasy Micropower wartości tego współczynnika zawierają się w zakresie 45...300 ma/ MHz. Często praktykowane przez producentów podawanie tego współczynnika wytłuszczonym tekstem może być mylące, bo sugeruje, że mikrokontroler z Kf=150 ma/ MHz przy częstotliwości zegara 500 khz będzie pobierał 75 ma. W rzeczywistości przybliżony pobór prądu mikrokontrolera można obliczyć ze wzoru: I CC = I0+f CLK Kf. Prąd początkowy I0 jest niezależny od częstotliwości zegara, natomiast może zależeć od rodzaju stosowanego generatora zegarowego (RC, kwarcowy) oraz od warunków pracy (napięcie zasilania, temperatura otoczenia). Jeżeli przyjmiemy przykładową wartość I0=225 ma, to dla zegara 500 khz otrzymamy ICC=225 ma+75 ma=300 ma. Przytoczone wartości liczbowe nie są przypadkowe, lecz wybrane na podstawie uśrednionych danych katalogowych kilku producentów. Współczynnik Kf nie jest stały, lecz zależy od napięcia zasilania i zakresu częstotliwości zegarowej. Dla zakresu niskich częstotliwości 100 khz...1 MHz wartość współczynnika może być nieco inna, niż dla wyższych częstotliwości zegara. Należy pamiętać o tym, że średni pobór prądu podany w danych katalogowych dotyczy szczególnych warunków pracy: urządzenia peryferyjne wyłączone, wyjścia nieobciążone i ustawione w określony stan logiczny, temperatura pokojowa. Wysoka temperatura powoduje zwiększenie poboru prądu. Dla wartości granicznych 80...125 C należy się liczyć ze wzrostem prądu w trybie aktywnym o 10...20 %. Układy peryferyjne. Producenci oferują mikrokontrolery coraz lepiej wyposażone w układy peryferyjne, co w przypadku systemów energooszczędnych nie zawsze jest korzystne. W bogato wyposażonych mikrokontrolerach może się okazać, że łączny pobór prądu układów peryferyjnych będzie większy, niż prąd pobierany przez CPU. Pobór prądu dla poszczególnych peryferiów podawany jest w osobnej tabeli karty katalogowej, w zależności od częstotliwości zegara i trybu pracy. Często stosowaną metodą ograniczenia poboru prądu jest taktowanie układów peryferyjnych z niższą częstotliwością niż CPU. Źródłem sygnału zegarowego może być dzielnik częstotliwości głównego generatora zegarowego, z programowanym współczynnikiem podziału (4, 8, 16, 32 itd.), albo osobny generator niskiej częstotliwości. Przydatną właściwością jest możliwość indywidualnego ustalenia częstotliwości taktowania dla poszczególnych peryferiów, na przykład niska częstotliwość dla portów GPIO i przetwornika A/C, przy zachowaniu dużej szybkości pracy interfejsów szeregowych. Oddzielnie należy oszacować prąd związany z portami zewnętrznymi GPIO. Oprócz prądów obciążenia wyjść, należy też uwzględnić prąd płynący przez wewnętrzne rezystory podciągające wejść i wyjść cyfrowych. Przy dużej ilości portów GPIO, prąd ten może osiągać znaczne wartości. Jeżeli konstrukcja mikrokontrolera umożliwia programowe konfigurowanie rezystorów podciągających, należy aktywować tylko te, które są niezbędne. Rodzaj generatora zegarowego. W układach energooszczędnych wybór typu generatora jest kompromisem pomiędzy dokładnością a zużyciem energii. Tradycyjne generatory kwarcowe pobierają znaczny prąd, natomiast generatory RC są oszczędne energetycznie, ale nie zapewniają tak dobrej stabilności i precyzji częstotliwości zegara. Dlatego też nowoczesne mikrokontrolery zawierają kilka generatorów zegarowych z rozbudowanym układem przełączania. Zestaw dzielników i multiplekserów (sterowany zawartością rejestrów konfiguracyjnych) umożliwia programowe włączanie i wyłączanie poszczególnych generatorów oraz kierowanie wybranych sygnałów zegarowych do CPU i układów peryferyjnych. Moduł zegarowy może składać się z czterech generatorów: Klasyczny generator kwarcowy o częstotliwości 1...25 MHz. Może być uruchamiany chwilowo do obsługi wybranych procedur (transmisja szeregowa, precyzyjny pomiar czasu trwania lub częstotliwości impulsów). Generator RC o częstotliwości rzędu 1...20 MHz, optymalizowany pod kątem zużycia energii. Służy jako główny zegar systemowy, gdy stabilność częstotliwości nie jest krytyczna. Generator ten nie wymaga zewnętrznych elementów RC, pracuje z ustaloną fabrycznie częstotliwością. Tak jak w przypadku generatora kwarcowego, niższe częstotliwości zegarowe uzyskuje się z programowanych dzielników, natomiast wyższe z powielacza z pętlą PLL. Stabilność częstotliwości w pełnym zakresie zmian temperatury i napięcia zasilania mieści się w polu tolerancji ±2% do ±4%. Generator kwarcowy 32768 Hz. Zwykle wykorzystywany w zegarze RTC, ale może też służyć do taktowania CPU i urządzeń peryferyjnych w trybach obniżonego zużycia energii. Generator RC małej częstotliwości (10...40 khz). Używany zamiast generatora kwarcowego RTC w trybach najbardziej obniżonego zużycia energii. Stabilność częstotliwości nie jest najlepsza (rzędu 15%), ale jego zaletą jest pobór prądu znacznie poniżej 1 ma. Generatory RC mogą mieć zainstalowaną funkcje kalibracji częstotliwości. Pozwala ona na przestrajanie generatora cyfrowo w zakresie kilku procent, a wartość poprawki jest zapisywana w rejestrze konfiguracyjnym. Tryby oszczędzania energii Nowoczesne mikrokontrolery energooszczędne mają bardzo rozbudowane układy generatorów zegarowych i systemy kontroli zasilania, realizujące kilka, a nawet kilkanaście różnych trybów oszczędzania energii. Jednakże w układach mikroprądowych tryby oszczędzania energii polegające na ograniczaniu częstotliwości taktowania rdzenia i urządzeń peryferyjnych są niewystarczające. Bilans energetyczny wymaga cyklu pracy, w którym mikrokontroler jest w stanie głębokiego uśpienia przerywanym krótkimi okresami aktywności. Istotne znaczenie mają dwa parametry: pobór prądu w stanie uśpienia i czas wybudzania. Dla mikrokontrolerów klasy micropower obecnie standardem jest pobór prądu poniżej 1 ma w stanie najgłębszego uśpienia (w temperaturze 20 C). Jednakże należy pamiętać, że jest to prąd statyczny, który w układach CMOS szybko rośnie przy wzroście temperatury otoczenia. Już przy 50 C prąd ten będzie 3-krotnie większy, a powyżej 100 C należy oczekiwać nawet 10-krotnego wzrostu poboru prądu w stanie uśpienia. Porty GPIO mogą w trybie uśpienia być ustawione w stanie wysokiej impedancji, ale mogą też zachować swoje poziomy logiczne. W tym przypadku należy bardzo uważać na rezystory podciągające. Wystarczy jedno wyjście w stanie niskim z rezystorem pull-up o rezystancji 100 kv, aby całkowicie zniweczyć efekt oszczędzania energii (prąd 27 ma przy zasilaniu 2,7 V). Często pomijanym czynnikiem bilansu energetycznego jest prąd upływu wejść. W stanie uśpienia na wejściach cyfrowych mogą panować określone poziomy logiczne, wymuszające prąd upływu. Jeżeli przykładowo mikrokontroler ma 20 wejść z prądem upływu po 100 na, to łączny prąd wyniesie 2 ma. Niektórzy producenci stosują rozwiązania układowe obniżające prąd upływu wejść, na przykład poprzez odcięcie zasilania obwodów wejściowych. Wybudzanie ze stanu uśpienia może być aktywowane czynnikiem zewnętrznym (przerwanie) lub wewnętrznym (sygnał z Timera, zegara RTC). W pierwszym przypadku jest możliwe wprowadzenie wszystkich bloków mikrokontrolera w stan statyczny, natomiast w drugim est niezbędna aktywna praca jednego z wewnętrznych generatorów zegarowych oraz układu odmierzającego czas. Dla każdego z powyższych przypadków wymagany jest inny tryb oszczędzania energii. W stanie najgłębszego uśpienia podtrzymywana jest tylko zawartość pamięci RAM i rejestrów, a do wybudzenia mikrokontrolera jest wymagana zmiana stanu jednego z wejść. Jeżeli mikrokontroler jest 128 ELEKTRONIKA PRAKTYCZNA 12/2010

Mikrokontrolery zasady wyboru układu 10-krotnie wyższej niż potrzeby aplikacji byłby bardzo wygodny dla programisty, ale niestety oznacza znaczny wzrost pobieranej mocy (niekoniecznie 10-krotny, będzie o tym mowa w kolejnych częściach cyklu artykułów). Oszacowanie wymaganej przez aplikację mocy obliczeniowej mikrokontrolera jest dość trudne, a producenci wcale nie ułatwiają życia konstruktorom. Z reguły w nagłówku karty katalogowej znajdujemy napisaną tłustym drukiem informację, że mikrokontroler dysponuje mocą obliczeniową np. 16 MIPS przy częstotliwości zegarowej 16 MHz. Informacja ta początkowo nie wzbudza podejrzeń, ale na kolejnych stronach czytamy...70% instrukcji jest wykonywanych w jednym cyklu zegarowym.... Oznacza to, że 30% instrukcji wymaga dwóch lub więcej cykli zegara. W tym momencie należy odszukać te instrukcje na liście rozkazów i oszacować częstotliwość ich występowania w programie. Jeżeli statystycznie połowa instrukcji w naszej aplikacji będzie wymagała 2 cykli zegara, to mamy do dyspozycji tylko 12 MIPS. W szczególnych przypadkach, instrukcja wymagająca 3 cykli zegara może być wielokrotnie wykonywana w pętli, co jeszcze bardziej zmniejszy efektywną moc obliczeniową. Czasami optymizm producentów jest zdumiewający. Na przykład...z zegawyposażony w specjalne wejście WAKEUP, to jedyną możliwością jest zmiana stanu na tym wejściu. Więcej możliwości dają mikrokontrolery, które w stanie uśpienia mają aktywny układ kontroli przerwań. Wtedy źródeł sygnału budzenia może być kilka, na przykład naciśnięcie dowolnego klawisza na klawiaturze, zmiana stanu wejścia transmisji szeregowej itp. W przypadku budzenia mikrokontrolera wewnętrznym sygnałem upływu czasu, musi cały czas pracować jeden generator zegarowy, oraz Timer lub zegar RTC. W takim trybie pracy pobór prądu jest przynajmniej 2-krotnie wyższy, niż w stanie statycznym (dla generatora zegarowego RC). Jeżeli odmierzanie czasu ma być precyzyjne, to musi być aktywny zegar RTC z generatorem kwarcowym 32768 Hz, co zwiększy pobór prądu o kolejne 1...3 ma. Czas wybudzania ze stanu uśpienia (twk wake-up time) zależy od rodzaju używanego generatora zegarowego. Generator kwarcowy wymaga przynajmniej 1000 cykli zegarowych do ustabilizowania się drgań, co oznacza czas 100 ms przy częstotliwości 10 MHz. Generator RC startuje dużo szybciej, co umożliwia uzyskiwanie czasu wybudzania rzędu 3...5 ms. Jeżeli generator RTC jest aktywny przez cały czas, to rdzeń może podjąć pracę wykorzystując sygnał zegarowy RTC. Co prawda, rdzeń pracuje wtedy z niską częstotliwością, ale można uzyskać czas budzenia CPU poniżej 1 ms. Krótki czas wybudzania, to szybsza obsługa zdarzeń, ale też znaczna oszczędność energii. W fazie wybudzania mikrokontroler już zużywa większą moc, ale jeszcze nie wykonuje użytecznej pracy (rysunek 30). Częstym przypadkiem jest cykliczne wybudzanie mikrokontrolera w celu wykonania pomiarów analogowych. Parametr katalogowy twk dotyczy wybudzania części cyfrowej mikrokontrolera, natomiast bloki analogowe wymagają dłuższego czasu na ustabilizowanie parametrów. Układ napięcia referencyjnego jest zwykle wyposażony w kondensatory filtrujące, a czas ustalania napięcia może być rzędu milisekund. W takiej sytuacji czynnikiem decydującym o zużyciu energii może być czas wybudzania bloku analogowego. Bardzo przydatna jest oferowana przez niektóre mikrokontrolery funkcja uruchamiania bloków peryferyjnych niezależnie od CPU. Na przykład: sygnał przerwania z RTC uruchamia przetwornik analogowo-cyfrowy, który umieszcza wynik pomiaru w obszarze pamięci buforowej. Po zapełnieniu bufora określoną ilością wyników, aktywowana jest jednostka centralna w celu ich przetworzenia. Moc obliczeniowa W układach energooszczędnych nie można sobie pozwolić na wysokie marginesy bezpieczeństwa w zakresie mocy obliczeniowej. Wybór częstotliwości zegarowej ELEKTRONIKA PRAKTYCZNA 12/2010 Rysunek 30. W fazie wybudzania mikrokontroler już zużywa większą moc, ale jeszcze nie wykonuje użytecznej pracy rem 32 MHz moc obliczeniowa wynosi 33,5 MIPS.... Producent nie podaje warunków, w których uzyskał taki wynik. Można jedynie zgadywać, że chodzi tu o wykorzystanie układu DMA do przesyłania danych bez udziału jednostki centralnej. Porównanie parametrów mikrokontrolerów W tabeli 1 zamieszczono parametry wybranych rodzin mikrokontrolerów istotne z punktu widzenia układów energooszczędnych. Umieszczenie w tabeli dwóch układów z rodziny MSP430 wynika stąd, że mikrokontroler MSP430L092 jest unikalnym rozwiązaniem. Po pierwsze, jest to jeden z pierwszych dostępnych mikrokontrolerów pracujących przy napięciu zasilania poniżej 1 V. Po drugie układ jest pozbawiony standardowej pamięci programu. Ma jedynie zapisany w pamięci ROM program Bootloadera, który służy do załadowania aplikacji z zewnętrznej pamięci szeregowej EEPROM do pamięci RAM mikrokontrolera. Wykonywanie programu w pamięci RAM pozwala na zaoszczędzenie ok. 40% energii w porównaniu z programem zapisanym w pamięci FLASH. Możliwość wykonywania programu zapisanego w RAM do niedawna była dostępna tylko w mikrokontrolerach 32-bitowych, 129

Tabela 1. Parametry energetyczne wybranych mikrokontrolerów energooszczędnych Typ układu Vcc Icc (dla CPU) Kf [ma/mhz] IDS IPD STM8L101xx 8-bit (ST Micro) 1,65 3,6 V (wewnętrzny stabilizator) 550 ma (FLASH) 390 ma (RAM) 2,7 ma (FLASH) 1,6 ma (RAM) [przy fclk = 16 MHz] 150 ma/mhz [2 MHz fclk 16 MHz] 0,35 ma 0,8 ma MSP430L092 16-bit (Texas Instruments) 0,9 V 1,65 V 59 ma (RAM) 86 ma (RAM) 220 ma 300 ma 260 ma [przy fclk = 1 MHz] 510 ma 1,1 ma 11,4 ma [przy fclk = 32 MHz] 3,0 ma [przy fclk = 12 MHz] 9,0 ma [przy fclk = 50 MHz] 45 ma/mhz [1 MHz fclk 5 MHz, Vcc = 1,3V] 4,0 ma 7,1 ma 7,8 ma 9,5 ma MSP430G2xx1 16-bit (Texas Instruments) 2,2 V 3,0 V 150 ma/mhz [1 MHz fclk 8 MHz] 250 ma/mhz [1 MHz fclk 16 MHz] 0,1 ma 0,5 ma 0,1 ma 0,6 ma ATXmega16/32/64 8/16-bit (ATMEL) 1,8 V 3,0 V 250 ma/mhz [1 MHz fclk 2 MHz] 330 ma/mhz [2 MHz fclk 32 MHz] 0,1 ma 0,52 ma 0,1 ma 0,61 ma LPC1111-1114 32-bit ARM Cortex M0 (NXP) 2,0 3,6 V (wewnętrzny stabilizator) 160 ma/mhz [12 MHz fclk 50 MHz] 0,22 ma 6,0 ma obecnie pojawia się także w układach 8/16-bitowych. Na przykład STM8L101 pozwala na wykonywanie programu z pamięci FLASH lub RAM. Porównując wartości współczynnika Kf okazuje się, że dla rdzenia Cortex-M0 nie jest on wyższy, niż dla mikrokontrolerów 8/16-bitowych. Różnice w poborze prądu wynikają stąd, że rdzenie 32-bitowe zwykle taktowane są zegarem 10...60 MHz, natomiast układy 8/16-bitowe pracują przy częstotliwościach 1...16 MHz. Należy jednak pamiętać, że podane wartości prądu dotyczą wyłącznie rdzenia. Bogate wyposażenie w układy peryferyjne oraz duża pojemność pamięci mikrokontrolerów 32-bitowych powodują łączny pobór prądu większy niż dla systemów 8-bitowych. Wyjaśnienia wymagają parametry IDS oraz IPD. Prąd IDS (Deep Sleep) dotyczy najgłębszego stanu uśpienia, jaki jest dostępny w danym mikrokontrolerze, tzn. wyłączone wszystkie możliwe bloki. Prąd IPD (Power Down) dotyczy stanu, w którym możliwe jest samoczynne wybudzenie mikrokontrolera bez interwencji zewnętrznej, tzn. aktywny jest jeden układ zegara/timera. Z porównania prądów IDS i IPD wynika, że tryb pracy z zewnętrznym wybudzaniem umożliwia mniejsze zużycie energii. Jeżeli aplikacja wymaga stosowania zegara RTC, to pobór prądu przez układ zegara jest bardzo istotnym kryterium wyboru mikrokontrolera. Porównując parametry z tabeli z podanymi na początku artykułu wartościami poboru prądu z baterii, okazuje się, że większość mikrokontrolerów 8/16-bitowych poradzi sobie nawet w przypadku baterii CR2032 z 5-letnim okresem autonomii. Jeżeli pobór prądu w stanie uśpienia jest rzędu 0,1...0,8 ma, to dobierając odpowiednio czasy aktywności, można uzyskać średni pobór prądu na poziomie 4 ma. Znacznie trudniej zrealizować tak oszczędną konstrukcję na mikrokontrolerze 32-bitowym, ze względu na duży pobór prądu w stanie aktywności. Pewnym rozczarowaniem są wysokie wartości prądów w stanie uśpienia dla mikrokontrolera MSP430L092. Za to układ ten nadaje się do aplikacji, w których wymagana jest ciągła aktywność mikrokontrolera oraz zasilanie z pojedynczego ogniwa 1,5 V. Jacek Przepiórkowski R E K L A M A 130 ELEKTRONIKA PRAKTYCZNA 12/2010