AVR sleep mode

Dec 20, 2005 7 Replies

Hej



Jeg har en AVR applikation som jeg gerne vil have gjort mindre strømkrævense. Programmet kører pt på en 10ms interrupt (Timer2 eller Timer 0). Jeg vil så gern ehave at den gør det den skal gøre, og så går i sleep i de resterende 9,5ms.



Kan ikke få den til at starte op igen efter sleep (power safe som burde kunne starte på Timer2 irq).



Nogen der har et par hints til hvordan man får den til at vågne op med 10ms intervaller på Timer2 irq?



pft Kåre


"Finn Bindeballe" skrev i en meddelelse news:43a86cf8$0$15795$ snipped-for-privacy@news.sunsite.dk...

Mega32. Har undersøgt sagen lidt nærmere. Det ser ud til at jeg enten skal have en ekstern clock (32.765) på TOSC1 og TOSC2, og så bruge den som eksternt interrupt/clock source på Timer2. Eller jeg skal lave en 10ms pulsgeneratur til INT2 benet.

Jeg kan kun sætte den i IDLE mode med intern irq på Timer2, da man jo ikke kan stoppe oscillator indgangen. I IDLE mode er besparelsen bare ikke så effektiv, da oscillator stadig kører.

Troede bare at der var en simpel software løsning til power safe mode.

Kåre

"Kåre" skrev i news:43a876a8$0$8863$ snipped-for-privacy@dread14.news.tele.dk

Ved ikke om dette trik virker på en AVT, har brugt det på en PIC. Hvis tiden (10mS) ikke behøver at være præcis så kan du prøve med et RC-Led på din INT. indgang. Når din CPU er i drift laver du benet om til at være et output og aflader C, lige før du går i sleep laver du benet om til at være input (INT) og lader C op gennem en modstand fra din + forsyning.

-- Hilsen Peter N Petersen

formatting link
Privat
formatting link
Firma

MPU'en har allerede en indbygget RC oscillator kaldet Watch-dog, som kan bruges til at vække den. Spørgsmålet er så bare om den har en brugelig tidindstilling. Hvis der er brug for langtidsnøjagtighed kan den kalibreres efter krystal oscillatoren, med jævne mellemrum (f.eks. 5-10 minutters interval). Så skulle temeperatur følsomhed være næsten elimeneret.

Hvordan bruger man den til at vække den? Normalt vil et Watchdog interrupt resette hele skidtet.

Kåre

En reset påvirker ikke indholdet af din ram og indefor nogle få uSec har du programmet alle portenen igen (Lidt afhængig af hvor hurtig du kan starte oscillatoren op).

Men jeg har en bootloader den skal igennem først ved hver reset. Der sker et par ting som tager længere tid end jeg kan acceptere. Men ellers en løsning som kan bruges i andre sammenhænge.

Kåre

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required