Rainer-Rebhan

RealTimeClock (RTC) für MicroController

Vergleich der RTCs DS1307 und DS3231

Genauigkeit - Anschluss - Library

In viele meiner Projekte setze ich ein RTC-Modul ein um eine genaue Uhrzeit, auch nach einem Stromausfall des MC, z.V. zu haben. Gebräuchliche Module, die nebenbei sehr preiswert sind, ist das Modul DS1307 und das Modul DS3231. Sehr weit verbreitet ist das Modul DS1307, bei einem Modulpreis von < 2€ (mit Batterie) ist das gut verständlich. Beide Module lassen sich über den I2C Bus der Arduino's oder anderer Micocontroller anschliessen. Es werden nur 4 Leitungen benötigt, +5V VCC, GND, SCL und SDA. Die I2C Adresse des Moduls findet man mit einem I2C-Scanner, eine kleine Software auf dem Arduino, heraus. Dazu ist das Modul nur über diese 4 Leitungen anzuschliesen und den Scanner einmal zu starten. Beide Module liefern das Datum bis 2100 und eine sekundengenaue Uhrzeit. Es sind auch noch Anschlüsse z.B. für einen Interrupt-Anschluss 1 Hz. vorhanden. Selbstverständlich muss das Modul mit der aktuellen Zeit und Datum einmalig gesetzt werden.
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environment

RTC DS1307

Dieses Modul ist sehr preisgünstig und hat sehr kleine Abmessungen. ca. 28 x 27 mm. Auf der Rückseite der LP ist die Halterung der Batterie (Akku) vom Typ CR2032. Leider hat das RTC-Modul einen gravierenden Nachteil:

Das Modul ist ungenau

Ich habe vieles versucht diese Genauigkeit zu verbessern. Letzlich lohnt es bei dem geringen Modulpreis nicht, Zeitaufwand in Hardware und /oder Software zu stecken um die Genauigkeit zu verbessern. Die Abweichung der Uhrzeit, ohne Korrekturmassnahmen, liegt bei ca. einer halben Stunde innerhalb von 3 -4 Monaten. Das ist eigentlich nicht akzeptabel. Ich habe deshalb nach einer Alternative gesucht. Inzwischen habe ich alle RTCs in meinen Prjoekten gegen die RTC DS3231 ausgetauscht

RTC DS3231

Diese RealTimeClock hat etwas grössere Abmessungen ca. 38 x 22 und liegt auch preislich etwas höher. Auf der Rückseite der LP ist auch wieder die Batterie montiert. Man bekommt aber eine sehr genaue RTC. Ein Minuten-Abweichung ist innerhalb eines Jahres nicht zu erkennen. Die Anschlüsse dieses Moduls sind vergleichbar dem DS1307, man benötigt auch hier nur diese 4 Leitungen. Es gibt die Auswahl zwischen Steckeranschluss oder Lötanschluss. Die I2C Adresse kann man über Lötverbindungen einstellen. Die Standardadresse ist 0x57. Auf der LP gibt es ein SpeicherCip AT24C32 mit 32 kByte und einen programmierbaren Rechteck-Ausgang.

Libraries für die RTCs

Man verwendet innerhalb der Arduino IDE für diese RTCs normalerweise Bibliotheken (Libraries) um sich mit der Programmierung des RTC nicht beschäftigen zu müssen. Für die beiden oben beschriebene RTC gibt es unterschiedliche Bibliotheken. Für den letztlich genaueren RTC3231 benutze ich diese Bibliothek von Jack Christensen - meine Empfehlung.
nach oben zurueck weiter