Gast
#396953
kann mir jemand sagen was ich hier vergessen oder falsch mache? #include <avr/sleep.h> //PowerDown set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode(); while(1);
|
Anzeige
|
Sleep Mode
Gast
#396953
kann mir jemand sagen was ich hier vergessen oder falsch mache? #include <avr/sleep.h> //PowerDown set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode(); while(1);
Gast
#396954
> kann mir jemand sagen was ich hier vergessen...?
Ja, Du hast vergessen, uns mitzuteilen, was das Programm machen soll
und was es Deiner Meinung nach nicht macht, und dass so ein
Codeschnipselchen wirklich nicht besonders aussagekräftig ist...
Außerdem hast Du anscheinend vergessen, dass es hier ein extra
GCC-Forum gibt...
Gast
#396955
ok nächstes mal im GCC-Forum. Ich möchte den atmega 128 in den idlemode versetzen. Stromaufnahme ändert sich aber nicht, also gehe ich davon aus dass das so nicht geht.
Gast
#396956
Wenn irgendein Ereignis den Mega wieder aufweckt, tut sich an der Stromaufnahme auch nix. Deshalb solltest Du vielleicht mal das komplette Programm schicken, damit man sieht, was da evtl. reinhauen kann!
Gast
#396957
ist vielleicht das sleep enable Bit nicht gesetzt?
Gast
#396958
@stephan: Das macht die Funktion sleep_mode() automatisch...
Gast
#396959
wie muß konfiguriert werden dass nicht mit int7 oder int3 aufgeweckt wird?
Gast
#396960
INT7 und INT3 vor dem sleep deaktivieren...
Gast
#396961
so: EIMSK = 0; Soviel ich weiß, spart Sleep-Mode IDLE keinen Strom, denn es wird nur die ALU angehalten, Timer, I/O, ADC usw. erhalten weiter ihren Takt. Inzwischen nutze ich in fast allen meinen Programmen Sleep, allerdings in ASM. ...
Gast
#396963
wenn ich in den Power Down mode schalte bleibt die Stromaufnahme trotzdem gleich. Atmega128 8Mhz 3,3V = 8mah entspricht auch dem Datenblatt. Mit Mega8 arbeite ich nicht, aber wenn ich den Mega48 in den Power-Down-Mode schalte, dann ist die Stromaufnahme mit einem Billig-DVM nicht mehr messbar. http://www.hanneslux.de/avr/mobau/7ksend/7ksend02.html ... Sorry, Korrektur, sollte heißen: Mit Mega128 arbeite ich nicht, ... ...
Gast
#396966
.....//gewünschten Sleep-mode wählen (ist bei dir
//NICHT Power-Down mode!)
.....//Sleep-enable setzen
asm volatile ("sleep"::); //uc in den Sleepmode schicken
zzzZZZ :)
Funktioniert zumindest beim AtMega48 so :)
Grüße
Gast
#396967
Autor: ...HanneS... Lux (HanneS) Datum: 25.08.2006 15:19 Mit Mega8 arbeite ich nicht, aber wenn ich den Mega48 in den Power-Down-Mode schalte, dann ist die Stromaufnahme mit einem Billig-DVM nicht mehr messbar. Ohne Brown-Out detection warens bei mir so um die 10 - 20 uA. Die Brown out detection zieht ca 25uA.
Gast
#396968
ich glaube der controller geht auch in den power down mode, wacht aber sofort wieder auf. Beim Power Down Mode kann er ja nur über TWI oder ext. Interrupt aufwachen. TWI ist disabled. Kann ich die Interrupts mit cli() vor dem sleep befehl ausschalten? Wenn ja dürfte er nicht mehr aufwachen oder? Lohnt sich das beim Mega128 überhaupt? Die älteren ATmegas sind noch nicht so auf Stromsparen optimiert. ...
Gast
#396970
<<Ohne Brown-Out detection warens bei mir so um die 10 - 20 uA. Die
Brown
out detection zieht ca 25uA.
>>
Tach zusammen.
Ein Mega168 nimmt bei 1.8Volt und 128Khz internem Takt 12.5uA im
aktiven Betrieb. Zum Test hatte ich die demo.c aus der WINAVR
Distribution und zur Kontrolle ein Oszi drann (PWM hochrunter). Bei
2.8Volt waren es dann schon 320uA.
Nächste Woche schreibe ich, was im Sleep passiert. (habe schon
Feierabend und das hier zu spät gelesen...:-)
Gruß
Axel
Nein, mein Messgerät im Labor ist bestimmt nicht defekt gg
Gast
#396971
Mein Mikrocontroller wurde beim dem Test mit 3,3V versorgt. Michael wrote: > wenn ich in den Power Down mode schalte bleibt die Stromaufnahme > trotzdem gleich. > Atmega128 8Mhz 3,3V = 8mah entspricht auch dem Datenblatt. Datenblatt, Seite 49:
PS. Ich habe gestern den ganzen Tag dran mit dem ATmega128 im Sleep-Modus gesessen, man musste einfacht JTAG abschalten, dann läuft der Hauptoszillator nicht mehr und der Stromverbrauch sinkt drastisch ab. Guter Hinweis, werd ich gleich mal in den Artikel einbauen. MfG Falk
Gast
#839885
Hallo sleep_mode(); // Wie sieht die Routine aus? // Verlässt er die obige Routine, so verweilt er in einer Endlosschleife while(1); Hallo, was machen die Ports eines XMEGA im Sleepmode -Power-Down -Power Save Behalten diese ihre Zustände, oder gehen die auf LOW/High Wie ist dieser Zustand definiert. Grüsse Jan Vlad S. schrieb: > Michael wrote: >> wenn ich in den Power Down mode schalte bleibt die Stromaufnahme >> trotzdem gleich. >> Atmega128 8Mhz 3,3V = 8mah entspricht auch dem Datenblatt. > > Datenblatt, Seite 49: > >
> > PS. Ich habe gestern den ganzen Tag dran mit dem ATmega128 im > Sleep-Modus gesessen, man musste einfacht JTAG abschalten, dann läuft > der Hauptoszillator nicht mehr und der Stromverbrauch sinkt drastisch > ab. Habe das gleiche Problem beim Mega328P. Ich versetze ihn in Idle-Modus und am Strom ändert sich jedoch nichts.
Bin deutlich über 1mA. Takt ist intern (1MHz) + Asynchroner Timer2 mit Uhrenquarz für Sekunden-Interrupt. Alle besonderen Fuses sind aus (siehe Bild). Kann man noch was optimieren? Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|