xmega idle sleep mode

Gast #2335879
Lesenswert?

Howdy,
Ich habe hier einen atxmega64a1, den ich in den "Idle"-Modus versetze 
(bester Modus, den ich für meine Bedürfnisse nutzen kann). Die CPU läuft 
mit intern mit 2MHz. Laut Datenblatt liegt die Stromaufnahme hierbei bei 
etwa 500µA (ext. 2MHz Clk.). Mit den mir zur Verfügung stehenden 
Messgeräten messe ich jedoch eine Stromaufnahme im "Idle" von 5mA. (Die 
CPU verbraucht im "Aktiv"-Modus in etwa auch 5mA. Stelle ich jedoch 
anstatt den "Idle"-Mode den "PowerSave"-Mode ein, hab ich eine 
Stromaufnahme von 50µA.

Jetzt meine Frage: der Idle Modus wird doch genauso "angesteuert" wie 
der Powersave Modus? Wieso ist kein Unterschied messbar zwischen Idle 
und Aktiv ? Desweiteren ist mit aufgefallen das im Datenblatt bei 2MHz 
ext. eine Stromaufnahme von 1,4mA (3V) steht. Ich jedoch eine 
Stromaufnahme mit dem internen Takt von 2MHz von 5mA messe, kann 
zwischen internen und externen Takt solch ein Unterschied zu stande 
kommen?

PS: Alles mit Angaben beziehen sich auf eine Spannung von 3,6V falls 
nicht anders angegeben.

Beispiel Quellcode hierbei ist folgender:
1
SLEEP_CTRL= SLEEP_SEN_bm | SLEEP_SMODE_IDLE_gc;
2
//bzw.
3
SLEEP_CTRL= SLEEP_SEN_bm | SLEEP_SMODE_PSAVE_gc;
4

5
while(1)
6
{
7
 uart_puts("aktiv!");
8
 _delay_ms(100);
9
 asm("sleep");
10
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren