DS1307 Stromausfallproblem

7

Der DS1307 verfügt über zwei Stromquellen: die Haupt-VCC-Quelle und die Pufferbatterie. Letzteres versorgt den DS1307 mit Strom, wenn die Hauptstromversorgung ausfällt, damit die Uhr weiter ticken kann.

Ich habe ein Problem mit der RTC DS1307, wenn die Hauptstromversorgung plötzlich ausfällt und dann die Zeit auf dem LCD zurückkehrt, die gerade einfriert. Manchmal, wenn dies passiert (Ausschalten), läuft die RTC weiter (es scheint, dass der DS beim Ausschalten der Hauptleitung stecken bleibt).

Dies ist die genaue Schaltung, die ich verwendet habe, und die Batterie liefert 3,0 V:

Schema

Der Code, den ich verwendet habe, befindet sich genau im Blog-Beitrag: DS1307 Real Time Clock Working .

Was könnte das Problem sein?

allein
quelle
1
Sind Sie zu 100% sicher, dass der DS1307 fehlerhaft ist? Haben Sie eine unabhängige I2C-Schnittstelle an die SCL- und SDA-Leitungen angeschlossen und versucht, den IC abzufragen? Ihre Frage widerspricht sich auch selbst: An einem Punkt sagen Sie, dass das Teil das Timing beibehält, wenn der Strom ausfällt, und dann in Klammern sagen Sie "stecken geblieben, wenn der Hauptstrom ausgeschaltet ist" - ist es oder steckt es nicht?
Adam Lawrence
@ Madmanguruman: Was könnte noch sein? Ich habe ein anderes ATmega ausprobiert und das Problem tritt immer noch auf. Ich schließe es an arduino uno an und mit dem seriellen Monitor -RTClib-Beispiel sendet es korrekte Daten (Zeit) an den Computer. Ich schalte den Strom aus, manchmal hält es das Timing und manchmal steckt es fest Kann ich sagen, dass es zufällig ist !!
allein

Antworten:

3

Schema ist gut. Führen Sie diese Checkliste aus:

  • Überprüfen Sie Ihr Netzteil auf saubere Wellen, insbesondere bei den Verbindungs- und Trennzeiten. Wenn es mehr als 1 V spitzt, fügen Sie einen 4,7 uF Kondensator hinzu. Wenn das Problem dadurch nicht behoben wird, wechseln Sie die Stromversorgung und erneuern Sie den DS1307.

  • Überprüfen Sie die 3-V-Batteriestromfähigkeit, nur keine Spannung. DS1307 benötigt mindestens 200 uA.

  • Überprüfen Sie, ob der 3-V-Schläger einen unerwünschten Pfad hat, der ihn entlädt. Besonders wenn Sie Protoboard verwenden.

  • Überprüfen Sie die I2C-Befehle / Software.

Jairo Andres Velasco Romero
quelle
danke für deine hilfe ich aber eine 4.7uF parallel zur quelle und es löst das problem danke für deine hilfe
alleine
2

Normalerweise tritt diese Art von Problem auf auf:

  1. Netzteil behandelt keine Transienten bei Stromausfall und wenn es wiederhergestellt wird.
  2. Schlechte Zelle
  3. Irgendwann liegt es am Software-Fehler ...
Waqas Rafiq
quelle
danke ... aber ich habe mein Netzteil und die Batterie überprüft und es gibt kein Problem ... ich habe es durch einen c4.7uf parallel zum 5-V-Hauptregler gelöst
allein am
1

Stellen Sie sicher, dass Sie den I2C-Bus beim Start ordnungsgemäß zurücksetzen. Wenn Sie dies nicht tun, werden Sie feststellen, dass die Datenleitung immer gesperrt ist, wenn Ihr Programm gesperrt ist. Sie können dieses Problem beheben, indem Sie Taktimpulse vom Master senden, bis alle Geräte die Datenleitung freigegeben haben.

mjh2007
quelle
Vielen Dank ... aber der I2C-Bus wurde ordnungsgemäß zurückgesetzt. Ich fand die Lösung, um eine 4,7 uF parallel zur Quelle hinzuzufügen
allein am
1

Haben Sie sichergestellt, dass Sie die im Datenblatt empfohlenen Schritte ausführen:

UHR UND KALENDER


Bit 7 von Register 0 ist das Taktstoppbit (CH-Bit). Wenn dieses Bit auf 1 gesetzt ist, ist der Oszillator deaktiviert. Wenn der Wert auf 0 gesetzt ist, ist der Oszillator aktiviert. Bitte beachten Sie, dass der anfängliche Einschaltzustand aller Register nicht definiert ist. Daher ist es wichtig, den Oszillator (CH-Bit = 0) während der Erstkonfiguration zu aktivieren.


Mit anderen Worten, wenn Sie in Ihrer Software-Initialisierung vergessen haben, das CH-Bit zurückzusetzen, funktioniert der Oszillator nicht (und der Bitwert ist beim Einschalten zufällig).

Drazen Cika
quelle
1
Vielen Dank für Ihre Antwort. Ich habe die "CH" -Bit-Initialisierung durchgeführt und eine gute Lösung gefunden, indem ich 4,7 uF parallel zum 5-V-Regler (an der Hauptquelle) hinzugefügt habe. Es funktioniert gut
allein am
Ich bin froh, dass du es gelöst hast.
Drazen Cika