Alacsonyabb energiafogyasztás az eszközök mikrokontrollereken avr - hasznos információ - avr - projektek
Alacsonyabb energiafelhasználás az AVR mikrokontrollereken
Ha önálló energiaforrásokból - az elemeket, az akkumulátorokat (és az eldugott elektródákkal ellátott almákat) tartalmazó eszközöket az akkumulátorok cseréje nélkül, az energiafogyasztás csökkentése érdekében gondoskodni kell az élettartam növeléséről. Önmagában az energiafogyasztás számos tényezőtől függ: a használt mikrokontroller típusától, a tápfeszültségtől, a kiválasztott működési frekvenciától, a konfigurált perifériától és még a környezeti hőmérséklettől is.
Az energiagazdálkodáshoz az AVR mikrokontrollereknek számos működési módjuk van, amelyek lehetővé teszik számukra, hogy jelentősen csökkentsék saját energiafogyasztásukat - alvó üzemmód és teljesítmény -
Az energiafogyasztás a kiválasztott üzemmódtól függően változik az alábbi táblázatban (1 MHz, 3V, 25 ° C):
Nyilvánvaló, hogy a helyzetet az új verziók mikrovezérlõi ellenõrzik (azok, amelyek végén a "a" index szerepel) és új modellek (atmega48 / 88/168 és hasonlók).
Most nézzük meg, hogyan kell dolgozni az alacsony energiafogyasztású módokkal.
Ebben a módban megállítja az órát, de a többi periféria működik tovább, és a mikrokontroller fog reagálni a külső megszakítások, megszakítására és UART megszakítás számláló / időzítő. Elég hasznos például, ha vár valamilyen átalakulás -, míg a külső kerülete gondolat (mint ahogy az érzékelők 18b20), hogy a mikrokontroller nem hiába evett felesleges energiát tudunk aludni alatt nyomában, és egy bizonyos ideig egy időzítőt.
A mikrokontroller alvó üzemmódba merítéséhez a készenléti parancsot használja a Bascom-AVR.
Az alvó üzemmód használata. Itt a megszakítás időzítő 4 másodperc elteltével van beállítva, amint az időzítő túlcsordul, megszakítással jár, és felébresztheti a mikrokontrollert.
$ regfile = "m8def.dat"
$ crystal = 1000000
$ sim
'konfigurálja az időzítőt megszakítások generálásához
"az időzítő megszakadása kb. 4 másodpercenként történik
Config Timer1 = Időzítő. Prescale = 64
Időzítő1 Ébredjen:
EnableInterrupts
Időzítés engedélyezése1
Start Timer1
csinál
Nyomtassa ki a "Hello" -t
Nyomtassa ki az "Alvás most"
Idle "alvás
hurok
Ébren van. időzítő megszakadt
A gazdaságos üzemmód, és valójában a mikrokontroller teljesen ki van kapcsolva. Ebben az üzemmódban az óragenerátor leáll, és a teljes periféria ki van kapcsolva, kivéve a külső megszakításkezelőt, amely a mikrokontrollert normál működésbe hozza, amikor a megszakítás megérkezik. Az üzemmód engedélyezéséhez adja ki a Powerdown parancsot.
$ regfile = "m8def.dat"
$ crystal = 1000000
$ sim
'konfigurálja a megszakítást az INT0-n
"alacsony szinten az MC lábánál
Config Int0 = alacsony szint
Int0 gombon.
EnableInterrupts
Engedélyezze az Int0 engedélyezését
csinál
Nyomtassa ki a "Hello" -t
Nyomtassa ki a "Powerdown now"
Powerdown "energiát takarít meg energiatakarékos üzemmódban
hurok
Gombot. "megszakítás érkezett
A "Start" nyomtatása után a vezérlő felébredt, és kinyomtatott egy üzenetet
Nyomtassa ki a ""
Várjon 1
Gifr = 64
Visszatérés "a fő hurokba
Válasszon bennem teljesen!
Olyan készülékeknél, ahol a mikrokontroller hosszú ideig inaktívnak kell maradnia (pl. Olyan hőmérőkben, amelyeket a legtöbb ember nem lát), egy nagyon érdekes megoldás alkalmazható külső mezőhatás tranzisztor használatával.

A lényeg az, hogy a tranzisztort a készülék tápfeszültség-áramkörébe dugták, és a mikrokontroller maga nyitja meg a program végrehajtása során. Miközben a program fut, egy magas feszültségszintet tartanak az PD0 lábán, és a mezővezérlő nyitott állapotban van, áthaladva egy áramot. A szükséges program végrehajtása után a mikrokontroller bezárja a tranzisztort, ezzel teljesen kikapcsolja az áramkört. A FET hatalmas ellenállása miatt zárt állapotban az áram nagyon kicsi lesz (sokkal kevésbé az akkumulátor önkisülési áramának).
$ regfile = "m8def.dat"
$ crystal = 1000000
Config Portd. 0 = Kimenet
Portd. 0 = 1 'adunk egy egységet a lábhoz, ezzel megnyitva a tranzisztort
Config Portc. 0 = Kimenet "és itt van egy LED
Led Alias Portc. 0
Például mi a munkánkat kacsintjuk
Led = 1
Várakozás 80
Led = 0
Várakozás 80
Led = 1
Várakozás 80
Led = 0
Portd. 0 = 0 'zárja be a tranzisztort
A készülék bekapcsolásához csak nyomja meg a gombot, a mikrokontroller újból meg fogja kapni a tápfeszültséget, ami viszont megnyitja a tranzisztort, majd megkezdi a program végrehajtását, majd ezt követően újra megszakítja saját erejét.