Ich habe seit ungefähr einer Woche einen ATmega328P, der mit 16 MHz auf CR2032 mit ein paar Sensoren und Funk läuft. Es begann bei 3+ Volt und misst derzeit bei 2,96 Volt. Derzeit verwende ich keine Ladedruckregler, um dies zu regulieren. Ich verwende den Low-Power-Sleep-Modus mit den Jee Lib-Bibliotheken , schlafe für ein paar Sekunden, wache dann für weniger als eine Sekunde auf, nehme ein paar Messwerte, übertrage und schlafe wieder ein.
In letzter Zeit bemerkte ich, dass die Schlafdauer um einige Größenordnungen geschrumpft war. Es scheint ungefähr 50 Millisekunden lang zu schlafen, anstatt der 5-Sekunden-Schlafzeit, mit der es früher gearbeitet hat. Wenn ich auf 2xAA (2,84 Volt) umschalte, bekomme ich immer noch den vollen 5-Sekunden-Schlafzyklus.
Ist dieses Verhalten darauf zurückzuführen, dass der ATmega328P zurückschaltet, um die internen 8 MHz anstelle der externen 16 MHz zu verwenden? Sie sind sich auch nicht sicher, wie das Timing / der Schlaf mit 2xAA bei 2,84 Volt gut funktioniert, aber nicht mit CR2032 bei 2,96 Volt?
Ein paar Dinge. Wahrscheinlich misst du die Batterie ohne Last. Selbst wenn es angeschlossen und in Betrieb ist, erkennt ein Multimeter keinen schnellen Stromverbrauch. Ein Oszilloskop wird für Leistungsentnahmen im Millisekundenbereich benötigt. Denken Sie daran, dass CR2032s für den Langzeitgebrauch mit niedrigem Strom ausgelegt sind. 250mAh @ ein paar mA. Ihr Mikro und Ihre Sensoren, die aus dem Ruhezustand kommen, verursachen einen Einschaltstrom, und der hohe ESR (äquivalenter Serienwiderstand) des CR2032 verursacht einen Spannungsabfall. Haben Sie einen Entkopplungskondensator parallel in der Nähe der Stromanschlüsse?
Und Spannungsabfälle lassen den ATmega nicht auf eine langsamere Geschwindigkeit fallen. Das ist eine zu fortgeschrittene Funktion für die meisten niedrigen Mikros. Es wird weiterhin versuchen , bei 16 MHz mit einem instabilen Takt zu laufen. Brownouts sind wahrscheinlich.
Sie könnten den ATmega für alle Spannungen mit 8 MHz betreiben, um das Problem zu vermeiden, und Ihre Verzögerungen/Timer darauf basierend anpassen.
Es sieht so aus, als würden Sie die MCU mit einer Knopfzelle außerhalb des sicheren Betriebsbereichs betreiben . Laut ATmega328P-Datenblatt , Seite 316, liegt die minimale sichere Versorgungsspannung für 16 MHz bei etwa 3,8 V (die roten Markierungen sind von mir). Sie sollten in diesem Fall mit unberechenbarem Verhalten rechnen. In der Praxis übertakten Sie nur Ihre MCU. Sehen Sie , was Russell McMahon dazu zu sagen hat .
Was die Frage AA vs. Knopfzelle betrifft, so hat dies damit zu tun, dass AAs eine viel höhere Entladungsrate haben (AAs können einige Ampere liefern). Knopfzellen ( siehe Musterdatenblatt ) können bei kurzen Impulsen bis zu einigen mA liefern.
Chris Stratton