I2C RTC DS1307 verliert wieder die Zeit/Datum

Sollte dir die RTC und den EEPROM melden ...

liefert es auch:

I2C Scanner
Scanning...
I2C device found at address 0x50  !
I2C device found at address 0x68  !
done

Gruß
Mega

Auch während
165.165.2165 45:165:85 Uhr
kommt/käme ?

( Der Scanner wiederholt alle 5 Sek. einen Durchlauf )

Dann wird es allmählich wirklich merkwürdig ...

Auch während
165.165.2165 45:165:85 Uhr
kommt/käme ?

Kommt keine Fehlermeldung, brav immer nur "165.165.2165 45:165:85 Uhr ", nach einer Weile dann die richtigen Datumsdaten.

( Der Scanner wiederholt alle 5 Sek. einen Durchlauf )

Wollte jetzt nicht soviel kopieren, aber alle 5 sek das gleiche. :0

GoMega:
Kommt keine Fehlermeldung, brav immer nur "165.165.2165 45:165:85 Uhr ", nach einer Weile dann die richtigen Datumsdaten.

Und das, wenn nur das RTC-Uhrenmodul am I2C-Bus angeschlossen ist?

Oder sind weitere I2C-Geräte am Bus angeschlossen?
Wenn ja: Wie sieht der Anschlußplan der I2C-Geräte aus? Bus-Topologie? Leitungslängen?

Klein Korrektur meinerseits, hatte in der Hektik das Programm gleich laufen lassen:

( Der Scanner wiederholt alle 5 Sek. einen Durchlauf )

Wollte jetzt nicht soviel kopieren, aber alle 5 sek das gleiche. :0
[/quote]

Wenn ich den Strom wegnehme und wieder den SerialMonitor aufrufe kommt dies:

I2C Scanner
Scanning...
I2C device found at address 0x50  !
done

Scanning...
I2C device found at address 0x50  !
done

Scanning...
I2C device found at address 0x50  !
done

nach einer Weile:

Scanning...
I2C device found at address 0x50  !
done

Scanning...
I2C device found at address 0x50  !
I2C device found at address 0x68  !
done

Scanning...
I2C device found at address 0x50  !
I2C device found at address 0x68  !
done

Scheint so zu sein, als ob die ersten 1-3 Min. der RTC nicht Antwortet. Ich habe jetzt nicht so die Ahnung vom I2C-Bus, aber wenn es tatsächlich so ist, das die ersten Minuten kein Device an 0x68 gefunden wird, dann verstehe ich nicht, wieso mir die wire.h Bibliothek immer 165.165.2165 45:165:85 ausspuckt? Ist das ein Fehlercode? Ich meine es kann ja in dieser Zeit nicht wirklich was sinnvolles an der Adresse gesendet werden?

Da ich es jetzt an 2 Mega Boards (R2 und R3) probiert habe (nur jeweils das Board und RTC, ohne was anderes, somit auch kein anderer Teilnehmer am I2C-Bux) tippe ich mal auf eine Fehlfunktion des RTC-Moduls.

Gruß
Mega

jurs:
Oder sind weitere I2C-Geräte am Bus angeschlossen?
Wenn ja: Wie sieht der Anschlußplan der I2C-Geräte aus? Bus-Topologie? Leitungslängen?

Wie gesagt nur das MegaBoard und RTC, keine weiteren Module. Leitungslänge ca. 20cm, die üblichen Ebay-Steckbrücken.

Gruß
Mega

GoMega:
Wie gesagt nur das MegaBoard und RTC, keine weiteren Module. Leitungslänge ca. 20cm, die üblichen Ebay-Steckbrücken.

Da fällt mir nicht mehr viel zu ein.
Die RTC-Platine mit VCC an 5V vom Arduino?

Da würde mir jetzt nur noch einfallen, das Board mal mit einem anderen RTC-Modul sowie das RTC-Modul mit einem anderen Arduino-Board zu testen.

Wenn dasselbe RTC-Modul an einem anderen Board vollständig funktioniert, dann hat wohl das Board eine Macke.

Und wenn ein anderes RTC-Modul am selben Board vollständig funktioniert, dann hat wohl das RTC-Modul eine Macke.

jurs:
Da würde mir jetzt nur noch einfallen, das Board mal mit einem anderen RTC-Modul sowie das RTC-Modul mit einem anderen Arduino-Board zu testen.

Mit einem andern Mega Board habe ich ja schon getestet. Nächste Woche weiß ich mehr, dann sollte das andere RTC-Board da sein.

Was ich allerdings nicht verstehe, habe das RTC-Modul jetzt wieder mit meiner ursprünglichen Schaltung, Temp.Sensoren, 1Wire Temp Sensoren, LCD-Keypad, EthernetModul und der Time-Biblo. in Betrieb. Da steht die Zeit zum Anfang auf u.a. Jahr 2045 und wird aber von Anfang an weiter gezählt Zwar ein falscher Wert, aber ein theoretisch möglicher Wert. Nicht so wie dieses 165.165....

Vielen Dank für die Unterstützung!

Gruß
Mega

Die 165 sind erklärlich:

Die eigentliche Übertragung liefert 0xFF Schrott, das wird bei DS1307 als zwei BCD - Ziffern interprtiert und ergibt also 15*10+15.

Da das EEPROM gleich zu gehen scheint, tippe ich fast auch auf den RTC-Chip.
Nur dass er ein paar Minuten nach Spannungswiederkehr geht, ist merkwürdig ... so lange Zeiten kriegt man nicht mit "normalen" RC Kombinationen hin. Aber was könnte noch an deiner Batterie / Vcc faul sein, dass zwar die Speicherung der Uhrzeit geht, aber eine Kommunikation mit dem I2C Master nicht gemacht wird.

Das Datenblatt von Maxim schreibt bei VBAT:

The nominal power-fail trip point (VPF) voltage at which access to the RTC and user RAM is denied is set by the internal
circuitry as 1.25 x VBAT nominal.

Und bei Vcc

When voltage is applied within normal limits, the device is fully accessible and data can be written and read. When a backup supply is connected to the device and VCC is below VTP, read and writes are inhibited. However, the timekeeping function continues unaffected by the lower input voltage.

Ist denn dein Vcc <= 3.75V, bis deine LIR-Batterie nach ein paar Minuten nicht mehr nachgeladen wird und Vcc im normalen Arbeitbereich > 4.5V ist ???

michael_x:
Die 165 sind erklärlich:

Die eigentliche Übertragung liefert 0xFF Schrott, das wird bei DS1307 als zwei BCD - Ziffern interprtiert und ergibt also 15*10+15.

Da das EEPROM gleich zu gehen scheint, tippe ich fast auch auf den RTC-Chip.
Nur dass er ein paar Minuten nach Spannungswiederkehr geht, ist merkwürdig ... so lange Zeiten kriegt man nicht mit "normalen" RC Kombinationen hin. Aber was könnte noch an deiner Batterie / Vcc faul sein, dass zwar die Speicherung der Uhrzeit geht, aber eine Kommunikation mit dem I2C Master nicht gemacht wird.

Ist denn dein Vcc <= 3.75V, bis deine LIR-Batterie nach ein paar Minuten nicht mehr nachgeladen wird und Vcc im normalen Arbeitbereich > 4.5V ist ???

Danke für die 165er Erläuterung, wieder was dazu gelernt!
Mit der Spannung habe ich allerdings nicht verstanden, die Vcc beträgt bei USB-Anschluss 5 V, ohne USB messe ich am Batterie-Pin 3,1V, das macht dann etwa 3,8V mit dem 1,25 Multiplikator für Vcc. Das sollte doch reichen, allerdings traue ich mir nicht wirklich zu, direkt am Chip zu messen.
Geladen wird doch die Batterie nicht?!

Zwischenzeitlich hatte ich auch eine neue Batterie ausprobiert, ändert sich aber nichts.

Gruß
Mega

allerdings traue ich mir nicht wirklich zu, direkt am Chip zu messen.

Wäre ja auch nur für die Neugier: Ob der Chip oder das Modul kaputt ist, macht in Praxis keinen Unterschied.

Der Spannungsbereich mit Vcc < 3.8V wäre die einzige Erklärung für das Verhalten, die mir z.Zt. einfällt: DS1307 verweigert die Kommunikation "by design". Sobald die Spannung größer wird, geht's los.

Und eine LIR2032 ist eine aufladbare Batterie (3.6V). Das ist das einzige Bauteil in dem Modul, was für Spannungsänderungen in solch langem Zeitraum in Frage kommt.
Der vermutlich gleiche Modul "Tiny RTC" wird auch gern mit CR2032 (3V) - Batterie vertickt, aber wenn der Schaltplan den ich gefunden habe stimmt, wird die Batterie von Vcc geladen. Sollte Vcc aber eigentlich nicht so weit in die Knie zwingen, da ja eine Diode und ein 200 Ohm Widerstand dazwischen sind.

Zuerst mal ist zu kontrollieren ob das Schaltbild der vorhandenen Hardware entspricht oder ob einige Bauteile nicht vorhanden / nicht bestückt sind.
Was mir auf dem Schaltbild komisch vorkommt ist R7 zwischen VCC und X2 (bzw bei fehlender Versorungsspannung nimmt VCC Massepotential an) . Der kann definitiv den Quarzoszyllator stören, könnte aber im schlimmsten Fall den Osyillator anhalten oder in einer anderen Resonanzfrequenz (schneller) schwingen lassen.
Im DS1307 Schaltungsvorschlag im Datenblatt ist der Widerstand nicht vorhanden. http://datasheets.maximintegrated.com/en/ds/DS1307.pdf

Viele Grüße Uwe

uwefed:
Zuerst mal ist zu kontrollieren ob das Schaltbild der vorhandenen Hardware entspricht oder ob einige Bauteile nicht vorhanden / nicht bestückt sind.
Was mir auf dem Schaltbild komisch vorkommt ist R7 zwischen VCC und X2 (bzw bei fehlender Versorungsspannung nimmt VCC Massepotential an) . Der kann definitiv den Quarzoszyllator stören, könnte aber im schlimmsten Fall den Osyillator anhalten oder in einer anderen Resonanzfrequenz (schneller) schwingen lassen.
Im DS1307 Schaltungsvorschlag im Datenblatt ist der Widerstand nicht vorhanden. http://datasheets.maximintegrated.com/en/ds/DS1307.pdf

Und auf den TinyRTC Platinen ist der Widerstand auch nicht vorhanden:

(R7 oberhalb des Schwingquarzes zwar beschriftet aber nicht bestückt.)

jurs:
Und auf den TinyRTC Platinen ist der Widerstand auch nicht vorhanden:
http://www.emartee.com/Images/websites/emartee.com/back-1.JPG
(R7 oberhalb des Schwingquarzes zwar beschriftet aber nicht bestückt.)

Da bin ich ja beruhigt. 8)
Grüße Uwe

Hallo,

R7 ist der einzige Widerstand der nicht bestückt ist. Wo genau müsste ich messen? Am DS1307 Chip Vcc Pin?

Gruß
Mega

GoMega:
Hallo,

R7 ist der einzige Widerstand der nicht bestückt ist. Wo genau müsste ich messen? Am DS1307 Chip Vcc Pin?

Gruß
Mega

Es ist richtig daß R7 fehlt.
Grüße Uwe

Da gibt es doch tatsächlich leicht unterschiedliche "Tiny RTC". Kann man sich noch nicht mal mehr auf die Chinesen verlassen, dass ein Design einfach haargenau nachgebaut wird. Hab mir im April so ein Teil ( incl. überflüssigem EEPROM, mit CR2032 Batterie und Diode / 200 Ohm Widerstand ) kommen lassen. Es heisst "Tiny RTC Design by JQT", hat -unbestückt- 3 Löcher für den DS18B20 und Platz für einen Pullup dafür, aber kein R7.

Ist es eigentlich gut, wenn eine normale CR2032 Lithium-Batterie permanent mit ca. 5 mA "geladen" wird ?

michael_x:
Ist es eigentlich gut, wenn eine normale CR2032 Lithium-Batterie permanent mit ca. 5 mA "geladen" wird ?

Nein, ist ganz schlecht. Kann explodieren. Entweder LIR2032 oder Ladeschaltung deaktivieren ( Widerstand oder Diode auslöten oder Leiterbahn unterbrechen).
Grüße Uwe

Danke, bisher ging alles gut.

uwefed:

GoMega:
Hallo,

R7 ist der einzige Widerstand der nicht bestückt ist. Wo genau müsste ich messen? Am DS1307 Chip Vcc Pin?

Gruß
Mega

Es ist richtig daß R7 fehlt.
Grüße Uwe

Und wo genau muss ich nun messen :roll_eyes:?

Edit:
Habe jetzt am PIN 4 und 8 vom DS1307 gemesse, da liegen von Anfang an 4,7 Volt, auch wenn die 165... ausegeben werden, wenn die Ausgabe dann korrekt ist, ändert sich auch nichts 4,7 Volt.