česky english Vítejte, dnes je sobota 20. duben 2024

Moderní mikrokontroléry nabízejí aplikacím výhodu nízkého příkonu

DPS 3/2014 | Články
Autor: Donald Schneider, Microchip Technology

Nízká spotřeba je často považována za hlavní podstatu tzv. zelených výrobků, ale přesná definice low-power produktů je mnohem složitější.

Hlavní požadavky na mikrokontrolér (MCU) s nízkým příkonem se liší nejen podle typu dané aplikace, ale také podle způsobu použití MCU v aplikaci. To lze v praxi rozdělit do tří hlavních kategorií:

  • Režim minimální spotřeby – Používá se především u bateriově napájených aplikací, například v termostatech. Podmínka minimální spotřeby energie zároveň předurčuje nejnižší úroveň výkonu a použití výhradně LCD displeje s naprosto zanedbatelnou spotřebou. Snížení spotřeby energie pak vede k delší životnosti napájecí baterie.
  • Aktivní proudový režim – Je určen pro aplikace, jakou je například elektroměr. Spotřeba energie je v tom případě závislá na okolních podnětech a během provozu se automaticky mění.
  • Časově specifické aplikace – Jedná se o systémy, které vyžadují zachování přesného data a času bez ohledu na přítomnost primárního napájecího napětí. Příkladem takové aplikace může být rovněž elektroměr při výpadku rozvodné sítě.

Požadavky dnešních aplikací jsou tak značně diverzifikované a každý konstruktér by měl dobře znát flexibilitu napájecích režimů moderních MCU.

Ještě nedávno moderní MCU nabízely pouze aktivní režim umožňující plnohodnotný provoz zařízení, případně režimy Idle a Doze. Jejich cílem bylo omezení nebo úplné zastavení běhu procesoru s částečně zachovanou funkcí integrovaných periferií. Díky tomu byl i v režimu spánku zachován omezený provoz základních funkcí, ovšem spotřeba energie klesla na minimum. Dnes jsou však na trhu dostupná MCU s pokročilou technologií podporující celou řadu nových režimů nízké spotřeby a rozšiřující flexibilitu návrhu. Díky novým technologiím je dnes možné řídit spotřebu aplikace mnohem efektivněji a zároveň již při návrhu minimalizovat i konečné výrobní náklady. V následujícím článku se blíže zaměříme na možnosti uplatnění režimů nízké spotřeby moderních MCU v různých cílových aplikacích.

Každý z následujících příkladů bude ověřen s pomocí softwarového nástroje Battery Life Estimator (BLE) a 16bitového MCU, což nám ve výsledku poskytne přesné srovnání různých napájecích režimů a přiblíží možnosti realizace daných aplikací. BLE od společnosti Microchip je bezplatným softwarovým nástrojem umožňujícím odhad životnosti napájecí baterie v dané aplikaci. Pomocí nástroje lze přesně určit, který z dostupných provozních režimů je pro naše použití nejvýhodnější. V praktických testech bude použit obvod PIC24FJ128GA310, který integruje nejen řadu nových režimů snížené spotřeby, ale i řadič LCD displeje, který je typickým zástupcem bateriově napájených aplikací.

Moderní termostaty jsou stále složitějším autonomním systémem, který musí zpracovat stále větší množství informací z více senzorů. V důsledku toho rostou požadavky i na velikost programové paměti Flash, která je mimo jiné často využívána i k ukládání kompletního uživatelského menu v několika jazycích.

Obecně platí, že pro výrobu MCU s velkou pamětí a při udržení konkurenceschopných cen je nutné využívat vyspělé technologické procesy. Moderní výrobní procesy ovšem na jednu stranu snižují provozní (aktivní) proud obvodu, ovšem na druhou stranu jsou zdrojem vyšších svodových proudů jednotlivých polovodičových tranzistorů. A právě nárůst svodových proudů je v technické specifikaci nejvíce patrný u režimů nízké spotřeby – tedy například v režimu spánku. Spotřeba celého MCU v režimu spánku se dnes pohybuje typicky v rozmezí od 3 do 5 μA, ovšem v případě aplikace termostatu je samozřejmě o něco větší z důvodu periodického obnovování segmentového LCD displeje. Dnešní MCU jsou uzpůsobeny právě pro podporu segmentových LCD displejů integrací samostatných řídicích jednotek, které jsou schopny plnohodnotného provozu i v okamžiku, kdy se zbytek obvodu nachází v režimu spánku a většina periferií je vypnuta. Celý termostat se pak v pravidelných intervalech automaticky probouzí a vstupuje do aktivního režimu, ve kterém načítá aktuální teplotu, aktualizuje zobrazení informací na displeji, případně s pomocí bistabilního relé aktivuje připojené zařízení – topení, ventilátor nebo jiný AC spotřebič. Vzhledem k tomu, že se celá aplikace z 99 % času nachází pouze v režimu spánku, je oblast spotřeby proudu MCU v režimu Sleep právě tou, kde lze s velkým přínosem zlepšit životnost napájecí baterie systému.

Pro zajištění ještě nižší spotřeby energie přišla řada výrobců mikrokontrolérů s novým režimem nízké spotřeby – tzv. hlubokým spánkem. Typická spotřeba proudu MCU v hlubokém spánku se pohybuje v rozmezí 10 až 50 nA, případně lze v obvodu zachovat funkci hodin reálného času a kalendáře (RTCC) s dodatečnou spotřebou cca 400 nA. V případě potřeby lze tak celý obvod prakticky vypnout – s výjimkou malého množství paměti, RTCC, případně Watch Dog Timeru – a snadno dosáhnout skutečně extrémně nízké spotřeby. Nevýhodou je, že režimy hlubokého spánku neumožňují provoz jiných integrovaných periferií ani zachování dat uložených v paměti RAM. Z toho plyne, že po ztrátě obsahu datové paměti je před spuštěním potřeba provést úplný restart obvodu a zavést veškerou rutinu nutnou pro obnovení funkcí programu.

Další možnou alternativu přinášejí nové režimy nízké spotřeby – jakým je režim spánku se sníženým napětím, který dovoluje zachování obsahu datové paměti RAM daného zařízení a může celkovou spotřebu obvodu snížit až na 330 nA, případně se zachováním funkce vybraných nízkopříkonových periferií. Tento režim spánku (anglicky označovaný Low-Voltage Sleep Mode) udržuje napájení paměti RAM a snižuje celkovou spotřebu proudu pomocí integrovaného regulátoru napětí. Jednoduchým snížením napětí logických obvodů a omezením aktivních periferií MCU lze typickou spotřebu obvodu ve spánku kolem 3,7 μA stáhnout až na uvedených 330 nA. Přitom lze stále zachovat plnou funkci vybraných periferií, mezi kterými jsou obvykle budič LCD displeje, časovače či obvod RTCC, které jsou navrženy s ohledem na minimální přídavný proud. Mezi další výhody uvedeného režimu spánku se sníženým napětím patří i rychlost probuzení obvodu, která se zkracuje na méně než polovinu času srovnatelného s režimem hlubokého spánku. Obvod může ihned po probuzení pokračovat další instrukcí řídicího programu a nemusí začínat úplnou restartovací sekvencí, obvykle vyžadovanou k probuzení z hlubokého spánku.

Hlavní okno softwarového nástroje BLE (viz obr. 1) nabízí výběr daného typu MCU, jeho provozního napětí, kapacity baterie i zvolených provozních režimů. Výsledkem simulace je model termostatu s odhadovanou teoretickou životností až 11 let a 88 dnů.

Obr. 1  Softwarový nástroj Battery Life Estimator

Obr. 1  Softwarový nástroj Battery Life Estimator

Softwarový nástroj BLE umožňuje definovat dobu, kterou obvod stráví v každém jednotlivém provozním režimu, a tedy i kolik energie obvod v každém režimu spotřebuje. Na obr. 1 je hlavní okno BLE s možností nastavení základních parametrů systému a výsledným odhadem celkové životnosti i průměrné spotřeby obvodu. V prvním kroku je třeba vybrat typ MCU a provozní napětí systému. Díky tomu si aplikace může z dostupných technických specifikací získat příslušné parametry. Následně zvolíme typ napájecí baterie, v našem případě se jedná o dvě alkalické baterie typu AAA. Rovněž můžeme definovat předpokládané provozní napětí a teplotu systému, díky čemuž lze získat přesnější specifikace pro použití v daném modelu. A konečně musíme definovat i jednotlivé provozní režimy, které budou v systému použity. V případě našeho termostatu jsou pouze dva.

Jako model času, po který je termostat neaktivní a pracuje pouze řízení LCD displeje, je vytvořen provozní režim s názvem „Display LCD“. Zde MCU využívá režim spánku se sníženým napětím jako možnost, jak lze dosáhnout nejnižší spotřeby, a přitom zachovat v provozu vybrané periferie. V BLE máme tento režim definován na dobu 29,5 s jako díl 30s provozního cyklu, který jsme použili k modelování životnosti baterie. Druhý provozní režim zastupuje aktivní režim MCU, při kterém dochází k aktualizaci teplot, informací na LCD či komunikaci s jednotkami HVAC.

Na obr. 2 je uvedeno přesné nastavení režimu spánku s nízkým napětím a nastavení aktivních periferií v nástroji BLE – okno Add/Modify mode. Konstruktér zde může snadno nastavit dobu, po kterou je uvedený režim aktivní, v našem případě tedy 29,5 sekundy. Pole Additional System Current je určeno pro zadání případného odhadovaného odběru proudu okolních obvodů, které obklopují MCU. V našem případě byla přidána spotřeba proudu 4 μA reprezentující proud odebíraný LCD displejem a další 1μA reprezentující proud interních LCD rezistorů. Dále je zvolen provozní režim MCU, v tomto případě Low-Voltage Sleep režim, stejně jako seznam aktivních periferií. Chceme-li si zajistit přesný model daného systému, musíme označit moduly LCD Drive, BOR, WDT a RTCC. Celková spotřeba proudu samotného MCU je v našem případě pouhých 1,88 μA. K té se dále přidává zadaný proud ostatních obvodů v hodnotě 5 μA. Spotřeba celého systému v okamžiku, kdy se MCU nachází v režimu spánku,je pak 6,88 μA.

Obr. 2  Editace provozního režimu v Battery Life Estimator

Obr. 2  Editace provozního režimu v Battery Life Estimator

Jak je vidět na obr. 2, okno editace provozního režimu v BLE mimo jiné umožňuje snadné pojmenování a zároveň přesné nastavení základních podmínek každého z použitých provozních režimů.

Na hlavním okně aplikace BLE je pak vidět průměrná spotřeba 6,88 μA v okamžiku, kdy se přístroj nachází v režimu spánku se sníženým napětím. Průměrná spotřeba proudu v aktivním režimu se naopak pohybuje kolem 327 μA. Jelikož se však zařízení 99 % provozního času nachází v režimu spánku, je celková průměrná spotřeba proudu menší než 6,9 μA. Odhadovaná životnost napájecí baterie je tedy téměř 12 let, případně minimálně 5 let, v závislosti na životnosti samotné baterie. Pokud bychom v MCU použili klasický režim spánku (namísto režimu spánku se sníženým napětím), stoupne průměrná spotřeba proudu na cca 10,5 μA a životnost napájecí baterie klesne na tři roky (viz obr. 3).

Obr. 3  Softwarový nástroj Battery Life Estimator

Obr. 3  Softwarový nástroj Battery Life Estimator

Na obr. 3 je vidět simulace životnosti napájecí baterie v nástroji BLE při použití standardního režimu spánku. Průměrná spotřeba proudu stoupla na téměř dvojnásobek a životnost baterie klesla zhruba na tři roky.

Zcela na opačné straně problému však stojí MCU systém, který většinu svého času tráví v aktivním režimu. Takovým typickým příkladem mohou být měřiče spotřeby elektrické energie. Dnešní elektroměry tráví veškerý svůj provozní čas v jednom ze dvou stavů. Pokud je k dispozici elektrická energie, je aktivní normální provozní režim. V tomto stavu je MCU plně aktivní a neustále měří vstupní veličiny, jako je napětí a proud, z nichž následně vypočítává aktuální spotřebu. Dále bývají součástí obvody pro monitorování potenciální nedovolené manipulace, řízení LCD displeje a případně i komunikace s dohledovou infrastrukturou.

Pokud je elektroměr v provozu, mohlo by se zdát, že má k dispozici prakticky neomezené množství energie. Ve skutečnosti je však napájen z elektrické rozvodné sítě – ze sítě koncového zákazníka. Dodavatelská společnost pak může disponovat i několika miliony zákazníků a v součtu se i malý příkon může projevit poměrně velkou ztrátou elektrické energie. V rámci standardu IEC tak většina dnešních elektroměrů musí vystačit s vlastním příkonem do 10 VA. Pokud vezmeme v úvahu možné varianty rozvodných sítí, výrobní tolerance součástek i systémové konstrukční rezervy, dostaneme se na maximální proud pro aplikaci cca 10 mA v případě použití kapacitního napájení.

Paradoxem je, že celá řada dnešních elektroměrů základní řady využívá 8bitové MCU, které v aktivním stavu a při maximální provozní frekvenci spotřebují více než 10 mA. Abychom se tak i s další elektronikou dostali pod maximální hranici, jsou konstruktéři často přinuceni použít při provozu MCU nižší frekvenci. Naproti tomu však mnoho z dnešních 16bitových MCU využívá pokročilých technologií a konstrukčních vlastností, které udržují typickou provozní spotřebu nižší než 150 μA/MHz, a tak i při plném výkonu 16 MIPS dosahuje jejich spotřeba maximálně 6,9 mA. Dalším snížením proudu, například právě omezením pracovní frekvence, může konstruktér získat dostatečnou rezervu pro další funkce, a přitom se stále udržet v přidělené výkonové hladině.

Elektroměry jsou sice většinu svého času v aktivním provozním režimu, i ony jsou však příkladem aplikace, která využívá některého z nízkopříkonových režimů – funkce Vbat. Jedná se o vyhrazený vývod mikrokontroléru určený pro připojení záložního napájecího zdroje, jako je například malá lithiová baterie nebo tzv. superkondenzátor. Pokud dojde k selhání primárního zdroje energie pro systém, například vlivem výpadku rozvodné sítě, přejde napájení pro RTCC automaticky na záložní pin Vbat. Obvod RTCC je ve wattmetru stále aktivní i při výpadku napájení a může zároveň poskytnout údaje pro úpravu fakturované částky. Napájení z pinu Vbat, tedy provoz pouze obvodu RTCC, může při použití lithiové baterie vydržet i desítky let, což poskytuje téměř neomezený napájecí zdroj záložního provozu. Použití funkce Vbat s RTCC není přitom nijak závislé na zbylém systému měření výkonu. Podobných aplikací je dnes skutečně mnoho, včetně například i výše uvedených termostatů, a obvody RTCC jsou díky své minimální spotřebě předurčeny k zachování informace o reálném čase i při dlouhém výpadku napájecího napětí či výměně baterie. Pin Vbat ve spojení s kondenzátorem nebo malou lithiovou baterií je dobrým řešením na cestě k úplnému odstranění otravné blikající kontrolky indikující výpadek napájení a ztrátu uloženého nastavení.

Vývoj moderních aplikací a tlak na výrobce MCU vedl ke vzniku flexibilníchMCU s propracovanou správou napájení. Technologické pokroky a konstrukční techniky zároveň umožnily vývoj 16bitových mikrokontrolérů s aktivní spotřebou menší než 150 μA/MHz. Přidání vysoké flexibility do správy napájení dalo vzniknout řadě zcela nových provozních režimů s velmi nízkou spotřebou energie, jako je například režim spánku se sníženým napětím či vyhrazený pin Vbat, a umožnilo nasazení univerzálních MCU v širším spektru aplikací. Díky tomu mají dnes konstruktéři přístup k výkonným a flexibilním mikrokontrolérům, které umožní návrh energeticky nenáročných a zároveň uživatelsky přívětivých aplikací.