Das Bild in diesem Blogbeitrag stammt von Chen von Pixabay

Was ist eine Echtzeituhr? Warum braucht man eine? Was sind die Anwendungsfälle? Wie genau kann eine Echtzeituhr sein? Welche Eigenschaften kann eine Echtzeituhr haben? Welche Modelle gibt es? Und welches sollte man kaufen?

Was ist eine Echtzeituhr?

Eine Echtzeituhr (RTC) ist ein elektronisches Gerät, das die Tageszeit nachhält. Aber ist das nicht sowieso die Aufgabe von eingebetteten Systemen und Computern? Nicht unbedingt! Computer verfügen in der Regel über eine Uhr, die die Zeiteinheiten seit dem Start des Systems misst, die interne Zeit. Das reicht für die meisten Zwecke aus, z.B. zum Messen von Zeitintervallen und um die Abfolge bestimmter Ereignisse zu erzwingen. Ein Arduino-System zum Beispiel zählt normalerweise die Anzahl der Millisekunden (und Mikrosekunden) seit dem Start. Nur wenn die Uhrzeit Teil der Interaktion mit der Außenwelt wird, z.B. wenn eine Kiste nur zu einer bestimmten Tageszeit geöffnet werden soll, dann wird eine Echtzeituhr benötigt.

Warum braucht man eine RTC?

Es mag zwar sinnvoll erscheinen, die interne Zeit eines Computersystems mit der Tageszeit zu synchronisieren (z.B. beim Start), aber es gibt viele gute Gründe, dies nicht zu tun. Ein Grund ist, dass die (interne) Uhr nicht weiter läuft, wenn sich eine MCU im Schlafmodus befindet, wohl aber die Tageszeit. Ein anderer Grund ist, dass man die Uhrzeit oft anpassen möchte, z.B. um sie zu korrigieren oder wegen Änderungen aufgrund der Sommerzeit. In diesen Fällen ändert sich die Tageszeit nicht monoton, während von der internen Zeit erwartet wird, dass sie sich immer streng monoton ändert. Aus diesen Gründen unterscheidet der Unix-Standard POSIX auch zwischen einer Echtzeituhr, genannt CLOCK_REALTIME, mit einer festen Startzeit am 1. Januar 1970, und einer internen, monotonen Uhr, genannt CLOCK_MONOTONIC, mit einer nicht definierten Startzeit.

Trotzdem kann man natürlich die interne Zeit mit der Tageszeit synchronisieren (und dieses dann Software-RTC nennen). Man sollte sich nur über die oben genannten Probleme im Klaren sein. Insbesondere muss man die Uhrzeit jedes Mal stellen, wenn das System gestartet oder nach einer Schlafperiode wieder aufgeweckt wird.

Anwendungsfälle

Eine RTC kann für alles verwendet werden, wo die Tageszeit benötigt wird, zum Beispiel für

Während fast alle der oben genannten Anwendungsfälle mit einer Software-RTC implementiert werden könnten, ist dies bei dem letzten unmöglich, weil eine MCU die Tageszeit nicht nachhalten kann, wenn sie sich im Schlafmodus befindet. Alle AVR MCUs können periodisch alle 8 Sekunden (nominell) aufwachen. Der interne WDT-Timer ist jedoch so ungenau, dass man das nicht als Zeitmessung bezeichnen kann (der nominelle 128-kHz-Oszillator läuft bei Raumtemperatur mit 115 kHz), und der aktivierte WDT-Timer zieht etwa 5 µA. Wenn man eine vernünftige RTC verwendet, die MCU mit deaktiviertem WDT-Timer in den Stromsparmodus versetzt, und sie dann über einen RTC-Interrupt aufweckt, kann man die Stromaufnahme um das Zehnfache verringern, d.h. auf weniger als 0,5 µA reduzieren.

Leistungsfähigere MCUs wie der ESP8266 oder RP2040 haben bereits eine eingebaute RTC, die zum Aufwecken der MCU verwendet werden kann. Aber auch in diesen Fällen kann eine separate RTC sinnvoll sein, sei es aus Gründen der Genauigkeit oder weil die externe RTC über ein Batterie-Backup verfügt.

Abschließend möchte ich noch darauf hinweisen, dass Echtzeit-Computing (auch RTC abgekürzt) kein Anwendungsfall für Echtzeit-Uhren ist. Beim Echtzeit-Computing muss sichergestellt werden, dass das System immer rechtzeitig auf externe Ereignisse reagiert. In diesem Fall ist also die interne Zeit wichtig, aber die Tageszeit spielt keine Rolle.

Genauigkeit von RTCs

Je nach den Anforderungen kann die Genauigkeit einer RTC ein mehr oder weniger wichtiges Kriterium sein. Wenn ein eingebettetes System mit dem Internet verbunden ist oder einen DCF77- oder GPS-Empfänger verwenden kann, kann es die Tageszeit leicht nachstellen. Wenn man jedoch plant, einen Sensorknoten irgendwo in der Wildnis zu installieren, möchte man eine möglichst genaue RTC haben. Welche Genauigkeit kann man also erwarten?

Die Genauigkeit von Uhren wird in Teilen pro Million (ppm) oder Teilen pro Milliarde (ppb) gemessen. Eine Genauigkeit von ±1 ppm bedeutet, dass wir über 1 Million Sekunden eine Sekunde gewinnen oder verlieren können. Da ein Jahr 31,5 Millionen Sekunden hat, bedeutet dies eine Abweichung von ±31,5 Sekunden/Jahr.

Was sind die Ursachen für solche Ungenauigkeiten? Erstens können die Uhrenquarze, die zur Erzeugung einer stabilen Frequenz verwendet werden, zu solchen Abweichungen führen. Wenn man einen externen Uhrenquarz verwendet, ist die Genauigkeit in der Regel mit ±20 ppm angegeben, was ±2 Sekunden/Tag entspricht! Es wird noch schlimmer, wenn der Quarz nicht richtig auf der Platine montiert ist. Da diese Drift messbar ist, kann man sie auf jeden Fall berücksichtigen. Einige RTCs verfügen über so genannte Offset-Register, die Impulse des Oszillators addieren oder subtrahieren können, um diese Drift zu kompensieren.

Zweitens altert bei der Verwendung eines Quarzes in einem Oszillator der Quarz mit der Zeit. Dieser Effekt ist normalerweise im ersten Jahr am stärksten ausgeprägt und nimmt mit der Zeit ab. Dies kann auch einige ppm pro Jahr betragen. Während man also die oben beschriebene Drift anfangs vielleicht kompensieren kann, muss diese Kompensation später angepasst werden.

Drittens: Die Frequenz eines Quarzes ändert sich mit der Temperatur. Wenn die RTC nur bei Raumtemperaturen verwendet wird, gibt es kein Problem. Wenn man eine RTC im Freien verwendet, sollte man temperaturkompensierte Quarzoszillatoren (TCXO) verwenden. Diese messen die Temperatur und kompensieren dann entweder durch Schalten zusätzlicher kapazitiver Lasten, um die Frequenz zu steuern, oder durch Hinzufügen oder Löschen von Impulsen. Damit das funktioniert, muss natürlich die Temperaturcharakteristik des Quarzes bekannt sein, was impliziert, dass der Quarz auf dem Chip integriert sein muss.

Die derzeit beste Garantie, die mir bekannt ist, ist die von Micro Crystal für die RV-3032 und RV-8803 RTCs angegebene: ±1,5 ppm für den Temperaturbereich von 0° C bis +50° C. Wenn man eine noch höhere Genauigkeit haben möchte, benötigt man einen Quarzofen (OCXO). Diese sorgen für eine stabile Temperaturumgebung für den Quarz, indem sie ihn auf bis zu 85° C aufheizen. Das ist natürlich nicht sehr energieeffizient und wird daher nicht für RTC-Chips verwendet, soweit ich weiß. Ähnliches gilt für sogenannte Atomuhren. Für beide Typen gibt es Miniatur-Oszillatoren, die ziemlich teuer und stromhungrig sind, die man als Input für einen RTC-Chip verwenden könnte. Das ist jedoch nichts für das Budget eines Hobby-Elektronikers, wobei das natürlich vom speziellen Hobby abhängt.

Notstrom-Versorgung

Obwohl es keine notwendige Eigenschaft einer RTC ist, ist meist auch die Möglichkeit vorgesehen, dass die RTC mit „Notstrom“ versorgt wird, wenn die reguläre Versorgungsspannung wegfällt. Das hat den großen Vorteil, dass man die Uhr nicht jedes Mal neu stellen muss, wenn es zu einer Unterbrechung der Stromversorgung kommt (man erinnere sich nur an die blinkenden Anzeigen von Herden oder Radioweckern).

Zum einen wird das durch die Breakout-Boards unterstützt, auf denen meist Knopfzellen oder aber auch Super-Caps verbaut sind. Dabei sollte man sich darüber klar sein, mit welcher Art von Ausfällen man rechnet. Wird nur hin und wieder ein kurzer Ausfall erwartet, dann reicht ein Super-Cap. Ansonsten benötigt man eine ausreichend dimensionierte Knopfzelle.

Zum anderen sehen viele RTC-Chips eine Batterieversorgung vor, wobei dann die Stromaufnahme extrem reduziert wird. Ein wichtiger Punkt ist dabei die Umschaltung zwischen regulärer und Batteriestromversorgung. Am einfachsten ist es dabei, wenn die RTC nur einen Versorgungsspannungseingang hat. Dann reicht es aus, über zwei Schottky-Dioden die reguläre Spannung und die Batterie anzuschließen. Ist die Versorgungsspannung höher als die Batteriespannung, dann wird der Chip über die erstere versorgt, sonst eben durch die Batterie. Das funktioniert aber nur dann vernünftig, wenn die RTC auch im Normalfall bereits eine niedrige Stromaufnahme hat, wie z.B. bei den RTCs von Micro Crystal. Die schlechteste Art der Umsetzung ist sicherlich das PCF8563-Board von Waveshare, bei dem die Umschaltung manuell per Jumper erfolgen muss, einschließlich einer kurzen stromlosen Zeit beim Umstecken. Keine Ahnung, wer sich so etwas einfallen lässt.

Bei den RTCs, die einen Versorgungsspannungseingang und einen Eingang für die Batteriespannung haben, wird meist unterschieden zwischen einer Umschaltung aufgrund der relativen Spannungspegel (direct switching) und der Umschaltung aufgrund der absoluten Spannungshöhe (level switching). Der erste, einfachere Modus ist dann von Nachteil, wenn Batterie- und Versorgungsspannung sehr ähnlich sind. Dann wird oft hin- und hergeschaltet. Die zweite Methode vermeidet das, erfordert aber mehr Energie.

Andere Eigenschaften von RTCs

RTCs verfügen neben der Genauigkeit über eine Reihe anderer Eigenschaften, die für ihren Verwendungszweck entscheidend sein können. Ich will diese kurz vorstellen und dann die RTCs, die einem Bastler zur Verfügung stehen, nach diesen Merkmalen kategorisieren. Zunächst ist da die Kommunikationsschnittstelle. Die meisten RTCs verwenden I2C, und ich werde nur auf die eingehen, die dies tun. Man findet aber auch RTCs, die SPI oder eine parallele Schnittstelle verwenden. Zweitens ist da die zulässige Versorgungsspannung. Oft liegt diese in einem Bereich von 3,0 bis 5,5 Volt, manchmal werden auch viel niedrigere Spannungen toleriert. Zum Teil auch höhere. Drittens ist eines der wichtigsten Merkmale der Stromverbrauch. Und hier muss man unterscheiden zwischen dem Standby-Strom, wenn die Kommunikation mit der RTC möglich ist, und dem Strom für die Zeitmessung, der nur dazu verwendet wird, die Uhr am Laufen zu halten. Letzterer reicht von 150 nA bis 2 µA. In diesem Zusammenhang verfügen einige RTCs über einen Batterieumschalter, der nur dann auf die Pufferbatterie umschaltet, wenn die normale Versorgungsspannung zu niedrig ist (siehe oben). Dann gibt es viertens den Temperaturbereich, in dem der Betrieb gewährleistet ist. Normalerweise ist dies der industrielle Bereich von -40° bis +85° C. Manchmal sind sogar höhere Temperaturen bis zu +115° C zulässig.

Schließlich gibt es noch einige optionale Funktionen, wie z.B. einen Temperatursensor (für RTCs mit TCXO), Offset-Register zur Korrektur der Drift, programmierbare Taktsignalausgänge oder zusätzlichen Speicher. Die wichtigste optionale Funktion ist sicherlich eine Weckerfunktion mit der Möglichkeit, einen MCU-Interrupt auszulösen. Auch ein Timer, der in regelmäßigen Abständen einen Interrupt auslöst, kann nützlich sein. Eine eher obskure Funktion ist die Möglichkeit, einen Zeitstempel eines Ereignisses zu erstellen, z.B. eine fallende Flanke an einem Eingangspin.

RTC-Modelle

Ich werde die RTC-Modelle behandeln, die man in Deutschland kaufen kann. Diese befinden sich hauptsächlich auf Breakout-Boards, aber man kann die einzelnen Chips auch bei Elektronik-Distributoren kaufen.

Die am häufigsten verwendete RTC ist wahrscheinlich die DS1307, da sie früher billig war, man sie in einer THT-Version bekommen kann und sie leicht zu programmieren ist. Inzwischen wird die THT-Version nicht mehr produziert und ist ziemlich teuer. Die RTC ist recht ungenau, da sie einen externen Quarz verwendet. Außerdem ist sie im Vergleich zu anderen Modellen stromhungrig. Auf dem rechten Bild sieht man einen SOIC-Chip auf dem Tiny RTC Breakout-Board von Elecrow und eine DIP-Version des Chips. Auf dem Breakout-Board ist außerdem ein EEPROM-Chip untergebracht.

Die DS1337 ähnelt der DS1307, hat aber zusätzlich einen Alarm, aber keinen zusätzlichen Batterieeingang. Stattdessen wird der Stromsparmodus aktiviert, wenn die Versorgungsspannung unter 1,8 V fällt und über 1,3 V bleibt. Allerdings beträgt selbst der Standby-Strom über 1,8 V nur 1,5 µA, während die DS1307 200 µA verbraucht. Interessanterweise ist mir kein Breakout-Board mit der DS1337 bekannt. Ähnlich wie bei der DS1307 man sie aber in einem DIP-Gehäuse bekommen.

Die beliebteste RTC ist wahrscheinlich die DS3231S(N). Der Hauptgrund dafür ist, dass es viele Breakout-Boards mit diesen Chips bei eBay für kleines Geld zu kaufen gab und die Spezifikation dieser Chips recht gut ist. Mit nur ±2 ppm für den Temperaturbereich von 0° C bis 40° C waren sie wahrscheinlich das Beste, was man für kleines Geld kaufen konnte. Und sie enthalten einen TCXO, einen temperaturkompensierten Quarzoszillator. Leider ist heutzutage die Quelle für die Graumarkt-Chips versiegt und die eBay-Shops verkaufen dieselben Breakout-Boards mit einer anderen Version, der DS3231M, die eine wesentlich schlechtere Genauigkeit aufweist, nämlich nur ±5 ppm. Beide Versionen enthalten ein Offset-Register, um die altersbedingte Drift zu korrigieren. Auf dem Bild oben sieht man links ein Breakout-Board von Adafruit mit dem Original-Chip, in der Mitte eines der billigen chinesischen Breakout-Boards mit einem M-Chip (mit einem zusätzlichen EEPROM-Chip) und rechts einen Chronodot-Klon mit einem anderen M-Chip auf der Unterseite.

Die nächsten beiden RTCs sind von NXP Semiconductors. Sie sind energieeffizienter als die bisher betrachteten, aber sie verwenden externe Quarze, d.h. sie sind viel ungenauer als die DS3231s. Es handelt sich um die PCF8563 (auf dem linken Bild auf einem Breakout-Board von Waveshare) und die PCF8523 (auf dem rechten Bild auf einem Breakout-Board von Adafruit). Letztere enthält ein Offset-Register, das zur Korrektur der Drift verwendet werden kann, ähnlich wie bei den DS3231s. Wenn man einen Temperatursensor hinzufügt, könnte man sogar einen Selbstbau-TCXO konstruieren.

Nun kommen wir zu RTCs, die weniger bekannt sind. Die erste ist von Ricoh, einem Unternehmen, das eher für Kameras und Fotokopierer bekannt ist. Es handelt sich um die RS5C372, die auf einem Breakout-Board von ELV (siehe Bild rechts) verwendet wird. Interessanterweise kann sie auch mit 32-kHz-Quarzen umgehen und verfügt außerdem über ein Offset-Register zur Korrektur der Drift. Der zweite Baustein mit der Bezeichnung SD2405AL wird von der chinesischen Firma WAVE hergestellt. Das Breakout-Board stammt von DFRobot (siehe linkes Bild). Das Interessante an dieser RTC ist, dass sie über eine interne Batterie verfügt. Zudem ist der Quarz integriert, sodass eine Genauigkeitsgarantie möglich ist. Das Datenblatt gibt ±5 ppm über den gesamten Temperaturbereich an. An anderen Stellen des Datenblatts scheint es jedoch so zu sein, dass die ±5 ppm nur für die Raumtemperatur gelten. Insbesondere wird ein TCXO nicht erwähnt.

Die letzten drei RTCs stammen von Micro Crystal, einem Schweizer Unternehmen. Sie sind alle erstaunlich energieeffizient, können extrem genau sein und sind leider winzig klein. Bislang habe ich noch nicht versucht, eine von ihnen auf eine Platine zu löten, aber es gibt Breakout-Boards. Das erste ist die RV-8523, das von seiner Bezeichnung an die PCF8523 erinnert. Und tatsächlich, wenn man die Registerbeschreibungen vergleicht, sehen sie sich sehr ähnlich. Der Hauptunterschied besteht darin, dass die RV-8523 bereits einen Quarz enthält. Und aus diesem Grund kann man tatsächlich eine Genauigkeitsgarantie geben, die allerdings nicht sehr eng ist. Sie beträgt nur ±20 ppm bei Raumtemperatur.

Mein Favorit ist das RV-8803 Breakout-Board von Sparkfun (siehe Bild rechts), das ich kürzlich in einer Geocaching-Box verwendet habe. Da ich von der RTC so begeistert war, bat ich das Micro Crystal um ein kostenloses Demo-Board (siehe linkes Bild) und 5 Muster ihrer neuesten Kreation, der RV-3032 RTC. Und sie haben sie mir tatsächlich zugeschickt. Diese RTC ist noch genauer und energieeffizienter als die RV-8803. Und sie ist so reich an Funktionen, dass man wahrscheinlich nie alle davon nutzen wird (wie z.B. zusätzliches RAM und EEPROM, Taktausgabe bis zu 67 MHz, Passwortschutz und Manipulationserkennung). Aber jetzt ist es eine Herausforderung, diese Chips in einem meiner nächsten Projekte zu verwenden und sie tatsächlich auf eine Platine zu löten.

Schließlich habe ich noch zwei weitere RTCs mit in die Betrachtung einbezogen, die beide in der Lage sind, den kommenden Jahr-2100-Fehler zu „überleben“. Man beachte, dass alle RTCs, über die ich bisher gesprochen habe, nur die letzten beiden Ziffern der Jahreszahl speichern und die Datenblätter angeben, dass sie mit Schaltjahren bis 2099 umgehen können. Die MCP79410 (links), wohl ein Nachfolger der MCP7940, beherrscht zumindest die Schaltjahresregel bis zum Jahr 2399. Und dann gibt es noch die RV-3028 (rechts), die einen vorzeichenlosen 32-Bit-Unix-Timer enthält. Dieser kann, wenn er im Unix-Stil verwendet wird, bis zum 7. Februar 2016 überleben. Leider verfügt die RTC nicht über ein Alarmregister im Unix-Stil. Abgesehen davon ist diese RTC aber definitiv der Gewinner in der Sparte Strom sparen. Die Miniaturbatterie auf dem Board soll 9 Jahre halten!

Die folgende Tabelle fasst die wichtigsten Parameter der RTCs zusammen, die ich skizziert habe.

IDManufacturerPackagesAccuracy (± ppm)Offset register
(correction in ppm)
VBackup (V)VActive (V)IBackup (nA)IStandby (µA)Temperature (°C)AlarmClock OutputOthers
DS1307(N)Analog
Devices
DIP8
SO8
2.0-3.54.5-5.5300200.00° - +70
-40 - +85 (N version)
01 Hz,
4.096 kHz,
8.192 kHz,
32.768 kHz
contains 56 bytes of RAM
DS1337Analog
Devices
DIP8
SO8
µSOP8
SO16W
1.3-1.81.8-5.54251.5-40 - +8521 Hz,
4.096 kHz,
8.192 kHz,
32.768 kHz
DS3231S(N)Analog
Devices
SO16W2 (0 - +40° C)
3.5 (-40 - +85° C)
-12 - +12
0.1ppm steps
2.3-5.52.3-5.5840110.00 - +70
-40 - +85 (N version)
21 Hz,
1.024 kHz,
4.096 kHz,
8.192 kHz,
32.768 kHz
uses TCXO, temperature sensor with ± 3° C
DS3231MAnalog
Devices
SO16W
SO8
5-12 - +12
0.1ppm steps
2.3-5.52.3-5.52000130.0-40 - +8521 Hz,
1.024 kHz,
4.096 kHz,
8.192 kHz,
32.768 kHz
uses MEMS oscillator, temperature sensor with ± 3° C
MCP79410MicrochipSO8
MSOP8
TDFN8
-127 - +127
1ppm steps
1.3-5.51.7-5.57005.040 - +8521 Hz,
4.096 kHz,
8.192 kHz,
32.768 kHz
64 bytes RAM, 128 bytes EEPROM, time-stamps for failure
PCF8523NXP
Semiconductors
SO8
TSSOP14
HVSON8
-240 - +240
4ppm steps
1.2-5.51.8-5.51501.2-40 - +8511 Hz,
1.024 kHz,
4.096 kHz,
8.192 kHz,
32.768 kHz
fast-mode plus I2C (1 MHz), timers
PCF8563NXP
Semiconductors
SO8
TSSOP8
HVSON10
1.0-5.51.8-5.52500.3-40 - +85 11/16 Hz ...
32.768 kHz
contains timer
RS5C372RICOHSSOP8-180 - +180
3ppm steps
1.3-6.01.7-6.05000.5-40 - +8521 Hz,
32.768 kHz
can also use 32 kHz crystals, has timers
RV-3028Micro
Crystal
C71 (@25° C)-250 - +250
0.95ppm steps
1.1-5.51.2-5.5450.1-40 - +8511 Hz,
32 Hz,
64 Hz,
1.024 kHz,
8.192 kHz,
32.768 kHz
Unix time counter, timer, 43 byte EEPROM
RV-3032Micro
Crystal
C71.5 (0 - +50° C)
2.5 (-40 - +85° C)
20 (+85 - +105° C)
-7.5 - +7.5
0.23ppm steps
1.3-5.51.4-5.51650.2-40 - +10511 Hz ...
67.109 MHz
uses DTCXO, trickle charger for supercap, timer, time stamping, 16 byte RAM, 32 byte EEPROM
RV-8523Micro
Crystal
C320 (@25° C)-240 - +240
4ppm steps
1.2-5.51.8-5.51301.2-40 - +8511 Hz,
32 Hz,
1.024 kHz,
4.096 kHz,
8.192 kHz,
16.384 kHz,
32.768 kHz
fast-mode plus I2C (1 MHz), timer,
RV-8803Micro
Crystal
C71.5 (0 - +50° C)
3 (-40 - +85° C)
7 (+85 - +105° C)
-7.5 - +7.5
0.23ppm steps
1.5-5.51.5-5.52400.2-40 - +10511 Hz,
1.024 kHz,
32.768 kHz
uses DTCXO, no extra battery supply, timer, time stamping
SD2405ALWAVEDIP165-180 - +180
3ppm steps
internal3.3-5.5100040.0-40 - +8511/16 Hz ...
32.768 kHz
has timers, has 12 bytes of RAM, and has an internal battery

Übrigens, habe ich schon erwähnt, dass es für alle RTCs, die ich vorgestellt habe, Arduino-Bibliotheken gibt? Für einige muss man die Webseiten der Hersteller der Breakout-Boards konsultieren, aber die meisten kann man finden, indem man die Liste der Arduino-Bibliotheken durchsucht. Insbesondere für die DS1307, DS3231, PCF8563 und PCF8523 (und damit auch für die RV-8523) kann man die RTClib von Adafruit verwenden, die ein Fork der Echtzeituhr-Bibliothek von JeeLab ist.

Welche RTC sollte man kaufen?

Wie immer hängt die Entscheidung, was man kaufen soll, von den Anforderungen und dem Budget ab. Sehen wir uns also einmal an, wie viel man für die verschiedenen RTCs investieren muss. Im Folgenden führe ich die Preise für Chips in Einzelstücken auf, wie sie bei Digi-Key aufgeführt sind, und für Breakout-Boards, wie man sie in deutschen Geschäften kaufen kann. Wenn man einige der Breakout-Boards direkt in China bestellt, kann man noch ein paar Euro sparen, muss aber ein paar Wochen warten.

NameDigi-Key (€)Breakout boardPrice
Germany (€)
Price
China (€)
DS13074.80Elecrow1.000.50
DS13074.80Adafruit10.00
DS13374.64
----
DS3231S14.20Adafruit 17.00
DS3231M11.87No Name6.002.00
MCP974101.30Mikroelektronika18.00
PCF85631.89Waveshare4.001.10
PCF85631.89DIY MORE4.000.65
PCF85231.82Adafruit10.008.00
RS5C3721.95ELV10.00
SD2405ALDFRobot11.00
RV-85234.64watterott10.00
RV-88034.07Sparkfun21.00
RV-30325.25Mikroelektronika15.00
RV-30283.40Pimorini15.00
RV-30283.40Mikroelektronika21.00

Wenn Geld der limitierende Faktor ist, scheinen die DS1307 Breakout-Boards die richtige Wahl zu sein. Man beachte jedoch, dass die RTC einen recht hohen Standby-Strom und keinen Alarm-Interrupt hat. Wer auf den Strombedarf achten muss und/oder die Alarmfunktion benötigt, für den ist vermutlich das PCF8563 Breakout-Board das richtige. Allerdings sollte man nicht das Waveshare-Board mit manueller Umschaltung kaufen, sondern eines, auf dem 2 Dioden verbaut sind.

Wenn man etwas mehr Genauigkeit benötigt, aber nur ein begrenztes Budget zur Verfügung hat, dann sind die chinesischen DS3231-Boards wahrscheinlich ein guter Kompromiss. Wenn man starken Wert auf Genauigkeit legt, dann ist das RV-8803 Breakout-Board von Sparkfun wahrscheinlich am besten geeignet. Wer weiß, wie man C7-Chips lötet, findet in den RTC-Chips von Micro Crystal das Richtige. Sie sind viel billiger und sogar genauer als die DS3231-Chips.

Ausblick

Wie geht es nun weiter? Ich plane, ein Langzeitexperiment mit meiner Sammlung von RTCs durchzuführen. Das hatte ich bereits mit einigen DS3231-Boards gemacht. Aber mit einem solchen Zoo von verschiedenen RTCs ist das definitiv herausfordernder und interessanter.

EDIT: Ich habe 2 weitere RTCs in den Vergleich mit aufgenommen.

EDIT: Neuen Abschnitt über Batteriestromversorgung mit aufgenommen.

Views: 177