Tips för strömsnål µC applikation
-
- Inlägg: 401
- Blev medlem: 6 maj 2004, 12:22:36
- Ort: Stockholm
Tips för strömsnål µC applikation
Tänkte jag skulle dela med mig av ett tips för applikationer med mycket höga krav på låg strömförbrukning som jag nyss använt mig av.
I power-down läge drar ex. AVR <1uA. Man kan låta den vakna från sleep-läget genom att ställa INT0 ingången till low-level interrupt och låta en kondensator ladda ur. När den sjunkit tillräckligt lågt så att interrupten slår till gör man det man ska. Kollar I/O och om något ska göras. Om inte, eller när det är klart, så ställer man INT0 som en utgång och laddar upp kondensatorn fullt. Sedan sätter man INT0 som en ingång igen och lägger µC i sleepmode igen. På så sätt kan man t.ex. varje sekund väcka µC från sin power-down mode och utföra lite jobb på några µs och sedan somna igen. Strömförbrukningen blir då mycket låg med en sådan duty-cycle.
I power-down läge drar ex. AVR <1uA. Man kan låta den vakna från sleep-läget genom att ställa INT0 ingången till low-level interrupt och låta en kondensator ladda ur. När den sjunkit tillräckligt lågt så att interrupten slår till gör man det man ska. Kollar I/O och om något ska göras. Om inte, eller när det är klart, så ställer man INT0 som en utgång och laddar upp kondensatorn fullt. Sedan sätter man INT0 som en ingång igen och lägger µC i sleepmode igen. På så sätt kan man t.ex. varje sekund väcka µC från sin power-down mode och utföra lite jobb på några µs och sedan somna igen. Strömförbrukningen blir då mycket låg med en sådan duty-cycle.
- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
Re: Tips för strömsnål µC applikation
Ahaaaa.....! Klyftigt som en apelsin!Magnus Pihl skrev:Tänkte jag skulle dela med mig av ett tips för applikationer med mycket höga krav på låg strömförbrukning som jag nyss använt mig av..


Om inte jag är ute och cyklar (som vanligt) så ska man väl ändå kunna få den att väcka sig själv med hjälp av någon timer eller så? När det gäller x86 finns det en funktion som heter hlt (halt) som fryser processorn, grejen är den att timers/interrupts och liknande drar igång den igen, därför måste man stoppa dessa innan hlt körs. Vad jag vet ska man kunna göra något liknande på AVR. Får väl lusläsa databladen i helgen 

chille:
Från databladet till 2313:
The Idle mode stops the CPU while allowing the SRAM, Timer/Counters, SPI port and interrupt system to continue functioning. The Power-down mode saves the register contents but freezes the Oscillator, disabling all other chip functions until the next external interrupt or Hardware Reset.
"Power-down"-läget drar mycket mindre ström än "idle"-läge. Så var det med det.
Från databladet till 2313:
The Idle mode stops the CPU while allowing the SRAM, Timer/Counters, SPI port and interrupt system to continue functioning. The Power-down mode saves the register contents but freezes the Oscillator, disabling all other chip functions until the next external interrupt or Hardware Reset.
"Power-down"-läget drar mycket mindre ström än "idle"-läge. Så var det med det.

chille:
Att väcka AVR:en via en timer-interrupt som du beskriver fungerar i "idle mode", men inte i det ännu strömsnålare "power-down mode". Läs mitt citat en gång till så ser du.
Såg precis att Elfa har fått in ATtiny2313. Jippi, den har iaf jag väntat lite på. Trodde inte att den hade börjat säljas än. Den är som gamla AT90S2313, fast modernare, funktionsrikare och billigare!
4 PWM-kanaler, Brown Out Detection, högre hastighet (upp till 20 MIPS@20 MHz!), lågnivå-interrupt på alla pinnar, Reset- och Xtal-pinnarna kan användas som i/o-pinnar, inbyggd oscillator, "Boot loader"-möjlighet, billigare mm...
Hoppas jag fick med det mesta och att det mesta stämmer också...
Att väcka AVR:en via en timer-interrupt som du beskriver fungerar i "idle mode", men inte i det ännu strömsnålare "power-down mode". Läs mitt citat en gång till så ser du.
Såg precis att Elfa har fått in ATtiny2313. Jippi, den har iaf jag väntat lite på. Trodde inte att den hade börjat säljas än. Den är som gamla AT90S2313, fast modernare, funktionsrikare och billigare!
4 PWM-kanaler, Brown Out Detection, högre hastighet (upp till 20 MIPS@20 MHz!), lågnivå-interrupt på alla pinnar, Reset- och Xtal-pinnarna kan användas som i/o-pinnar, inbyggd oscillator, "Boot loader"-möjlighet, billigare mm...
Hoppas jag fick med det mesta och att det mesta stämmer också...
