Hallo, derzeit baue ich eine Schaltung auf, die als Low Power und mit einem 32.768 Quarz laufen soll. Ziel ist es, unter 10uA im Powersave-Mode zu kommen, der Quarz soll dabei weiterlaufen. Die neueren ATMega 48P/PU und 328P sollen laut Datenblatt im Powersave-Modus nur ca. 1 Mikroampere (einschliesslich Quarz) benötigen. Tatsächlich messe ich bei meinem ATMega 48PV-10PU ca. 1 Milliampere (bei 2V Vcc). Im Programm, das ich mit BASCOM übersetzt habe, habe ich den Befehl "CONFIG POWERMODE = POWERSAVE" verwendet, wie in der Bascom-Hilfe angegeben. Gibt es vielleicht irgendeinen Trick oder ein anderes (neues?) Kommando?
Deine Schaltung und die Programmierung der Pins muss natürlich im Powersave dafür sorgen, das auch kein Strom in die Ausgänge fliessen kann. Wenn du z.B. einen Pullup per Controller im Powerdown auf low ziehst, wird da Strom fliessen.
Ist es klar, dass "Timer/Counter2 running in asynchronous mode" für die gewünschte RTC nötig ist?
Hallo, Dann kann man am Programm bestimmt auch sehen, dass die IO Pins abgeschaltet sind, sowie auch die unterschiedlichen Hardware Module. Dann wird das "Problem" am Aufbau liegen. Sprichwort: "Wer misst misst misst."
Hallo S. Landolt, S. Landolt schrieb: > Ist es klar, dass "Timer/Counter2 running in asynchronous mode" > für die > gewünschte RTC nötig ist? Ich habe sein Post so verstanden, dass der 32,768 KHz Quarz als CPU Takt verwendet wird.
S. Landolt schrieb: > Bei Power-save? Ich beziehe mich auf das Datenblatt: https://www.mouser.de/datasheet/2/268/Atmel-8025-8-bit-AVR-Microcontroller-ATmega48P-88P-1315175.pdf S.55 - 13.5. Low Frequency Crystal Oscillator S.64 - 14.2. Sleep Modes Zeigt die Modi. Gibt's im Datenblatt noch Widersprüche?
Gern gemachter Fehler: offen gelassene Eingänge. Also je nach Wunsch - Als Ausgang programmieren; - Pullup aktivieren - digitalen Eingang deaktivieren (DIDR), so möglich - von aussen auf festes Potential legen ansonsten zieht ein offener Eingang, der irgendwo zwischen lo und hi rumfloatet gern mal Milliamperes.
an Karl M.: Ich verstehe den Abschnitt '14.6. Power-save Mode' anders, lasse mich aber gerne belehren.
> offen gelassene Eingänge
Wenn ich mich recht erinnere, spielt das bei Power-save und Power-down
keine Rolle.
S. Landolt schrieb: > Wenn ich mich recht erinnere, spielt das bei Power-save und Power-down > keine Rolle. FALSCH!
hps schrieb: > Tatsächlich messe ich bei meinem ATMega 48PV-10PU ca. 1 Milliampere (bei > 2V Vcc). Programmer abgezogen? Du wärest nicht der erste, der daruf reingefallen ist(mich eingeschlossen).
Falk B. schrieb: > S. Landolt schrieb: >> Wenn ich mich recht erinnere, spielt das bei Power-save und Power-down >> keine Rolle. > > FALSCH! Sind Sie sicher? Zitat: In sleep modes where both the I/O clock (clkI/O) and the ADC clock (clkADC) are stopped, the input buffers of the device will be disabled. This ensures that no power is consumed by the input logic when not needed.
Hallo, S. Landolt schrieb: > In sleep modes where both the I/O clock (clkI/O) and the ADC clock > (clkADC) are stopped, the input buffers of the device will be disabled. > This ensures that no power is consumed by the input logic when not > needed. Der Abschnitt hat noch weitere Absätze mit wichtigen Infos. Ich zitiere mal komplett: Quelle: https://www.mouser.de/datasheet/2/268/Atmel-8025-8-bit-AVR-Microcontroller-ATmega48P-88P-1315175.pdf S.68 - 14.11.6. Port Pins "When entering a sleep mode, all port pins should be configured to use minimum power. The most important is then to ensure that no pins drive resistive loads. In sleep modes where both the I/O clock (clk I/O ) and the ADC clock (clk ADC ) are stopped, the input buffers of the device will be disabled. This ensures that no power is consumed by the input logic when not needed. In some cases, the input logic is needed for detecting wake-up conditions, and it will then be enabled. Refer to the section Digital Input Enable and Sleep Modes for details on which pins are enabled. If the input buffer is enabled and the input signal is left floating or have an analog signal level close to V CC /2, the input buffer will use excessive power. (!!!!) For analog input pins, the digital input buffer should be disabled at all times. An analog signal level close to V CC /2 on an input pin can cause significant current even in active mode. Digital input buffers can be disabled by writing to the Digital Input Disable Registers (DIDR0 for ADC, DIDR1 for AC)."
Ja, schon, aber ein Eingang, der zum Aufwecken benutzt wird, hängt normalerweise nicht in der Luft. Auch ist unklar, was hps genau macht bzw. vorhat.
Damit wir uns richtig verstehen, Falk B. und Karl M.: ich bin auch für 'klare Verhältnisse' und lasse nichts undefiniert, aber hier ist doch die Frage, woher das eine mA bei hps kommt.
Jup, das ist ja das tolle daran. Die Zustände, auch Pullups bleiben im power-down aktiv. Neben der offenen Eingänge auch noch den ADC deaktivieren. Waren bei einem ähnlichen Projekt mit einem ATTiny13 ca. 350µA. Brown Out Detection (Fuse) braucht auch noch ein paar µA.
@TO Wir warten ja noch auf das Programm, evtl. auch dem Assembler Output, dann kann man mehr sagen/ denken.
hps schrieb: > Die neueren ATMega 48P/PU und 328P sollen laut Datenblatt im > Powersave-Modus nur ca. 1 Mikroampere (einschliesslich Quarz) benötigen. > Tatsächlich messe ich bei meinem ATMega 48PV-10PU ca. 1 Milliampere (bei > 2V Vcc). > > Im Programm, das ich mit BASCOM übersetzt habe, habe ich den Befehl > "CONFIG POWERMODE = POWERSAVE" > verwendet, wie in der Bascom-Hilfe angegeben. > > Gibt es vielleicht irgendeinen Trick oder ein anderes (neues?) Kommando? Man müßte schon dein ganzes Programm sehen, um dir sagen zu können, was du falsch gemacht hast. Aber in einem nichttrivialen Programm reicht es nicht aus, den µC nur einmal schlafen zu schicken. Man muß das jedes Mal wieder machen, wenn er durch irgendwas aufgeweckt worden ist. Die gebräuchlichste Methode besteht darin, das Hauptprogramm in eine Endlosschleife zu packen und immer dann, wenn alles abgearbeitet worden ist (vulgo: am Ende des Schleifenrumpfes) schlafen zu gehen. Im Extremfall macht der µC alle Arbeit in der jeweiligen Interrupt- Serviceroutine und die Hauptschleife enthält dann nichts mehr außer der Anweisung, schlafen zu gehen. Siehe das zweite Beispiel hier: https://avrhelp.mcselec.com/index.html?config_powermode.htm
:
Bearbeitet durch User
Vielen Dank erstmal an alle ! Es scheint tatsächlich daran zu liegen, dass der uC im Entwicklungsboard steckt und ich nur den PIN7 (=VCC) separiert habe und da den Stromfluss gemessen habe ... Das Board (Pollin) hat soviel Zeugs drauf, da werde ich morgen erst mal ein nacktes Board mit einem Prozessorsockel, dem Quarz (12,5pf) und 2x 12pF (nach Masse) bestücken (hat so auf dem Entw.board funktioniert). Der "nackte" Prozessor zieht tatsächlich nur 0,9 Mikroampere. An Karl M. noch: Der Prozessortakt ist bei mir wie der Default, also 1 MHz. Der 32kHz (Quarz an B.6 und B.7) geht hier nur auf den Timer 2, also nichts !!! in den Fuses verstellen, das kann bei der niedrigen Frequenz in die Hose gehen (man kann dann evtl. kein Programm mehr laden !) Der Timer 2 wird so konfiguriert: Config Timer2 = Timer , Async = On , Prescale = 1024 Da der Timer2 8bit hat, resultiert daraus eine Periode von 8sec., mit der die zugehörige Interrupt-Routine beim Ablauf des Timers gestartet wird. Dadurch wird auch der Prozessor wieder aus dem POWERSAVE aufgeweckt. Nach jeweils 8 sec. kommt dann wieder die Main-Loop dran, in der Diverses erledigt wird. Am Ende hat die Main-Loop das "Config Powermode = Powersave " Kommando. Nach 10800 Zyklen ist 1 Tag rum (mit für meine Zwecke hinreichender Genauigkeit) und es kann wieder von vorne losgehen... So wäre mein Konzept für eine Steuerung, die jeden Tag dasselbe machen soll. VG von HPS
S. Landolt schrieb: >> offen gelassene Eingänge > > Wenn ich mich recht erinnere, spielt das bei Power-save und Power-down > keine Rolle. Offene Eingänge spielen immer eine Rolle, denn das sind Antennen, die sich quasi automatisch auf maximale Empfindlichkeit optimieren und dann die digitalen Schaltstufen des Eingangs zum "Wackeln" bringen. Auch wenn das für die Funktion einer Anwendung unwichtig ist: es ist nicht unwichtig für den Energiebedarf. Denn Wackeln bedeutet grundsätzlich erstmal Energiebedarf. Und der ist umso höher, je schneller das Wackeln ist. Zwar ist die typische EMV-Umgebung von 50Hz des Energienetzes dominiert, aber zumindest in der Nähe der Nulldurchgänge der dominierenden Schwingung wird auch gerne noch wesentlich schneller gewackelt, bis weit in den 10-MHz-Bereich. Das läppert sich...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.