Jste zde

Vystačíme s energií i po probuzení?

atmel_logo.png

Dlouhodobé spánkové režimy se výraznou měrou podepisují pod nízkou energetickou spotřebou zařízení, zvířat a také lidí. I ten nejlenivější medvěd však musí na jaře z brlohu ven. Jak aktivně fungovat a nemrhat přitom drahocennou energií?

Výkonovou spotřebu aktivně provozované jednotky MCU můžeme v základních obrysech určit z následujícího vztahu

 

Rovnice

 

kde

  • Ftoggle představuje taktovací kmitočet
  • Cload zahrnuje kapacitní zátěž
  • VDD pochopitelně zohledňuje napájecí napětí

Ano, budou to zejména tyto tři fyzikální veličiny, které se rády postarají o celkový úhrn aktivně spotřebované energie. Chceme-li být úplně přesní, můžeme zde ještě zahrnout přírůstek vytvořený svodovými proudy ve spánkovém režimu. Jak již ukázal předchozí článek „Topit nebo netopit, to je oč tu běží“, jsou to právě nejrůznější módy snížené spotřeby, ve kterých se mikrokontroléry mohou nacházet po většinu svého života. Nikoho tedy nepřekvapí, že proudový odběr v těchto režimech může i tak vytvářet největší složku celé výkonové spotřeby.

Navzdory výše uvedenému se však od MCU vedle „klidu na lůžku“ obvykle očekává i nějaká ta aktivní činnost. Jak ji efektivně vykonávat a neplýtvat přitom drahou energií?

Taktovací kmitočet vs počet hradel

Atmel Logické obvody vystavěné na technologii CMOS by teoreticky mohly spotřebovávat elektrickou energii pouze v případě změn hodinového kmitočtu a úrovní logických signálů z „0“ na „1“ a opačně. Pokud tedy budou všechny signály neměnné (např. v Power Down módu), obvodem proteče pouze unikající svodový proud (Leakage Current), který může být ještě navýšený o složku potřebnou k aktivaci nebo zakázání případných analogových modulů.

Úspěch Low Power aplikací závisí na pečlivé analýze velikosti taktovací frekvence, tj. četnosti změn za jednotku času, a také maximálním snížení počtu jednotlivých hradel, která budou muset pro vykonání žádané úlohy překlápět svůj stav.

Hradlování hodin (Clock Gating)

Tato jednoduchá metoda dokáže účinně omezit nepotřebnou taktovací frekvenci. Jak ukazuje ilustrace, Clock Gating může jediným hradlem povolit nebo také zakázat hodinový signál, který následně nebude na svém výstupu vykazovat změny. Všechny okruhy taktované tímto signálem pak zcela nekompromisně „zamrzají“. Protože není přítomna jediná změna, elektrická energie se za hradlem prakticky nespotřebovává.

 

Hradlovani

 

Mikrokontroléry AVR zahrnují tři základní úrovně hradlování:

 

Hradlovani_01

 

1. Spánkový režim (Sleep Functionality)

První úroveň je reprezentována Sleep módy, které tvoří nedílnou součást mikrokontrolérů AVR. V těchto režimech nízké spotřeby dochází k hradlování hodinového kmitočtu jednotlivým funkčním skupinám, čímž lze jednoduše dosáhnout rozmanitých úrovní spánku v závislosti na počtu taktovaných funkčních bloků.

Idle mód (Idle Mode) hradluje taktování pro oblast CPU a Flash, zatímco periferie a přerušení běží dále.

Režim potlačení šumu A/D převodníku (ADC Noise Reduction Mode) umožňuje ADC pracovat v relativně nezarušeném prostředí, zatímco dochází k hradlování většiny periferií, včetně CPU a Flash.

Power Down mód zastavuje distribuci hodin všem oblastem implementovaným v mikrokontroléru AVR s vyjímkou povolené asynchronní operace. V režimu Power Down nepracuje externí oscilátor.

Režim Power Save se od předchozího módu Power Down liší pouze asynchronním timerem, který může pracovat, má-li to dovoleno.

V režimu Standby (Standby Mode) opět vycházíme z módu Power Down a necháváme běžet hlavní oscilátor.

Konečně rozšířený Stadby mód (Extended Standby Mode) bude vycházet z režimu Power Save s tím, že funkce hlavního oscilátoru opět zůstane zachována.

Schopnost zareagovat na probuzení z režimu spánku trvá pouhých šest hodinových cyklů, přičemž výkonová spotřeba během probouzení (Wake-up) je menší než v režimu Idle. V praxi to pak znamená, že se AVR může „probrat“ ze Sleep módu a opět do něj „upadnout“ při zachování extrémně nízké proudové spotřeby. Doba strávená probouzením a následným pobytem v aktivním režimu přitom může být velmi krátká.

2. Registry nízkého příkonu (Power Reduction Registers)

Celou řadu periferních modulů využíváme pouze krátký časový okamžik, případně je neupotřebíme vůbec. Power Reduction registry (PRR) proto obsahují řídicí bity, kterými dokážou zakázat nepoužívané periferie. Nevyužité moduly tak mají hradlován veškerý přísun taktovacího kmitočtu. Tento způsob se v nízkopříkonové praxi osvědčil jako mnohem účinnější ve srovnání s pouhým zakázáním příslušným bitem Enable.

Řízení Power Reduction registrů zajišťuje software, kterým lze periferie v libovolném okamžiku aktivovat nebo také odstavit. Zakáže-li registr periferní modul, dochází k „zamrazení“ jeho aktuálního stavu a následnému znepřístupnění všech I/O registrů. Po opětovné aktivaci tak modul zcela logicky vychází ze stejného stavu, ve kterém se nacházel před deaktivací. Vyřazení jediného periferního modulu tak může uspořit 5 až 10 % celkové výkonové spotřeby v aktivním módu, případně 10 až 20 % celkového příkonu v režimu Idle.

3. Automatické hradlování (Automatic Clock Gating)

Pokud v návrhu nevyužíváme hradlování hodin, můžeme obnovovat a aktualizovat stavy všech registrů s každým hodinovým cyklem. Myšlenka je to sice pěkná, ale pokud se nekoná žádná změna, potvrzujeme pouze stále platný předchozí stav, přičemž za tento přepych platíme určitým navýšením celkové spotřeby. Automatické hradlování hodinového kmitočtu, někdy také nazývané Multi-Level Clock Gating, povoluje hodiny pouze a jen v případě potřeby aktualizovat nový stav při jeho změně. Takové řešení se jeví, ve srovnání s neustálou obnovou jediného a téhož platného stavu, logičtější a zejména energeticky citlivější.

 

Automaticke_hradlovani

 

1fázové hodiny (One-Phase Clock System)

V mnoha kontrolérech se významné množství celkové výkonové spotřeby „promrhá“ na distribuci hodin napříč celým čipem. Struktura mikrokontrolérů AVR proto vychází z 1fázového hodinového systému, který z principu sobě vlastního snižuje proudový odběr pod běžnou úroveň systému 2fázového.

Metodika vývoje s ohledem na velikost kapacitní zátěže

Vývoj Low Power integrovaných obvodů AVR si zakládá na pečlivé syntéze, návrhu i finálním ověření za výrazného přispění nejnovějších SW nástrojů.

Hold Time buffery

Hold Time buffery mohou sehrát významnou úlohu na cestě digitálního signálu mezi jednotlivými registry, kde se od nich očekává kompenzace různých odchylek větvícího se hodinového signálu. Z principu fungování kapacitní zátěže však zase spotřebovávají další elektrickou energii. Způsob implementace případných Hold Time bufferů v AVR kontrolérech je tedy optimalizován tak, aby se dosáhlo jejich maximálně minimálního množství (tj. co nejméně).

Informace o četnosti změn (Toggle Information)

Tato překlápěcí analýza se zaměřuje na simulace konkrétního návrhu s cílem najít místa s největším počtem změn logických úrovní. Výsledná informace se pak s výhodou použije při syntéze, která se v prvé řadě zaměří právě na optimalizaci zmíněných problémových míst, která by jinak vykazovala neúměrně vyšší proudovou spotřebu.

Low Power procesy a knihovny

Společnost Atmel používá při výrobě mikrokontrolérů AVR patentovaných procesů, které zajišťují nejnižší možný svodový proud. Knihovny pro konečný návrh pak budou zejména obsahovat buňky a jednotky v komplexním provedení. Především kratší vzdálenosti mezi jednotlivými mikroskopickými členy se ve výsledku postarají o výrazně nižší kapacitní zátěže. Optimalizovaná struktura s menším počtem tranzistorů také nebude ke své činnosti potřebovat neúměrné množství změn jednotlivých diskrétních stavů. Na obrázku lze názorně vysledovat základní rozdíl mezi komplexní a obyčejnou polovodičovou jednotkou.

 

Komplexni_jednotka

 

Analogové moduly s přívlastkem

Analogové moduly musí řešit těžké dilema v podobě kompromisu mezi výkonovou spotřebou a

  • robustností (česky také někdy blbuvzdorností)
  • přesností
  • rychlostí
  • dobou náběhu

Ve srovnání s číslicovou technikou zde potřebujeme zavádět odlišné postupy k zajištění solidního výkonu a rozumně nízké proudové spotřeby. Protože chtějí AVR MCU dosahovat vysoké kvality v použitých analogových periferiích, vydaly se opačnou cestou narůstajícího výkonového zatížení. Přesto však, nebo právě proto, kdykoli je to jen trochu možné, dochází k deaktivaci všech nepoužívaných analogových modulů. I takto odvážně lze snižovat příkon bez obětování přesnosti nebo výkonu a ještě k tomu modul opatřit nálepkou Ultra Low Power.

Vzorkování paměti (Flash Sampling)

Běžný návrh systému s Flash umožňuje v aktivním režimu trvalé zpřístupnění paměťového místa. Při nižších taktovacích frekvencích se však dostáváme do situace, kdy bude doba čtení z paměti kratší, než samotná perioda hodin. Proč toho tedy nevyužít a opět citelně nesnížit výkonovou ztrátu? Pokud bude taktování běžet na kmitočtu několika MHz a méně, použijí kontroléry AVR techniku zvanou Flash Sampling, která zmobilizuje Flash jen na nezbytně dlouhou dobu, která však s přehledem postačí k práci s obsahem paměťového místa. Bezprostředně poté se paměť znovu deaktivuje, čímž celá aplikace v průměru uspoří další cennou energii. Zmíněný postup lze provozovat v celém rozsahu napájecího napětí od 1.8 až do 5.5 V.

 

Vzorkovani_pameti

 

1.8 V pro všechny (True 1.8 V Operation)

Technologie využívané v AVR MCU podporují celý napěťový rozsah 1.8 až 5.5 V, přičemž 1.8 V znamená skutečných 1.8 V. V praxi tak můžeme všechny analogové moduly včetně pamětí Flash, EEPROM a RAM napájet z takto nízkého napětí, čímž výrazně snížíme celkovou výkonovou ztrátu. Široký napájecí rozsah navíc umožní zužitkovat podstatnou část energie napájecích článků při jejich postupném vybíjení.

DIDR Registr zákazu digitálních vstupů (Dedicated Input Disable Register)

AVR kontroléry dokážou sdružovat vstupy A/D převodníků spolu s jinými logickými vstupy a výstupy do jediného a téhož fyzického vývodu. V nepatrném pouzdru s několika málo piny se tak může ukrývat poměrně silná výbava. Za vše pěkné se ale něčím platí a nemusí to být jen v elektronice a pouze penězi. Skenování celé řady pinů z principu zatěžuje zvýšenými nároky na proudový odběr.

Digitální vstup je v základním náhledu vystavěn ze dvou tranzistorů, vytvářejících vstupní buffer. Připojíme-li na takový vstup platnou logickou úroveň high nebo low, nemusí ještě docházet k zásadním problémům. Horší situace však nastane v případě, přivedeme-li napětí okolo ½ Vcc, které začne generovat unikající svodový proud v důsledku pozvolného otevírání tranzistorů vstupního obvodu. Protože tedy analogová napěťová úroveň na vstupech ADc vyrábí statickou výkonovou spotřebu na I/O pinech, je s ohledem na Low Power aplikace nezbytné, aby čip uměl zakázat nevyužitý digitální vstup.

Automatické vyřazení z činnosti v rámci multiplexu A/D převodníku není možné, protože multiplexer bývá ovládán firmwarem mikrokontroléru. Z tohoto důvodu přinášejí obvody AVR řešení v podobě DIDR (Dedicated Input Disable Register) s jedním bitem Disable pro každý analogový vstup. Digitální buffery jsou navíc automaticky zakazovány při každém vstupu mikrokontroléru do Sleep módu. Výjimku tvoří pouze takový pin, který svým vstupním signálem dokáže probudit MCU z režimu spánku. Nasazení a využití DIDR registrů tedy efektivně snižuje celkové výkonové zatížení.

Závěr:

Přinutit zařízení aby vykonávalo požadovanou funkci a přitom odebíralo co nejméně energie rozhodně nepatří k nejjednodušším úkolům vývojáře či jejich celého týmu. Články se pokusily vymezit základní způsoby aktivní i pasivní úspory elektrického proudu. Jsme-li tedy přesvědčeni o správnosti jednotlivých metod, zbývá už jen poslední věc: Přesvědčit o tom i naše polovodivé „strávníky“.

Použitá literatura:

  • [1]  http://www.atmel.com/dyn/resources/prod_documents/doc7903.pdf
  • [2]  http://www.atmel.com/

AtmelDownload a odkazy:

Hodnocení článku: