Forum: Mikrocontroller und Digitale Elektronik Probleme mit Sleepmode beim Atmega169P mit Osci-Bild


von Marcel (Gast)


Angehängte Dateien:

Lesenswert?

Moin zusammen,

ich beschäftige mich gerade mit den Stromspar-"Funktionen" des Atmegas 
169P (Taktquelle 32kHz) und habe leider einige Probleme mit diesem.

Zuerst schaute ich mir den Artikel "Sleep Mode" an, um überhaupt erstmal 
einen Überblick zu bekommen.
Dort stand, dass die beste Methode sei, den momentanen Stromverbrauch 
mittels Spannungsabfalls über einen Widerstand zu ermitteln.

Gesagt getan von. Hab hinter meine Batterie ein 10 Ohm Widerstand 
geschaltet, um den Spannungsabfall über dem Widerstand mir mal 
anzuschauen.

Im Anhang findet ihr nun 2Bilder, die ich aufgenommen habe und die mich 
doch schon sehr stutzig machen. (Alle Bilder: Skalierung 2mV AC; MTB 
2ms)

Bild 1:
1
obere Kurve:     uC ist im aktiven Modus (LCD an)
1
mittlere Kurve:  uC ist dauerhaft im Power-Save Modus (LCD an)
1
untere Kurve:    uC ist dauerhaft im Power-Save Modus, zusätzlich wurden noch ADC, USART und Timer1 ausgeschaltet (LCD an)

Warum habe ich hier so einen "rauschenden" Verlauf, ich hätte gedacht, 
dass das alles wesentlich glätter sei:

Bei allen Verläufen habe ich einen periodisch sich widerholenden Peak 
(Frequenz: 256Hz) Warum das? - Wenn ich dauerhaft auf Reset drücke, dann 
verschwindet dieser.

Meiner Meinung nach müssten doch die obere und unter Bande wesentlich 
dichter beinander liegen oder nicht (von Kurve oben nach Kurve unten)? 
Oder habe ich da nen Denkfehler drin?

Bild 2 sieht noch drastischer aus:
1
obere Kurve: uc ist im aktiven Modus (LCD an)
1
untere Kurve: uC ist dauerhaft im Power-Save Modus, zusätzlich wurden  noch ADC, USART, Timer1 UND LCD ausgeschaltet.

Hier sind die Banden sogar noch weiter auseinander?! - Bzw. hier lassen 
sich kaum mehr 2 Banden ziehen.

Vielen Vielen Dank für eure Hilfe

Schöne Grüße Marcel

von Falk B. (falk)


Lesenswert?

@  Marcel (Gast)

>      IMG_0005_1_.JPG
>      809,1 KB, 2 Downloads
>      IMG_0006_1_.JPG
>      827,1 KB, 2 Downloads

Naja, mit etwas gutem Willen hätte man dieses Rauschbilder auch 
verkleinern können. Siehe Bildformate. Aber das nur am Rande.

>Warum habe ich hier so einen "rauschenden" Verlauf, ich hätte gedacht,
>dass das alles wesentlich glätter sei:

Denkste ! ;-)

>Bei allen Verläufen habe ich einen periodisch sich widerholenden Peak
>(Frequenz: 256Hz) Warum das?

Schon mal darüber nachgedacht, was dein 32 kHz Quarz am Zähler 2 macht? 
Der löst einen Interrupt aus, und das mit 32768 / 256 = 128 Hz. Auf 
deinem bild sieht man aber eher 2ms = 512 Hz. Möglicherweise läuft dein 
Timer 2 im CTC Modus? Oder du lädst den Timer im Interrupt vor.

> - Wenn ich dauerhaft auf Reset drücke, dann verschwindet dieser.

Klar, dann macht der AVR gar nichts mehr.

>Meiner Meinung nach müssten doch die obere und unter Bande wesentlich
>dichter beinander liegen oder nicht (von Kurve oben nach Kurve unten)?

Wie hast du denn die drei Fälle auf einmal mit einem Analogoszi 
gemessen? Da stimmt doch was nicht.

>Oder habe ich da nen Denkfehler drin?

Wahrscheinlich. Im Power Save braucht den AVR ein paar µA, wenn er 
aufwacht und den Interrupt bearbeitet ein paar mA. Deine Peaks sind so 
~3mV, macht 0,3mA im aktiven Zustand. Klingt nach 1 MHz RC-Oszillator.

>untere Kurve: uC ist dauerhaft im Power-Save Modus, zusätzlich wurden  >noch ADC, 
USART, Timer1 UND LCD ausgeschaltet.

Sieht nach Programmfehler aus. Der ist wahrscheinlich nicht wirklich im 
Power Save.

MfG
Falk

von (prx) A. K. (prx)


Lesenswert?

Falk Brunner schrieb:

> Auf deinem bild sieht man aber eher 2ms = 512 Hz.

2 Div je 2ms gibt 4ms also 256Hz.

von Marcel (Gast)


Lesenswert?

Falk Brunner schrieb:
> Naja, mit etwas gutem Willen hätte man dieses Rauschbilder auch
> verkleinern können. Siehe Bildformate. Aber das nur am Rande.

Entschuldigt bitte, das hatte ich total vergessen, die Jpeg-Bilder 
nochmals zu komrpimieren :(

Falk Brunner schrieb:
> Der löst einen Interrupt aus, und das mit 32768 / 256 = 128 Hz. Auf
> deinem bild sieht man aber eher 2ms = 512 Hz. Möglicherweise läuft dein
> Timer 2 im CTC Modus? Oder du lädst den Timer im Interrupt vor.

A. K. schrieb:
> 2 Div je 2ms gibt 4ms also 256Hz.

Ich arbeite in der Tat mit einer Software-RTC, wodurch sich diese 
Frequenz erklären lassen könnte, doch warum steigt der Stromverbrauch 
denn so drastisch an und das selbst wenn man im aktiven Modus ist, wo er 
ja sonst auch dauerhaft arbeitet.

Falk Brunner schrieb:
> Wie hast du denn die drei Fälle auf einmal mit einem Analogoszi
> gemessen? Da stimmt doch was nicht.

Das ist ein Digitales ;)
Dank sei der Mem-Funktion

Falk Brunner schrieb:
> Wahrscheinlich. Im Power Save braucht den AVR ein paar µA, wenn er
> aufwacht und den Interrupt bearbeitet ein paar mA. Deine Peaks sind so
> ~3mV, macht 0,3mA im aktiven Zustand. Klingt nach 1 MHz RC-Oszillator.

Ne ich habe nen 32kHz dran, auch gefust.


Falk Brunner schrieb:
> Sieht nach Programmfehler aus. Der ist wahrscheinlich nicht wirklich im
> Power Save.

Ich habe ihn sogar ohne Global Interrupt Enable in das Land der Träume 
geschickt, um eben dauerhaft drin zu bleiben. Indiz dafür ist, dass die 
Taster (PCINT) nichts mehr hervorrufen.

Grüße Marcel

von (prx) A. K. (prx)


Lesenswert?

Marcel schrieb:

> Ich arbeite in der Tat mit einer Software-RTC

Also nicht mit dem asynchronen Modus des Timers?

Ach ja: Das LCD kriegt Wechselspannung. Frag mich nicht welche, aber die 
solltest du schon mit auf die Rechnung setzen, d.h. die Strompeaks beim 
Wechsel.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.