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.

Alacsonyabb energiafogyasztás az eszközök mikrokontrollereken avr - hasznos információ - avr - projektek

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.

Kapcsolódó cikkek