- Tehnike uštede energije za mikrokontrolere
- 1. Načini mirovanja
- 2. Dinamička modifikacija frekvencije procesora
- 3. Struktura firmvera upravljača prekidima
- 4. Firmware optimiziran za napajanje
- Zaključak
Baš kao što je plin (benzin / dizel) važan za kretanje bicikala, kamiona i automobila (da, isključujući Tesle!), Tako je i električna snaga za većinu elektroničkih aplikacija i više, za ugrađene sustave koji su obično baterija (ograničena energija), od običnih mobilnih telefona do pametnih kućnih uređaja, među ostalim.
Ograničena priroda napajanja baterija podrazumijeva potrebu da se osigura stupanj potrošnje energije ovih uređaja kako bi se potaknulo njihovo usvajanje i upotrebu. Pogotovo kod uređaja temeljenih na IoT-u gdje se može očekivati da će uređaj trajati 8 - 10 godina s jednim punjenjem bez zamjene baterije.
Ovi su trendovi doveli do primjene razmatranja male snage u dizajnu ugrađenih sustava i tijekom godina dizajneri, inženjeri i proizvođači u nekoliko su trenutaka razvili nekoliko inteligentnih načina učinkovitog upravljanja snagom koju proizvodi troše kako bi osigurali da dulje traju. jedno punjenje. Mnogo se ovih tehnika usredotočuje na mikrokontroler, koji je srce većine uređaja. U današnjem ćemo članku istražiti neke od ovih tehnika i kako se one mogu koristiti za smanjivanje potrošnje energije u mikrokontrolerima. Iako mikroprocesor troši manje energije, ali se može koristiti svugdje na mikrokontroleru, slijedite vezu da biste saznali kako se mikroprocesor razlikuje od mikrokontrolera.
Tehnike uštede energije za mikrokontrolere
1. Načini mirovanja
Načini mirovanja (koji se obično nazivaju načini male snage) vjerojatno su najpopularnija tehnika za smanjenje potrošnje energije u mikrokontrolerima. Oni obično uključuju onemogućavanje određenih sklopova ili satova koji pokreću određene periferne uređaje mikrokontrolera.
Ovisno o arhitekturi i proizvođaču, mikrokontroleri obično imaju različite vrste načina mirovanja, pri čemu svaki način rada može onemogućiti više internih sklopova ili perifernih uređaja u odnosu na drugi. Načini mirovanja obično se kreću od dubokog spavanja ili isključenja do načina rada u praznom hodu i drijemanju.
Neki od dostupnih načina rada objašnjeni su u nastavku. Treba imati na umu da se karakteristike, kao i naziv ovih načina, mogu razlikovati od proizvođača do proizvođača.

ja Način mirovanja / mirovanja
Ovo je obično najjednostavniji način rada s malom potrošnjom za dizajnere. Ovaj način omogućuje mikrokontroleru da se vrati u puni rad vrlo brzo. Stoga nije najbolji način rada, ako ciklus napajanja uređaja zahtijeva da vrlo često napušta način mirovanja, jer se povlači velika količina energije, kada mikrokontroler izlazi iz stanja mirovanja. Povratak u aktivni način rada iz stanja čekanja obično se temelji na prekidima. Ovaj način rada implementiran je na mikrokontroleru isključivanjem stabla sata koje pokreće CPU sklop dok je primarni visokofrekventni takt MCU neprekidno aktivan. Uz to, CPU može nastaviti s radom odmah kada se aktivira okidač za buđenje. Vrata sata često su korištena za odsijecanje signala u načinima male snage za mikrokontrolere i ovaj način učinkovito usmjerava signale sata kroz CPU.
ii. Stanje čekanja
Način mirovanja je još jedan način rada male snage, koji je dizajnerima lako implementirati. Vrlo je sličan načinu mirovanja / mirovanja, jer također uključuje upotrebu takta na CPU-u, ali jedna od glavnih razlika je što omogućuje promjenu sadržaja RAM-a, što obično nije slučaj u načinu mirovanja / mirovanja. U načinu mirovanja, brze periferne jedinice poput DMA (izravan pristup memoriji), serijski portovi, ADC i AES periferne jedinice neprestano rade kako bi se osiguralo da budu dostupne odmah nakon što se CPU probudi. Za određene MCU-ove RAM se također održava aktivnim i DMA mu može pristupiti omogućujući pohranjivanje i primanje podataka bez intervencije CPU-a. Potrošnja energije u ovom načinu rada može biti samo 50uA / MHZ za mikrokontrolere male snage.
iii. Način dubokog spavanja
Način dubokog mirovanja, obično uključuje onemogućavanje visokofrekventnih satova i drugih sklopova u mikrokontroleru, ostavljajući samo taktove krugove koji se koriste za pogon kritičnih elemenata poput tajmera čuvara, otkrivanje smeđeg napajanja i sklop za ponovno pokretanje. Ostali MCU mogu mu dodati druge elemente kako bi poboljšali ukupnu učinkovitost. Potrošnja energije u ovom načinu rada može biti samo 1uA, ovisno o određenom MCU.
iv. Stop / OFF način rada
Pojedini mikrokontroleri imaju različite varijacije ovog dodatnog načina. U ovom načinu rada i visoki i niski oscilatori obično su onemogućeni ostavljajući uključene samo neke konfiguracijske registre i ostale kritične elemente.
Značajke svih gore navedenih načina mirovanja razlikuju se od MCU do MCU, ali općenito je pravilo; što je dublje spavanje, to je više perifernih uređaja onemogućeno tijekom spavanja i manja je količina potrošene energije, iako to obično također znači; veća je količina energije koja se troši za vraćanje sustava natrag. Stoga je na dizajneru da razmotri ovu varijaciju i odabere pravi MCU za zadatak bez kompromisa koji utječu na specifikaciju sustava.
2. Dinamička modifikacija frekvencije procesora
Ovo je još jedna široko popularna tehnika za učinkovito smanjenje količine energije koju mikrokontroler troši. To je daleko najstarija tehnika i malo je složenija od načina mirovanja. Uključuje firmware koji dinamički pokreće procesorski takt, izmjenjujući visoku i nisku frekvenciju jer je odnos između frekvencije procesora i količine potrošene energije linearan (kao što je prikazano u nastavku).
Provedba ove tehnike obično slijedi ovaj obrazac; kada je sustav u stanju mirovanja, firmware postavlja frekvenciju takta na malu brzinu što omogućuje uređaju da uštedi malo energije, a kada sustav treba izvršiti teška izračunavanja, brzina takta se vraća natrag.
Postoje kontraproduktivni scenariji za modificiranje frekvencije procesora koji su obično rezultat loše razvijenog firmvera. Takvi scenariji nastaju kada se frekvencija takta održava na niskoj razini dok sustav izvodi teška izračunavanja. Niska frekvencija u ovom scenariju znači da će sustavu trebati više vremena nego što je potrebno za izvršavanje postavljenog zadatka i na taj će način kumulativno trošiti istu količinu energije koju su dizajneri pokušavali uštedjeti. Stoga se mora biti posebno oprezan pri primjeni ove tehnike u vremenski kritičnim aplikacijama.

3. Struktura firmvera upravljača prekidima
Ovo je jedna od najekstremnijih tehnika upravljanja napajanjem u mikrokontrolerima. Omogućeno je s nekoliko mikrokontrolera poput ARM cortex-M jezgri koje imaju bitak stanja mirovanja na izlazu u registru SCR. Ovaj bit mikrokontroleru omogućuje spavanje nakon pokretanja rutine prekida. Iako postoji ograničenje broja aplikacija koje će se nesmetano izvoditi na ovaj način, ovo bi mogla biti vrlo korisna tehnika za senzore polja i druge dugoročne aplikacije temeljene na prikupljanju podataka.
Po mom mišljenju, većina ostalih tehnika su varijacije već gore spomenutih. Na primjer, tehnika selektivnog perifernog takta u osnovi je varijacija načina mirovanja u kojima dizajner odabire periferne uređaje za uključivanje ili isključivanje. Ova tehnika zahtijeva duboko poznavanje ciljanog mikrokontrolera i možda neće biti prilagođena početnicima.
4. Firmware optimiziran za napajanje
Jedan od najboljih načina smanjenja količine energije koju mikrokontroler troši je pisanje učinkovitog i dobro optimiziranog firmvera. To izravno utječe na količinu posla koji CPU izvrši po vremenu, a to produženjem doprinosi količini energije koju mikrokontroler troši. Tijekom pisanja firmware-a treba uložiti napore kako bi se osigurala smanjena veličina koda i ciklusi jer je svaka izvršena nepotrebna uputa dio energije pohranjene u bateriji koja se troši. Ispod su neki uobičajeni savjeti na bazi C za optimizirani razvoj firmvera;
- Upotrijebite klasu "Static Const" što je više moguće da biste spriječili runt kopiranje nizova, struktura itd. Koje troše energiju.
- Koristite pokazivače. Oni su vjerojatno najteži dio C jezika za razumijevanje za početnike, ali su najbolji za učinkovit pristup strukturama i sindikatima.
- Izbjegavajte Modulo!
- Lokalne varijable nad globalnim varijablama gdje je to moguće. Lokalne varijable sadržane su u CPU-u, dok su globalne varijable pohranjene u RAM-u, CPU brže pristupa lokalnim varijablama.
- Nepotpisane vrste podataka najbolji su vam prijatelji kad god je to moguće.
- Usvojite "odbrojavanje" za petlje gdje je to moguće.
- Umjesto bitnih polja za nepotpisane cijele brojeve, upotrijebite bitne maske.
Pristupi smanjenju količine energije koju mikrokontroler troši nisu ograničeni na gore spomenute softverske pristupe, postoje hardverski pristupi poput tehnike upravljanja naponom jezgre, ali da bismo zadržali duljinu ovog posta u razumnom rasponu, uštedjet ćemo njih još jedan dan.
Zaključak
Implementacija proizvoda male snage polazi od izbora mikrokontrolera i može biti prilično zbunjujuće kada pokušate razmotriti različite mogućnosti dostupne na tržištu. Tijekom skeniranja, tablica podataka može dobro raditi za postizanje općih performansi MCU-ova, ali za aplikacije kritične za energiju to može biti vrlo skup pristup. Da bi razumjeli istinske karakteristike snage mikrokontrolera, programeri moraju uzeti u obzir električne specifikacije i funkcionalnosti male snage dostupne mikrokontroleru. Dizajneri ne bi trebali biti zabrinuti samo zbog trenutne potrošnje svakog od načina napajanja koji se oglašavaju u tablici podataka MCU-a, već bi trebali pogledati vrijeme buđenja, izvore buđenja i periferne uređaje koji su dostupni za upotrebu u režimima male snage.
Važno je provjeriti značajke mikrokontrolera koji planirate koristiti da biste utvrdili mogućnosti koje imate za implementaciju male snage. Mikrokontroleri su bili jedan od najvećih korisnika tehnološkog napretka, a sada postoji nekoliko mikrokontrolera ultra male snage koji osiguravaju da imate resurse koji će vam pomoći da ostanete u okviru svog proračuna energije. Neki od njih također nude nekoliko softverskih alata za analizu snage koje možete iskoristiti za učinkovit dizajn. Osobni favorit je linija mikrokontrolera MSP430 tvrtke Texas Instrument.
