Forum: Mikrocontroller und Digitale Elektronik RTC DS3231 (EOSC) Uhrzeit läuft nicht weiter, nur mit Knopfzelle


von Frank O. (frank_o)


Lesenswert?

Hallo Forum!
Ich hatte mir bei Ali ein paar RTCs bestellt.
Auf dem Uno Rev.4 läuft auch schön die Laufschrift und die Uhrzeit wird 
korrekt angezeigt.
Allerdings läuft die Uhr nicht weiter, wenn nur noch über die Knopfzelle 
Strom kommt. Am DS3231 kommt 3.3V an (Pin 13 u. 14 gemessen).
Den Widerstand für die Ladeschaltung habe ich entfernt.
Statt Knopfzelle hatte ich auch das Labornetzteil dran.
1
//**************************************************************************************
2
  Wire.beginTransmission(0x68);
3
  Wire.write(0xF);   // Address the Status register
4
  Wire.write(0x00);  //  Zero the Status register
5
  Wire.endTransmission();
6
  Wire.beginTransmission(0x68);
7
  Wire.write(0xE);         // Control register
8
  Wire.write(0b00011100);  // Zero Control register
9
  Wire.endTransmission();
10
  // ***************************************************************************************/

Wenn ich mir mit "Serial.println(0xE);" das Register anzeigen lasse, 
bekomme ich "14" angezeigt.
Was ist dann dort eingestellt? Vorher wurde dort 20 angezeigt.
Wenn ich das zum umrechnen in einen Rechner eingebe, dann bleibt das MSB 
immer 1.
Erstmal wüsste ich gerne was diese "14" für ein Wert ist und kann man 
den auch binär ausgeben?
Und weiter wüsste ich gerne, wie ich das auf 0 (Null) einstellen kann?

Alles was ich im Netz gefunden habe, führte nicht zum Ziel.
Seit gestern Abend hatte ich mich damit befasst und wirklich lange 
gesucht.

von Thomas W. (Gast)


Lesenswert?


von Frank O. (frank_o)


Lesenswert?

Dass da da steht, weiß ich. Habe ja auch (zumindest hoffe und glaube ich 
das) es schon im Programm umgestellt.

von Nils S. (wall-e)


Lesenswert?

Frank O. schrieb:

> Wenn ich mir mit "Serial.println(0xE);" das Register anzeigen lasse,
> bekomme ich "14" angezeigt.

Serial.println(0xE) zeigt dir nicht den Registerinhalt an sondern die 
Dezimaldarstellung der Hexadezimalzahl "0xE" . Und das ist Dezimal 14.

von Frank O. (frank_o)


Lesenswert?

Nils S. schrieb:
> Serial.println(0xE) zeigt dir nicht den Registerinhalt an sondern die
> Dezimaldarstellung der Hexadezimalzahl "0xE" . Und das ist Dezimal 14.

Danke erstmal dafür! So einfach konnte ich mir das auch nicht 
vorstellen.
Weißt du denn wie man das Register ausliest?

von Falk B. (falk)


Lesenswert?

Um Zahlen mit der Arduino-Umgebung in hex oder binär auszugeben, muss 
man das so machen.

https://www.arduino.cc/reference/en/language/functions/communication/serial/print/

von Nils S. (wall-e)


Lesenswert?

Seite 16 im Datenblatt. Der Ablauf ist dort sehr ausführlich 
beschrieben.

Beitrag #7696719 wurde vom Autor gelöscht.
von Frank O. (frank_o)


Lesenswert?

Was ich oben schon an Code eingefügt habe, hatte ich jetzt noch einmal 
in binär geschrieben und die 0, für schreiben, angehängt.
Keine Fehlermeldung, aber die Uhr bleibt weiter stehen, sobald die 
Spannung weg ist.
Das liest man ganz oft, wenn man nach diesem Thema sucht. Leider liest 
man keine anderen Lösungen, als die, die ich schon ausprobiert habe.
Ist aber auch nicht so wichtig.
Habe da eh schon eine Menge Zeit mit verschwendet.
Danke!

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Frank O. schrieb:
> Das liest man ganz oft, wenn man nach diesem Thema sucht. Leider liest
> man keine anderen Lösungen, als die, die ich schon ausprobiert habe.

Siehe Anhang. Es ist das Modul hier, es hängt direkt am Arduino Uno.

https://www.reichelt.de/raspberry-pi-real-time-clock-modul-rtc-ds3231-rpi-rtc-clock-p224214.html?&trstct=pol_0&nbc=1

Und läuft schon seit ein paar Monaten nur mit Pufferbatterie immer noch 
VERDAMMT genau!

von Frank O. (frank_o)



Lesenswert?

Falk, vielleicht magst du ja mal drauf schauen.
Jeder andere selbstverständlich auch.

Das ist im Grunde eine Spielerei mit dem Uno R4 Bord.
Da zeigt die Matrix einmal in Laufschrift im Setup "Foldi" an.

Im Loop kommt dann immer "Ich habe jetzt Pause!", dann der Wochentag, 
gefolgt von Datum und Uhrzeit.

von Frank O. (frank_o)


Lesenswert?

Falk B. schrieb:

> Siehe Anhang. Es ist das Modul hier, es hängt direkt am Arduino Uno.
>
Wo ist denn da die Pufferbatterie?
Pin 13 Als Spannung für die Uhr zu nehmen, ist auch nicht schlecht. :-)
Wäre ich jetzt nicht drauf gekommen. Gute Idee.

von Falk B. (falk)


Lesenswert?

Frank O. schrieb:
> Falk, vielleicht magst du ja mal drauf schauen.
> Jeder andere selbstverständlich auch.

Naja, sooo viel kann man bei dem IC nicht falsch machen. Bestenfalls das 
EOSC Bit setzen, dann bleibt der Oszillator stehen, wenn die normale 
Versrogung weggeht. Das kann irgendwo aus Versehen passieren. Also mal 
Register 0E auslesen und den Wert anzeigen lassen. Er muss kleiner 128 
sein, nur das ist das Bit gelöscht und der oszillator läuft im 
Batteriebetrieb.
Im einfachsten Fall schreibt man 0 ins Register 0xE.
Du benutzt eine Bibliothek und die muss sich darum kümmern. Man kann 
aber auch mal einen "manuellen" Zugriff machen. Wie das geht, steht in 
meinem Programm.

writeRegister(0xE, 0);

Mit der im Moment auskommentierten Funktion dump_regs() kann man sich 
alle Register anzeigen lassen.

von Falk B. (falk)


Lesenswert?

Frank O. schrieb:
>> Siehe Anhang. Es ist das Modul hier, es hängt direkt am Arduino Uno.
>>
> Wo ist denn da die Pufferbatterie?

Unter der Platine, zwischen Lochraster und Träger, sieht man nicht auf 
dem Bild.

von Rainer W. (rawi)


Lesenswert?

Frank O. schrieb:
> Keine Fehlermeldung, aber die Uhr bleibt weiter stehen, sobald die
> Spannung weg ist.

Kommt der 32kHz Takt weiter, wenn du VCC weg nimmst?

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Rainer W. schrieb:
> Kommt der 32kHz Takt weiter, wenn du VCC weg nimmst?

Habe ich noch nicht gemessen. Werde ich morgen mal machen.

von Frank O. (frank_o)


Lesenswert?

Moin!
Gleich muss ich erstmal weg. Ich habe jetzt von den restlichen 
DS3231-Modulen  den Widerstand für die Ladeschaltung runter gemacht und 
werde alle probieren.
Was man so liest und vor allem laut Datenblatt, muss der IC selbst 
erkennen welche Spannung anliegt.
Ich werde mir die Module einmal genau ansehen.
Leider habe ich bisher keinen Schaltplan dazu gefunden. Wenn also jemand 
einen Schaltplan hat, wäre es schön, wenn er den hier verlinken würde.
Vielen Dank dafür!

Auch wenn ich bisher keine Uhr gebraucht habe und auch jetzt nicht 
brauche, nervt es gewaltig, dass das nicht so funktioniert.
Das alles sind eigentlich nur Programmierübungen, weil ich in meinem 
eigentlichen Projekt feststecke. Ich muss erstmal wieder besser 
programmieren können. Und deshalb schaue ich mir verschiedenen Code an, 
nehme diese Sachen als Vorlage für eigenen Code, damit ich das alles 
besser verstehe.
Mit anderen Worten, mein Leben hängt nicht von diesem Modul ab.
Aber schön wäre es schon, es in den Griff zu bekommen.

von Frank O. (frank_o)


Lesenswert?

Falk B. schrieb:
> writeRegister(0xE, 0);
>
> Mit der im Moment auskommentierten Funktion dump_regs() kann man sich
> alle Register anzeigen lassen.

Vielen Dank! Das werde ich heute Mittag auf jeden Fall versuchen.

von Frank O. (frank_o)


Lesenswert?

Problem gelöst!

Bei der Bundeswehr hatte ich Hubschrauber repariert und wenn die Piloten 
zurück kamen, gab es dann immer ein Debriefing. Wenn wir die Fehler, die 
uns die Piloten erzählten, nicht nachvollziehen konnten, also nichts 
kaputt war,
dann sagten wir immer: "Der Fehler lag zwischen den Kopfhörern!"

In diesem Fall auch.

Die Module funktionieren richtig, aber mein Verständnis für die 
Programmierung noch nicht so ganz.
Aber jetzt habe ich den Fehler gefunden.
Vielen Dank an alle!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Frank O. schrieb:
> Aber jetzt habe ich den Fehler gefunden.
Nur, falls sich da später mal einer dafür interessiert: was war der 
Fehler? Was musstest du ändern?

von Frank O. (frank_o)


Lesenswert?

Ich muss jetzt zum Arzt.
Hätte ich später noch ausführlich geschrieben.

Im Setup habe ich doch die Zeit gesetzt.
Mit jedem neuen Anschließen des Arduinos, setze ich automatisch die 
Zeit, da natürlich keine aktuelle Zeit kommt, nimmt er immer die letzte 
Zeit, der letzten Einstellung.

von Rainer W. (rawi)


Lesenswert?

Frank O. schrieb:
> Leider habe ich bisher keinen Schaltplan dazu gefunden.

Suchmaschinen wurden schon erfunden. Solange hier keiner weiß, welches 
Modul genau du besitzt, wirst du wohl selber suchen und ihn dir ggf. 
selber zeichnen müssen.

von Falk B. (falk)


Lesenswert?

Rainer W. schrieb:
> Suchmaschinen wurden schon erfunden. Solange hier keiner weiß, welches
> Modul genau du besitzt, wirst du wohl selber suchen und ihn dir ggf.
> selber zeichnen müssen.

Das Problem ist längst gelöst.

von Rainer W. (rawi)


Lesenswert?

Falk B. schrieb:
> Das Problem ist längst gelöst.

Das ändert aber nichts an der Klage über den fehlenden Schaltplan zu 
einem hier unbekannten Modul.

von Frank O. (frank_o)


Lesenswert?

Wenn ich wüsste wie man die nennt.
Das sind die Teile, die es haufenweise bei eBay, Ali und Amazon für ein 
paar Euro gibt. Diese Module mit dem EEPROM drauf.
https://de.aliexpress.com/item/1005006685897934.html

von Rainer W. (rawi)


Lesenswert?

Frank O. schrieb:
> Wenn ich wüsste wie man die nennt.
> ...

> https://de.aliexpress.com/item/1005006685897934.html

Geht doch - und so einfach 😄
Nachteil von so einem Angebotslink ist, dass der schon bald Geschichte 
sein kann. Ein Bild hier im Forum hält sich so lange, wie der Thread.
Aber die HW war ja nun doch nicht Schuld ...

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Rainer W. schrieb:
> Aber die HW war ja nun doch nicht Schuld ...

Nein, war sie nicht.
Ich habe es nicht richtig gemacht.
Ich habe erst ca. Ende Februar wieder angefangen und im Grunde fast bei 
Null.
Aber letztlich habe ich den Fehler dann doch alleine gefunden.

Zur Zeit bin ich noch sehr weit weg, von dort wo ich sein will.
Dass ich hier nicht mehr zum Guru werden kann, ist mir klar. Dafür ist 
die Lebenszeit wohl nicht mehr ausreichend.
Aber das was ich da jetzt gemacht habe, auch wenn es nur eine Spielerei 
ist, sieht schon einmal ganz nett aus und ich bin zufrieden.
Kleine Brötchen schmecken auch, man muss nur mehr davon essen, um satt 
zu werden.

Also nochmal vielen Dank euch allen!
Insbesondere Falk, für seinen Code.

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Kleiner Nachtrag:

Da ich jetzt einiges gelesen habe, wird dieser Fehler bei vielen der 
Grund gewesen sein, dass das nicht richtig funktioniert.

Eigentlich kann man selbst drauf kommen, aber es wäre ein kleiner 
Hinweis in dem Sketch sicher nützlich gewesen.

von Peter D. (peda)


Lesenswert?

Falk B. schrieb:
> Es ist das Modul hier, es hängt direkt am Arduino Uno.
>
> 
https://www.reichelt.de/raspberry-pi-real-time-clock-modul-rtc-ds3231-rpi-rtc-clock-p224214.html?&trstct=pol_0&nbc=1

Was da von Reichelt als Datenblatt bezeichnet wird, ist ja eine 
bodenlose Frechheit.
Kein Schaltplan und nichtmal die Belegung der 5 Pins steht drin.

https://cdn-reichelt.de/documents/datenblatt/C300/DS3231-REAL-TIME-CLOCK-MODUL-FUER-RASPBERRY-PI.pdf

von Falk B. (falk)


Lesenswert?

Frank O. schrieb:
> Eigentlich kann man selbst drauf kommen, aber es wäre ein kleiner
> Hinweis in dem Sketch sicher nützlich gewesen.

Wer lesen kann, ist klar im Vorteil.
1
  // When time needs to be set on a new device, or after a power loss, the
2
  // following line sets the RTC to the date & time this sketch was compiled
3
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
4
  // This line sets the RTC with an explicit date & time, for example to set
5
  // January 21, 2014 at 3am you would call:
6
  // rtc.adjust(DateTime(2024, 7, 04, 10, 0, 0));

von Klaus F. (klaus27f)


Lesenswert?

Frank O. schrieb:
> Diese Module mit dem EEPROM drauf.
> https://de.aliexpress.com/item/1005006685897934.html


Das grosse Zauberwort für die Schaltplansuche heißt: schematics
Somit GOOGLE:   ds3231 at24c32 clock module schematics

1. Treffer
https://circuitdigest.com/microcontroller-projects/interfacing-ds3231-rtc-with-arduino-and-diy-digital-clock

von Gerhard O. (gerhard_)


Lesenswert?

Frank O. schrieb:
> Moin!
> Gleich muss ich erstmal weg. Ich habe jetzt von den restlichen
> DS3231-Modulen  den Widerstand für die Ladeschaltung runter gemacht und
> werde alle probieren.
> Was man so liest und vor allem laut Datenblatt, muss der IC selbst
> erkennen welche Spannung anliegt.
> Ich werde mir die Module einmal genau ansehen.
> Leider habe ich bisher keinen Schaltplan dazu gefunden. Wenn also jemand
> einen Schaltplan hat, wäre es schön, wenn er den hier verlinken würde.
> Vielen Dank dafür!
>
> Auch wenn ich bisher keine Uhr gebraucht habe und auch jetzt nicht
> brauche, nervt es gewaltig, dass das nicht so funktioniert.
> Das alles sind eigentlich nur Programmierübungen, weil ich in meinem
> eigentlichen Projekt feststecke. Ich muss erstmal wieder besser
> programmieren können. Und deshalb schaue ich mir verschiedenen Code an,
> nehme diese Sachen als Vorlage für eigenen Code, damit ich das alles
> besser verstehe.
> Mit anderen Worten, mein Leben hängt nicht von diesem Modul ab.
> Aber schön wäre es schon, es in den Griff zu bekommen.

Hallo Frank,

Ich fand diese Seite hier mit nützlicher Information:

https://circuitdigest.com/microcontroller-projects/interfacing-ds3231-rtc-with-arduino-and-diy-digital-clock

Zuusätzlich möchte ich davor warnen, RTC Module mit dem DS3231M zu 
bekommen. Man sollte nur die DS3231SN Module wählen. Ich bestellte 
letztes Jahr Module mit SN spezifiziert. Erhielt aber die M Versionen. 
Alle diese Module hatten grottenschlechte Genauigkeit und konnten auch 
mit dem AGO Register nicht kalibriert werden. Ich reklamierte und 
erhielt dann die gewünschten Module. Diese funktionierten 
aussergewöhnlich gut, mit AGO=0 Genauigkeit von 1s/m.

Also aufpassen

Normalerweise funktioniert die automatische Backup Umschaltung immer 
ohne Probleme.

Probier mal das dort gelistete Programm aus zum Vergleich ob das Problem 
dann auch dort auftritt.

Auch ein Schaltbild findest Du dort.

Gruß,
Gerhard

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Klaus F. schrieb:
> heißt: schematics

Danke Klaus!

von Frank O. (frank_o)


Lesenswert?

Falk B. schrieb:
> // When time needs to be set on a new device, or after a power loss,
> the
>   // following line sets the RTC to the date & time this sketch was
> compiled

Wer liest schon das Kleingedruckte? :-)
Wie wahr, du hast absolut recht!

von Frank O. (frank_o)


Lesenswert?

Gerhard O. schrieb:
> Zuusätzlich möchte ich davor warnen, RTC Module mit dem DS3231M zu
> bekommen. Man sollte nur die DS3231SN Module wählen. Ich bestellte
> letztes Jahr Module mit SN spezifiziert. Erhielt aber die M Versionen.
> Alle diese Module hatten grottenschlechte Genauigkeit und konnten auch
> mit dem AGO Register nicht kalibriert werden. Ich reklamierte und
> erhielt dann die gewünschten Module. Diese funktionierten
> aussergewöhnlich gut, mit AGO=0 Genauigkeit von 1s/m.

Hallo Gerhard!

Schön von dir zu hören.
Zu deiner Mail: Da war ich sicher die falsche Person dafür. Hatte mich 
dort einmal eingeklinkt, aber hoffnungslos.

Das was du da gerade schriebst, das stelle ich hier gerade fest.
Die eine Uhr haut ab wie Schmitz Katze. Die nächste bummelt rum.
Aber auch die Atomuhr die ich mir auf dem Laptop anzeigen lies, lief 
zwar, war aber erst nach dem Aktualisieren der Seite wieder genau.
Man kann sich da schon einen Wolf dran basteln.

Gibt es bessere Module, von anderen Anbietern?

von Frank O. (frank_o)


Lesenswert?

Gerhard O. schrieb:
> Man sollte nur die DS3231SN Module wählen.

Gerade bestellt.
Danke für den Hinweis!
Vor allem kosten die nicht mehr.

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

Frank O. schrieb:
> Gerhard O. schrieb:
>> Man sollte nur die DS3231SN Module wählen.
>
> Gerade bestellt.
> Danke für den Hinweis!
> Vor allem kosten die nicht mehr.

Warte mal ab, was Du bekommst: Ich habe hier ein DS3231N(!) (gibt es 
nicht, funktioniert auch nicht).

War billig.

von Frank O. (frank_o)


Lesenswert?

Thomas W. schrieb:
> (gibt es
> nicht, funktioniert auch nicht).

Hahaha!

Ich habe die dort bestellt:
https://www.christians-shop.de/DS3231SN-Hochpraezises-Echtzeit-Modul-Real-Time-Clock-mit-I2C-Bus?gad_source=1&gclid=Cj0KCQjws560BhCuARIsAHMqE0HBOvUEKphaVc93jLiMUM77uEhszkkm6HrsX6MM87OL6bWqGCd7ciYaAkeMEALw_wcB

Deutscher Anbieter:

Christians Technikshop GmbH
Jöllenbecker Str. 180
32130 Enger

Ich weiß jetzt ja wo der wohnt ... (ich schreib mal lieber dabei, dass 
das ein Scherz war)

von Thomas W. (Gast)


Lesenswert?

Frank O. schrieb:
> Thomas W. schrieb:
>> (gibt es
>> nicht, funktioniert auch nicht).
>
> Hahaha!
>
> Ich habe die dort bestellt:
> 
https://www.christians-shop.de/DS3231SN-Hochpraezises-Echtzeit-Modul-Real-Time-Clock-mit-I2C-Bus

Hast Du die Webseite gelesen?
1
>  hochpräzises Echtzeit-Modul mit DS3231SN Chip
bischen weiter auf der Seite:
1
DS3231M-Chip mit präziser Echtzeit- und Datumsbestimmung (höchstens +-0,432 sek. Abweichung pro Tag)

Beinhart!

von Frank O. (frank_o)


Lesenswert?

Thomas W. schrieb:
> Hast Du die Webseite gelesen?

Ne, weil Gerhard geschrieben hat, dass die gut sind.

Gerhard O. schrieb:
> Diese funktionierten
> aussergewöhnlich gut, mit AGO=0 Genauigkeit von 1s/m.

von Rolf (rolf22)


Lesenswert?

Gerhard O. schrieb:
> die M Versionen. Alle diese Module hatten grottenschlechte Genauigkeit

Die 'M'-Versionen sind ja auch ganz andere Bausteine, die haben keinen 
Quarz-, sondern einen MEMS-Oszillator.

von Gerhard O. (gerhard_)


Lesenswert?

Nachtrag,

Die irrtümlich erhaltenen DS3231M waren allesamt unbrauchbar. Keine 
einzige ließ sich kalibrieren.

Ich bekam mal N Versionen. Die waren auch sehr schlecht.

Die als Ersatz geschickten SN Versionen waren dagegen absolut stellar. 
Wie es manchmal gehen kann.

Meine Nixie Uhr, die eines der neuen Module drin hat, ist nun nach 9 
Monaten nur 15s falsch. Man kann sich nicht beklagen.

von Gerhard O. (gerhard_)


Lesenswert?

Rolf schrieb:
> Gerhard O. schrieb:
>> die M Versionen. Alle diese Module hatten grottenschlechte Genauigkeit
>
> Die 'M'-Versionen sind ja auch ganz andere Bausteine, die haben keinen
> Quarz-, sondern einen MEMS-Oszillator.

Trotzdem sollten sie am Tag nicht um viele s falsch gehen.

Ich habe zwei Original Maxim Samples im SO-8 Format von den MEMS 
Versionen und die laufen beide einwandfrei.

von Gerhard O. (gerhard_)


Lesenswert?

Thomas W. schrieb:
> Frank O. schrieb:
>> Gerhard O. schrieb:
>>> Man sollte nur die DS3231SN Module wählen.
>>
>> Gerade bestellt.
>> Danke für den Hinweis!
>> Vor allem kosten die nicht mehr.
>
> Warte mal ab, was Du bekommst: Ich habe hier ein DS3231N(!) (gibt es
> nicht, funktioniert auch nicht).
>
> War billig.

Ja. Da muß man aufpassen. Obwohl ich nur SN Versionen bestelle, kriegt 
man manchmal alles andere. Da muß man reklamieren.

von Rolf (rolf22)


Lesenswert?

Frank O. schrieb:
> Hahaha!

> Ich habe die dort bestellt:
> https://www.christians-shop.de ...

Ist wohl ein Tippfehler auf der Webseite. Im Text steht dort nämlich 
auch:
"DS3231M-Chip mit präziser Echtzeit- und Datumsbestimmung (höchstens 
+-0,432 sek. Abweichung pro Tag)"

Die 0,432 s stehen übrigens im M-Datenblatt ...

von Thomas W. (Gast)


Lesenswert?

Gerhard O. schrieb:

> Ich bekam mal N Versionen. Die waren auch sehr schlecht.

Da es im Datenblatt kein N gibt, gehe ich mal davon aus, dass das 
DS3231N(!) abgeschliffen und neu gelabelte Was-Auch-Immer sein (M oder 
N, nur ein Strich, kann nicht so ein grosser Unterschied sein)

Kleines Anekdoetchen:

Segor liefert diese dummen DS3231-Platinen fuer 6.50EUR, mit der 
Beschreibung "RTC DS3231+24C32 I2C 5V mit Akku! (LIR2032)". Willst Du 
den DS3231SN von Dallas haben, ruft Segor ganz entspannt 15.90EUR auf.

Das ist auch bei BerryBase das gleiche: China-Ware auch ca. 5EUR, DS3231 
mit Herkunftsnachweis ca. 15 - 20EUR.

Ist halt leider das Risiko wenn man nicht beim Distributor kauft.

von Gerhard O. (gerhard_)


Lesenswert?

Gibt es bessere Module, von anderen Anbietern?

Naja. Bei Watterott, Sparkfun oder Adafruit und ähnlich renommierte 
Händlern, hätte ich keinerlei Bedenken. In der eBucht muß man aber 
aufpassen; da ist alles möglich und man hat keine Ahnung was da 
tatsächlich geliefert wird.

Vor vielen Jahren bestellte ich für meine Wetterstation in der Bucht 
DS3234 SPI RTCs Module. Die waren grottenschlecht und akkumulierten in 
zwei Wochen über 90s an Abweichung. Dann bestellte ich von Digikey. 
Dieser DS3234 lief seit 2009 mit nur 90s Abweichung und ist Temperaturen 
von -48 bis +50C ausgesetzt. Ich habe die RTC absichtlich seit der 
Installation in 2009 nie mehr gestellt, weil ich die Langzeit Performanz 
beobachten wollte, wenn reale Temperaturschwankungen im Spiel sind. Das 
AGO ist auf Null eingestellt.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Klaus F. schrieb:
> Frank O. schrieb:
>> Diese Module mit dem EEPROM drauf.
>> https://de.aliexpress.com/item/1005006685897934.html
>
> Das grosse Zauberwort für die Schaltplansuche heißt: schematics
> Somit GOOGLE:   ds3231 at24c32 clock module schematics
>
> 1. Treffer
> 
https://circuitdigest.com/microcontroller-projects/interfacing-ds3231-rtc-with-arduino-and-diy-digital-clock

Da hatten wir zur gleichen Zeit denselben Einfall:-)

von Frank O. (frank_o)


Lesenswert?

Rolf schrieb:
> Ist wohl ein Tippfehler auf der Webseite.

Danke!

Werde gleich mal eine Mail schreiben.

von Falk B. (falk)


Lesenswert?

Rolf schrieb:
> "DS3231M-Chip mit präziser Echtzeit- und Datumsbestimmung (höchstens
> +-0,432 sek. Abweichung pro Tag)"
>
> Die 0,432 s stehen übrigens im M-Datenblatt ...

Das sind "satte" 5ppm. Macht 13,39s / Monat bzw. 160,7s/Jahr. MAXIMAL!

von Andreas S. (bastelmax)


Lesenswert?

Suche mal nach MAX31328 - die sind günstiger als die DS3231 -
allerdings nur im LGA Gehäuse :
https://www.analog.com/media/en/technical-documentation/data-sheets/max31328.pdf
Die Register sind identisch zum DS3231 - siehe o.g. Datenblatt.

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Andreas S. schrieb:
> die sind günstiger als die DS3231 -

Ich habe gerade gesucht und die Module sind definitiv deutlich teurer.

von Andreas S. (bastelmax)


Lesenswert?

Nicht die Module - nur der Chip selbst !
In etwa 4 Euro gegenüber 10 Euro.
Allerdings muss man mit LGA umgehen können.

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Andreas S. schrieb:
> Allerdings muss man mit LGA umgehen können.

Bisher habe ich immer nur Lochstreifenraster genommen. Bei den Preisen 
für die Platinen (hab das in einem Video von Edi's Techlab gesehen) ist 
es sicher wieder etwas, das man auch mal selbst machen kann.

Mit Heißluft und Lötpaste sollte MAX31328 aber kein Problem sein.

Btw: Die Uhr läuft seit heute Mittag sekundengenau.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Thomas W. schrieb:
> Frank O. schrieb:
>> Gerhard O. schrieb:
>>> Man sollte nur die DS3231SN Module wählen.
>>
>> Gerade bestellt.
>> Danke für den Hinweis!
>> Vor allem kosten die nicht mehr.
>
> Warte mal ab, was Du bekommst: Ich habe hier ein DS3231N(!) (gibt es
> nicht, funktioniert auch nicht).
>
> War billig.

Die N Version wird hier bei Digikey angeboten:

https://www.digikey.com.au/en/products/detail/analog-devices-inc-maxim-integrated/DS3231N-DIP/12602317

Ich meinte aber "S" und irrtümlich aber nicht "N".

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Gerhard O. schrieb:
> Ich meinte aber "S" und irrtümlich aber nicht "N".

Ich habe die dort bestellt:
https://www.christians-shop.de/DS3231SN-Hochpraezises-Echtzeit-Modul-Real-Time-Clock-mit-I2C-Bus?gad_source=1&gclid=Cj0KCQjws560BhCuARIsAHMqE0HBOvUEKphaVc93jLiMUM77uEhszkkm6HrsX6MM87OL6bWqGCd7ciYaAkeMEALw_wcB

Weiter oben steht das und da haben schon einige gemeint, dass aber im 
Text steht, dass das "M" ist.

Hatte noch direkt eine Nachricht hinterher geschickt.
Abwarten.
Bist jetzt lief (ich habe gerade noch die Temperatur rein gebaut) 
sekundengenau. Tut er wohl immer noch, aber bis das jetzt angezeigt 
wird, gehen 5 Sekunden verloren.
So allmählich und durch solche Übungen, komme ich wieder in die 
Programmierung rein.

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Im Moment habe ich da eigentlich keinen Bock drauf, aber über kurz oder 
lang werde ich die interne RTC auch mal testen.
Warum die nicht gleich hinten auch noch einen Batteriehalter drauf 
gebaut haben? Kostet doch nur ein paar Cent.

von Frank O. (frank_o)


Lesenswert?

Falk B. schrieb:
> Siehe Anhang.

Inspiriert durch deine Schaltung, wollte ich beim Uno R4 WiFi den AREF 
und Grnd, neben den I2C Anschlüssen nehmen.
Bei den anderen Arduinos waren die immer mit +5V verbunden. Hier nicht. 
Hier sitzt da noch ein 5,1K Widerstand drin und ein Ferrit.
Jedenfalls, wenn man den belastet, dann bleibt der Controller stehen.

Nur mal so am Rande.

von Frank O. (frank_o)


Lesenswert?

Frank O. schrieb:
> Ich habe die dort bestellt:
> 
https://www.christians-shop.de/DS3231SN-Hochpraezises-Echtzeit-Modul-Real-Time-Clock-mit-I2C-Bus?gad_source=1&gclid=Cj0KCQjws560BhCuARIsAHMqE0HBOvUEKphaVc93jLiMUM77uEhszkkm6HrsX6MM87OL6bWqGCd7ciYaAkeMEALw_wcB

Die sind jetzt angekommen.
Tatsächlich ist eins dabei, dass ein M hinten dran stehen hat.
Werde ich reklamieren.

Aber noch etwas zur laufenden Uhr. Ich hatte sie jetzt ein paar Tage nur 
über Batterie laufen und dann den Arduino angeschlossen.
Zunächst stimmte die Uhrzeit noch, aber irgendwann war es dann wieder 
das Jahr 2000.
Also sind diese Module nicht sehr zuverlässig. Auch wenn es zunächst ein 
Programmfehler war, sind die vorher festgestellten Unzuverlässigkeiten 
doch nicht nur auf mich zurückzuführen.

von Thomas W. (Gast)


Lesenswert?

Frank O. schrieb:
> Frank O. schrieb:
>> Ich habe die dort bestellt:
>>
> 
https://www.christians-shop.de/DS3231SN-Hochpraezises-Echtzeit-Modul-Real-Time-Clock-mit-I2C-Bus

> Die sind jetzt angekommen.
> Tatsächlich ist eins dabei, dass ein M hinten dran stehen hat.
> Werde ich reklamieren.

Jetzt koennte man sagen: ITYS  (I told you so!)

> Also sind diese Module nicht sehr zuverlässig. Auch wenn es zunächst ein
> Programmfehler war, sind die vorher festgestellten Unzuverlässigkeiten
> doch nicht nur auf mich zurückzuführen.

Das war auch mein Eindruck (aber ich hatte nur ein einziges Modul 
gekauft) und es waren die gleichen Fehler (lassen sich schlecht laden, 
zuruecksetzen bei Power up [und nein, meine SW hatte kein 
Default-Timestamp]).

Gruesse

Th.

von Falk B. (falk)


Lesenswert?

Mein Modul von Reichelt läuft sei ein paar Monaten sehr genau und ohne 
Macken. Hab ich gerade nochmal geprüft.

von Frank O. (frank_o)


Lesenswert?

Danke Falk!

Der Witz ist, wenn du nach dem Datenblatt zuerst VCC anlegst, soll das 
"Enable Oscillator Bit" auf Null gesetzt werden. Dann erst die Batterie 
einsetzen. Ich habe das bei mehreren Modulen ausprobiert. Funktioniert 
nicht.
Aber auch die Register schreiben, wenn der Code stimmt, den ich schon im 
Eingangspost eingefügt hatte, funktioniert nicht. Die Uhren laufen auf 
Batterie nicht weiter.
Alles sehr merkwürdig ...

von Falk B. (falk)


Lesenswert?

Frank O. schrieb:
> Aber auch die Register schreiben, wenn der Code stimmt, den ich schon im
> Eingangspost eingefügt hatte, funktioniert nicht. Die Uhren laufen auf
> Batterie nicht weiter.
> Alles sehr merkwürdig ...

Dann ist es mit hoher Wahrscheinlichkeit ein Softwareproblem.

von Frank O. (frank_o)


Lesenswert?

War es vorher. Dass das Bit nicht geändert wird, was ja durch Anlegen 
der Spannung schon geschehen soll, das ist dann doch eher ein 
Hardwareproblem.
Für heute habe ich keine Lust mehr.
Aber über kurz oder lang werde ich das Schwein schon töten.

: Bearbeitet durch User
von Philipp K. (philipp_k59)


Lesenswert?

Wenn es ein normaler Ds3231 ist, muss das funktionieren.

Ich habe zig Platinen (mit EEprom) und auch einfach nur das IC (10 Stck. 
für 3€ bei Ali)  benutzt und noch nie Probleme gehabt, ja sogar 
abweichungen bei Zimmertemperatur unter 10 Sekunden im Jahr. (Varta 
Industrie Knopfzellen)

Welche Library wird benutzt, auch mal einfach eine DS3231 Library 
Standard ausprobiert, ohne eigenen Code?

von Frank O. (frank_o)


Lesenswert?

Die RTClib von Arduino.
Werde jetzt erstmal messen.
Warum das dann mit ein paar anderen Uhren geklappt hat, können im 
Datenblatt zum DS3231M stehen. Die reden da von einem Prellen beim 
Anschluss an den Strom.

von Peter D. (peda)


Lesenswert?

Der DS3231 und der DS3231M sind 2 verschiedene ICs.
Der DS3231 hat einen Quarzoszillator, der DS3231M aber einen 
MEMS-Oszillator.

MEMS sind mechanisch unempfindlich.
MEMS benötigen eine PLL, um die gewünschte Frequenz zu erzeugen und 
haben daher einen höheren Jitter und Phasenrauschen.
Ab 2% Helium können MEMS Schaden nehmen.

von Frank O. (frank_o)


Lesenswert?

Peter, vielen Dank! Wobei die schreiben, dass die im Wesentlichen gleich 
sind. Die, bei denen ich aktuell Probleme habe, sind die SN-Typen, die 
Gerhard empfohlen hatte.

von Philipp K. (philipp_k59)


Lesenswert?

Vielleicht solltest du mal besser beschreiben was du vorhast.

Nur über VBatt kann man den nicht benutzen, ab da an läuft dies und das 
intern fest bis VCC angelegt ist.

Mir erscheint hier noch irgendetwas unstimmig.

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Sodele!
Der Fehler lag zwischen den Kopfhörern.
Zuerst war die Batterie defekt. Die lagen auch schon ewig rum.
Dann war es wohl einfach zu spät. Man sollte nicht nur etwas 
auskommentieren, man sollte es dann auch auf den Controller übertragen. 
😩

von Thomas W. (Gast)


Lesenswert?

Frank O. schrieb:
> Zuerst war die Batterie defekt. Die lagen auch schon ewig rum.

Auch bei mir hat der LiR 2032 (Akku, LiIon, 45mAh) nach mehreren Tagen 
laden eine Zellspannung von 0.45V. Die lag sicherlich fuenf Jahre in der 
Schaltung, ohne Ladung. Tot.

Werde die "Lade-Elekronik" (eine Diode und ein ganzer Widerstand) 
stillegen und eine CR2032 einbauen. Genauso gut oder schlecht.

Gruesse

von Joachim B. (jar)


Lesenswert?

Thomas W. schrieb:
> Frank O. schrieb:
>> Zuerst war die Batterie defekt. Die lagen auch schon ewig rum.
>
> Auch bei mir hat der LiR 2032 (Akku, LiIon, 45mAh) nach mehreren Tagen
> laden eine Zellspannung von 0.45V. Die lag sicherlich fuenf Jahre in der
> Schaltung, ohne Ladung. Tot.

bei mir 8 Jahre dauerhaft an +5V auch tot.
Ist ja auch klar, jeder Akku hat nur eine begrenzte Lebensdauer, ich 
merkte das erst nach einem 3-stündigen Stromausfall.

von Frank O. (frank_o)


Lesenswert?

Joachim B. schrieb:
> 8 Jahre dauerhaf

Meine Knopfzellen waren nicht gerade fachgerecht gelagert. Dadurch kann 
es schon zu eingen Entladungen gekommen sein und eine gewisse 
Selbstentfaltung ist ja auch da.
Die Köpfe lagen alle wild durcheinander und da können einige auch schon 
》10 Jahre dabei sein.
Wenn die auch (wie die defekte Batterie) zunächst funktionieren, so 
können sie dann, wie in diesen Fall,  relativ plötzlich zusammen 
brechen.
Werde die Tage mal alle ausgepackten Zellen unter Last messen und dann 
aussortieren.
Vielleicht sollte man sich überhaupt einmal einen Tester bauen.

von Frank O. (frank_o)


Lesenswert?

Jetzt lief die Uhr schon eine Weile, da wollte ich das einem Kollegen 
auf der Arbeit zeigen.
Ich klemme das Arduinoboard an seinen Rechner und in dem Moment rutscht 
der Minus raus. Zack - Uhrzeit weg. Obwohl die Batterie in Ordnung ist.
Komischer Effekt.

von Philipp K. (philipp_k59)


Lesenswert?

Frank O. schrieb:
> Obwohl die Batterie in Ordnung ist.
> Komischer Effekt.

Meine Nixie in der Werkstatt habe ich 2 Jahre jeden morgen in der 
Werkstatt angesteckt und Abends wieder ausgeschaltet.

dann sogar noch nen Jahr ganz aus gelassen und die Uhrzeit war noch da.

Das gleiche mit einer Küchenuhr als Timer, die kann ich heute noch nach 
5 Jahren anstecken/benutzen und die Uhrzeit stimmt immernoch. (ist nur 
nen küchentimer mit akku der sich von selbst ausschaltet)

Nur so mal das es anscheinend an dem Drahtaufbau liegen könnte, 
vielleicht  ein kurzschluss auf Masse der die Batterie kurzgeschlossen 
hat.

von Frank O. (frank_o)


Lesenswert?

Philipp K. schrieb:
> Nur so mal das es anscheinend an dem Drahtaufbau liegen könnte,
> vielleicht  ein kurzschluss auf Masse der die Batterie kurzgeschlossen
> hat.

Bin noch nicht einmal sicher, ob ich schon mit USB verbunden war. Und 
sollte auch eigentlich egal sein, ob da Plus oder Minus weg war, denn 
sobald die Spannung unter die Grenze fällt, sollte die wieder auf 
Batterie umschalten.
Ich habe die wieder gestellt und versucht das zu simulieren. Hier 
Zuhause bleibt die Uhrzeit.
Ist natürlich voll blöd, wenn man das gerade vorführen will und das dann 
nicht klappt.

von Gerhard O. (gerhard_)


Lesenswert?

Frank O. schrieb:
> Philipp K. schrieb:
>> Nur so mal das es anscheinend an dem Drahtaufbau liegen könnte,
>> vielleicht  ein kurzschluss auf Masse der die Batterie kurzgeschlossen
>> hat.
>
> Bin noch nicht einmal sicher, ob ich schon mit USB verbunden war. Und
> sollte auch eigentlich egal sein, ob da Plus oder Minus weg war, denn
> sobald die Spannung unter die Grenze fällt, sollte die wieder auf
> Batterie umschalten.
> Ich habe die wieder gestellt und versucht das zu simulieren. Hier
> Zuhause bleibt die Uhrzeit.
> Ist natürlich voll blöd, wenn man das gerade vorführen will und das dann
> nicht klappt.

Das nennt man schlicht den "Vorführeffekt". An diesen kann man seine Uhr 
stellen:-)

Ich habe schon viel mit RTCs gemacht. Dein beschriebenes Problem hatte 
ich noch nie. Vielleicht gab es einen Statikschlag oder eine schlechte 
Batterieverbindung, unbekannte Ursache eines Kurzschluss am kritischer 
Stelle.

Gruß,
Gerhard

von Joachim B. (jar)


Lesenswert?

Gerhard O. schrieb:
> Das nennt man schlicht den "Vorführeffekt".

oder Murphy, was schief gehen kann geht schief.

von Frank O. (frank_o)


Lesenswert?

Ja, so ist das wohl.
Meistens baue ich Sachen, die man nicht so sehen kann. Sie funktionieren 
einfach. Da habe ich dann mal etwas Sichtbares, bin voll stolz, dass ich 
das zeigen kamm und prompt klappt es nicht.
Das ist wohl tatsächlich Murphy. (lach)
Aber war eh nur eine Spielerei.

von Frank O. (frank_o)


Lesenswert?

Falls es noch jemand interessiert.
Da ich eine unendliche Geduld bei bestimmten Sachen aufbringen kann, so 
habe ich natürlich in diesem Fall diese Uhr auch nicht mehr aus den 
Augen gelassen.
Das letzte Mal hatte ich sie am 30.07.2024 gestellt. Seit dem habe ich 
sie über USB, dann wieder über Batterie, mal kurzzeitig mal über Nacht, 
laufen lassen.
Der Arduino steckte neben mir im USB-Tischladegerät.
Gerade wurde wieder das Grunddatum angezeigt.
Und jetzt kommt der absolute Hit und mir völlig unbegreiflich, ich 
klemmte den Arduino nun an meinen Laptop, um die Uhr neu zu stellen und 
unbegreiflicher Weise zeigte der Arduino nun wieder die richtige Uhrzeit 
an.

Wie geht das denn?

Auch wenn es eine Spielerei bleibt und ich nicht wirklich ein Uhrzeit 
brauche (obwohl ich mich bei der Arbeit dran gewöhnt habe, dass ich das 
Datum und den Tag angezeigt bekomme), so interessiert mich dieses 
merkwürdige Verhalten nun aber doch.
Also wenn jemand eine Erklärung hat, ich habe keine mehr und noch viel 
weniger als vorher, wo nur die Uhrzeit verloren ging.

von Peter D. (peda)


Lesenswert?

Frank O. schrieb:
> Wie geht das denn?

Da wird ein Fehler in der RTC-Lib vorliegen.
Ohne VCC werden ja SDA, SCL auf low gezogen. Nach dem Aufwachen ist also 
der I2C-Bus in einem undefinierten Zustand. Es sollte also nach einer 
Wartezeit zum Stabilisieren der VCC erstmal ein Dummy Zugriff erfolgen, 
um den I2C-Bus in einen definierten Zustand zu bringen.
Ohne klappt wohl das Auslesen mal und mal nicht.

von Frank O. (frank_o)


Lesenswert?

Hallo Peter!
Ist ja witzig,  habe ich gerade getestet.
Ganz genau so ist es.
Danke für deine Erklärung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.