www.mikrocontroller.net

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


Autor: Marcel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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:
obere Kurve:     uC ist im aktiven Modus (LCD an)
mittlere Kurve:  uC ist dauerhaft im Power-Save Modus (LCD an)
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:
obere Kurve: uc ist im aktiven Modus (LCD an) 
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:

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

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

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.