Wird durch Überprüfen der Backup-Spannung an einer RTC die Backup-Batterie entladen?

8

Ich arbeite an einem ATMega-Projekt, bei dem die Zeit erhalten bleibt, und ich versuche, es so zu gestalten, dass Sie die Wahl zwischen Software Time (Millis () -basiert), DS1307 oder DS3231 (ChronoDot) haben.

Im einfachsten Fall möchte ich Header für einen ChronoDot zum Einlöten zur Verfügung haben und dann irgendwie in der Software erkennen, ob der ChronoDot angeschlossen ist, und auf diese umstellen. Es ist normalerweise leicht genug zu überprüfen, ob entweder der DS1307 oder der DS3231 vorhanden ist, da sie dasselbe I2C-Register verwenden, aber nach dieser ersten Überprüfung weichen sie ein wenig voneinander ab und letzteres weist mehr Funktionen auf. Ich möchte also immer noch feststellen, welche verbunden ist. Im Allgemeinen plane ich, einen Platz direkt an Bord zu haben, um den DS1307 als Standardoption einzulöten, und die DS3231-Unterstützung würde mit einem vollständigen ChronoDot nur über zwei 4-polige Header erfolgen. Der ChronoDot würde im Wesentlichen über die Stelle passen, an die der DS1307 normalerweise gehen würde (in diesem Fall wäre er nicht bestückt). Der Hauptgrund, warum ich mich speziell auf den ChronoDot konzentriere, ist, dass er ' Es ist beliebt, leicht zu erwerben und erfordert für den Endbenutzer kein SMD-Löten (dies gilt für ein Kit). Also, hier ist was ich denke ...

Sowohl der DS1307 als auch der DS3231 haben eine Vbat-Leitung auf dem Chip, die aber für nichts wirklich benötigt wird. Der ChronoDot hat jedoch einen tatsächlichen VBat-Pin auf dem Breakout-Board. Ich könnte vielleicht nur Vbat vom ChronoDot-Header und nicht vom DS1307 anschließen und es an einen digitalen Eingangspin meines ATMega anschließen. Aber haben Sie diesen Eingangspin durch einen Widerstand auf Masse gezogen (nicht wirklich sicher, welchen Wert ... vielleicht 4,7k?). Wenn meine EE-Theorie korrekt ist, kann ich diesen Pin lesen und wenn ich ein Tief bekomme, gibt es keinen Chronodot, aber wenn ich ein Hoch bekomme, gibt es einen.

Etwas wie das:

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Meine Hauptfrage hier ist, ob dadurch nur die Pufferbatterie der RTC entladen wird. Normalerweise wird der Pufferbatterie kein Strom entnommen, während die 5-V-Hauptstromversorgung bereitgestellt wird. Würde dies jedoch dazu führen, dass die Batterie ständig mit Strom versorgt wird, wenn sie an einen digitalen Eingang angeschlossen wird? Oder gibt es einen Modus, in den ich den Stift nach dem Lesen einfügen müsste, um ihn sozusagen zu "trennen"? Ich weiß, dass ich es auf Ausgang umstellen könnte, aber ich glaube, wenn es auf Ausgang und niedrig eingestellt ist, würde ich die Batterie grundsätzlich erden.

Wie auch immer, meine EE-Kurse sind lange her. Jede Hilfe zur Theorie hier wäre dankbar.

Adam Haile
quelle

Antworten:

8

Sie werden die Batterie sicherlich durch den Widerstand entladen. Die Menge an Strom, die Sie ziehen, unterliegt dem Ohmschen Gesetz: I = V / R. Nehmen wir an, Ihre Batteriespannung beträgt 3 V (dh der übliche Chronodot Vbat). Mit einem 4,7 kOhm Widerstand zeichnen Sie kontinuierlich 3/4700 = 638 Mikroampere. Wenn Sie dies zu einem 1-MOhm-Widerstand machen, zeichnen Sie stattdessen 3/1000000 = 3 Mikroampere. Und wenn Sie daraus einen 10-MOhm-Widerstand machen, zeichnen Sie stattdessen 3 / 1e7 = 300 Nanoampere.

Je größer der von Ihnen gewählte Wertwiderstand ist, desto weniger Strom ziehen Sie kontinuierlich, aber desto länger dauert der Übergang Ihres digitalen Pins (denken Sie an die R * C-Zeitkonstante, die vom Widerstand und der Kapazität der Pins und Leiterbahnen abhängt). Solange Sie nach dem Start lange genug warten (oder regelmäßig nachsehen), sollte ein 10-MOhm-Widerstand in Ordnung sein. Theoretisch könnten Sie auch mehr Rauschen mit einem größeren Wert aufnehmen (da es immer mehr wie ein offener Stromkreis aussieht), aber ich denke, es wird Ihnen gut gehen. Ich könnte sogar in Betracht ziehen, auf 100 MOhm zu steigen.

In einem typischen CR1632 sind 130 Milliampere-Stunden (mAh) Energie gespeichert, und möglicherweise sind 80% davon nutzbar. Nennen wir ihn zur Vereinfachung der Berechnung einfach 100 mAh. Eine grobe Schätzung Ihrer Batterielebensdauer ist dann Milliampere-Stunden / Milliampere-Verbrauch.

  • Mit Ihrem 4,7-kOhm-Widerstand sind das 100/638 = 156 Stunden = 6,5 Tage
  • Mit einem 1-MOhm-Widerstand sind das 100 / 0,003 = 33333 Stunden = 3,8 Jahre
  • Mit einem 10-MOhm-Widerstand sind das 100 / 0,0003 = 333333 Stunden = 38 Jahre

Dies sind Zahlen für die Obergrenze, die davon ausgehen, dass der Rest Ihres Systems keinen Strom verbraucht. Sie stellen die Lebensdauer Ihres Systems dar, wenn es ausgeschaltet ist und der Akku einfach durch den Widerstand entladen wird. Es gibt auch viele Effekte zweiter Ordnung, die nicht berücksichtigt werden (Spannungsabfall, interne Batterieverlustchemie usw.). Es ist unwahrscheinlich, dass der Widerstand Ihr größtes Problem ist, abhängig von der Lebensdauer, die Sie erreichen möchten.

vicatcu
quelle
Duh ... kann nicht glauben, dass ich es versäumt habe, die Tatsache zu bemerken, dass ich die Batterie direkt geerdet habe: P Irgendwelche Vorschläge für einen anderen Weg, dies zu tun?
Adam Haile
Ich denke, Ihr Ansatz ist in Ordnung. Wenn der Widerstand groß genug ist, hat der Leckstrom keinen wesentlichen Einfluss auf Ihre Batterielebensdauer. Ich werde ihn mit etwas mehr Mathematik aktualisieren.
Vicatcu
1
Upvote: Beantwortung der Hauptfrage. @AdamHaile eine Technik, die Sie vielleicht nützlich finden: Digitale Voltmeter verwenden einen FET, der ein unbedeutendes Drain-Äquivalent eines Widerstands in Ordnungen oder MOhm darstellt.
Shimofuri
1
@AdamHaile eine schnelle Sache ... Ich habe Ihren Kommentar bemerkt, dass Ihr System eine 5V in einem anderen Kommentar ist. Achten Sie darauf, dass der Schwellenwert für den digitalen Spannungseingang hoch genug ist, um sich bei einer leeren Batterie zu registrieren (wahrscheinlich bis zu 2 V für einen CR1632). Überprüfen Sie das Datenblatt Ihres Mikrocontrollers
vicatcu
1

Nahezu jedes dieser Messschemata mit Widerständen führt, wenn es dauerhaft angeschlossen bleibt, zu einer inakzeptablen Stromaufnahme und einer Verkürzung der Lebensdauer der kleinen Lithiumbatterie, die diese Geräte mit Strom versorgt.

Die Lösung besteht dann darin, dass der Messkreis nur in kurzen Abständen kurz Strom zieht, wenn Sie tatsächlich eine Messung durchführen.

Für einen digitalen Test kann dies so einfach sein wie die Verwendung eines internen, per Software konfigurierbaren Pulldowns und die Konfiguration als Pulldown für einen kurzen Zeitraum rund um den Test. Sie müssen jedoch mögliche Komplikationen einer Spannung am Pin untersuchen, wenn die MCU, die die Messung durchführt, nicht mit Strom versorgt wird / sich im Ruhemodus befindet.

Eine analoge Messung würde schwieriger werden, aber ähnliche Ideen könnten angewendet werden. Sie können beispielsweise den unteren Widerstand eines Spannungsteilers (hochohmig im Verhältnis zu den E / A) an einen Ausgangspin anschließen und ihn nur für eine Zeit um die Messung niedrig ansteuern. Oder Sie können sogar eine RC-Schaltung mit einem kleinen Kondensator mit geringer Leckage und einem einzelnen E / A-Pin aufbauen, den Sie als Ausgang niedrig ansteuern, dann als Analogeingang konfigurieren und nach einiger Zeit die Spannung messen können. Wenn die digitale Schwellenspannung des Geräts konstant ist (achten Sie auf die Temperatur!), Können Sie auf diese Weise sogar eine analoge Messung mit einem digitalen Eingang durchführen, indem Sie die Zeit messen, die der Kondensator benötigt, um sich auf die Schwellenspannung aufzuladen.

Chris Stratton
quelle
Hmmm ... Ich wünschte, ich könnte das interne Pull-Down-Ding machen, aber leider gibt es nur interne Pull-Up-Widerstände. Ich versuche vielleicht, Dinge zu komplizieren. Ein Lötpad, das überbrückt werden muss, um den einen oder anderen Modus zu verwenden, wäre wahrscheinlich akzeptabel.
Adam Haile
Sie können Ihr eigenes per Software konfigurierbares Pulldown mit einem Widerstand an einem anderen E / A-Pin erstellen. Oder Sie können die Idee der RC-Schaltungsschaltung verwenden und denselben Pin ansteuern, den Sie dann als zu messenden Eingang neu konfigurieren.
Chris Stratton
Tatsächlich ist die Verwendung eines internen Pulldowns eine sehr schlechte Idee. E / A-Pins werden im Allgemeinen mit Dioden an Vdd und GND angeschlossen, um zu verhindern, dass die Pin-Spannung außerhalb der Versorgungsspannung abweicht. Wenn der Chip nicht mit Strom versorgt wird, wird der Pin grundsätzlich mit zwei parallelen Dioden an GND gebunden, und das Anlegen einer Spannung über die Schwellenspannung der Dioden führt zu einem sehr großen Stromfluss. Eine bessere Idee wäre die Verwendung eines Serien-PMOS-Transistors, dessen Gate von einem NMOS-Transistor gegen Masse gesteuert wird. Dies minimiert Leckagen, wenn der Mikrocontroller nicht mit Strom versorgt wird.
Alex. Forencich
1

Der DS3231 hat eine Innentemperatur, die Sie ablesen können. Sie können über I2C einen Befehl zum Ablesen der Temperatur ausgeben. Wenn Sie eine Antwort erhalten, haben Sie den DS3231, wenn nicht, den DS1307.

Scott Goldthwaite
quelle
1
Ich denke nicht, dass dies die Frage in irgendeiner Weise beantwortet.
Shimofuri
Ich denke schon. Adam im OP möchte feststellen, ob ein DS3231 oder DS1307 an seine Schaltung angeschlossen ist. Er dachte daran, dies mit dem VBAT-Pin zu versuchen. Ich schlage vor, dass er es tut, indem er sieht, ob das Gerät die Temperatur zurückgibt. Mir scheint, es sollte gut funktionieren.
Scott Goldthwaite
Ich denke, dies spricht die Frage an: Nicht die gestellte Frage, sondern die zugrunde liegende Problemstellung. Interessant. Es würde meine Gegenstimme bekommen, wenn es ein bisschen ausgearbeitet und mit Hinweisen versehen würde.
Anindo Ghosh
Im Maxim-Datenblatt siehe Abbildung 1 auf Seite 11. Es zeigt die Register (11 und 12) für die Innentemperatur.
Scott Goldthwaite