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:
Der Code, den ich verwendet habe, befindet sich genau im Blog-Beitrag: DS1307 Real Time Clock Working .
Was könnte das Problem sein?
Antworten:
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.
quelle
Normalerweise tritt diese Art von Problem auf auf:
quelle
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.
quelle
Haben Sie sichergestellt, dass Sie die im Datenblatt empfohlenen Schritte ausführen:
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).
quelle