Was tun, wenn die RTC nicht genau genug ist?
Wenn die RTC im Laufe der Zeit zu stark abweicht, gibt es einige Lösungen, die berücksichtigt werden sollten – aber beachten, dass nicht alle Varianten
Wurde die richtige Taktquelle ausgewählt?
Viele RTCs und Controller haben mehrere Taktquellen – typischerweise einen internen RC-Oszillator und einen externen Kristalloszillator. Der RC-Oszillator ist typischerweise wesentlich ungenauer, daher sollte immer die richtige Taktquelle ausgewählt werden. Es sollte unbedingt überprüft werden, ob die Taktquelle korrekt eingestellt ist – z.B. durch Prüfen mit einem Oszilloskop, ob der Kristall schwingt. Beachten, dass dies nicht 100% zuverlässig ist, da die Oszilloskop-Sonde den Kristall mit ihrer zusätzlichen Kapazität belastet und die Frequenz erheblich verändern kann – und in einigen Fällen die zusätzliche Kapazität den Kristall zum Stoppen bringt. In der Praxis funktioniert es jedoch meistens, daher ist es immer einen Versuch wert – nur die gemessene Frequenz nicht zu ernst nehmen.
Wurde die richtige Lastkapazität ausgewählt?
In unserem Beitrag Kristall-Lastkondensatoren mit Python berechnen wurde eine einfache Methode gezeigt, um den korrekten Lastkondensatorwert zu berechnen. Im Zweifel die Berechnung wiederholen – oft wird der Fehler gemacht, die Lastkapazität im Datenblatt zu suchen und anzunehmen, dass dies der Wert der Kondensatoren ist, die an den Kristall angeschlossen werden.
Zusätzlich sollte, da die Lastkapazitätsberechnung eine Abschätzung der Platinenkapazität beinhaltet, die korrekte Kapazität abgestimmt werden, sobald eine Prototyp-Platine vorliegt, d.h. ein etwas anderer Lastkondensatorwert ausgewählt werden, um die gewünschte Genauigkeit zu erreichen. Siehe unseren Beitrag Kristalloszillator für bestmögliche Frequenzgenauigkeit abstimmen für weitere Anweisungen.
Kann ein besserer Kristall verwendet werden?
Oft kann für ein paar Cent mehr ein Kristall mit höherer Genauigkeit und/oder einem niedrigeren Temperaturkoeffizienten beschafft werden. Beachten, dass ein genauerer Kristall typischerweise
Kann die RTC digital abgestimmt werden?
Viele moderne RTCs bieten die Möglichkeit, die exakte Frequenz über Register-Einstellungen digital abzustimmen. Unser Beitrag Kristalloszillator für bestmögliche Frequenzgenauigkeit abstimmen enthält einen Abschnitt mit weiteren Informationen zur Vorgehensweise. Beachten, dass die digitale Abstimmung nicht selbstständig Temperaturänderungen kompensieren kann, die zur Frequenzänderung des Kristalls führen.
Kann die RTC-Abweichung automatisch mit dem Mikrocontroller kompensiert werden?
Wenn das Produkt mindestens ein paar Mal im Jahr eingeschaltet wird (d.h. nicht durch eine CR2032 oder ähnliche Batterie betrieben wird), kann diese Zeitspanne genutzt werden, um die RTC durch digitale Abstimmung neu zu kalibrieren oder die RTC manuell abzustimmen, indem die Anzahl der Stunden seit dem letzten Einschalten berechnet und z.B. ein paar Sekunden pro Stunde abgezogen werden, um die RTC-Abweichung zu korrigieren. Dieser Ansatz ist am genauesten, wenn es eine Möglichkeit gibt, die aktuelle RTC-Frequenz mit einer anderen Taktquelle zu vergleichen (siehe unten). Beachten, dass die automatische Kompensation Temperaturänderungen, die zur Frequenzänderung des Kristalls führen, nur dann kompensieren kann, wenn der MCU läuft, die zweite Taktquelle läuft und wenn die zweite Taktquelle
Kann mit einer zweiten Taktquelle synchronisiert werden?
Mit dem Mikrocontroller kann ein Frequenzzähler in Firmware gebaut werden, der die tatsächliche Frequenz des RTC-Kristalls berechnet. Damit dies funktioniert, wird eine zweite Taktquelle mit höherer Genauigkeit benötigt.
Dies sind die häufigsten alternativen Taktquellen, die für die Platine verwendet werden können:
- Der Hochgeschwindigkeits-Oszillator, der den Mikrocontroller taktet. Wenn der Stromverbrauch keine große Rolle spielt, empfehle ich die Verwendung eines Oszillators statt eines Kristalls, da bei Verwendung eines Oszillators keine Lastkondensatoren abgestimmt werden müssen, was in vielen realen Anwendungsfällen zu einer höheren effektiven Genauigkeit führt – besonders, wenn gar nicht abgestimmt werden soll.
- Das Stromnetz hat eine Frequenz von 50 Hz oder 60 Hz, je nach Region. Es hat eine ausgezeichnete Langzeitstabilität, aber die Kurzzeitstabilität ist nicht so gut. Die Betreiber des Stromnetzes kompensieren kontinuierlich die kurzfristigen Instabilitäten, sodass die. Beachten, dass bei Verwendung des Stromnetzes als Taktquelle auf eine ordnungsgemäße Isolierung und Abstand geachtet werden muss, da Netzstrom extrem gefährlich sein kann.
- GPS ist recht komplex zu implementieren, bietet aber eine extrem genaue Taktquelle, wenn GPS-Empfang vorhanden ist. Beachten, dass es typischerweise nicht drinnen funktioniert und eine sehr teure, aber sehr genaue Methode ist, das Gerät zu takten. Da es auch recht stromintensiv ist, ist es oft keine gute Option für batteriebetriebene Produkte.
- In Deutschland sendet der DCF77-Funksender jede Minute ein Zeitsignal. Ich empfehle, fertige DCF77-Module wie dieses zu kaufen, wenn möglich.
- Einige Mikrocontroller (z.B. einige STM32F0) können den USB eines Computers als Taktquelle verwenden, sobald eine USB-Verbindung hergestellt ist. Dies funktioniert nicht bei Verwendung eines externen Serial-to-USB-Konverters.
Wenn keine dieser Taktquellen verwendet werden kann, könnte mit erheblichem Entwicklungsaufwand Taktquellen aus folgenden Quellen zurückgewonnen werden:
- Ethernet
- USB
- CAN
- UART
- Ein HF-Signal wie Wifi, NFC
soweit mir bekannt ist, gibt es jedoch keine fertigen Module außer den oben genannten. Beachten, dass es viele Umstände gibt, unter denen diese Taktquellen nicht zuverlässig funktionieren, und die Implementierung recht schwierig sein wird, daher empfehle ich nicht, diesen Weg der Tränen zu gehen.
Kann mit dem Internet synchronisiert werden?
Wenn das Gerät Internetkonnektivität oder Konnektivität zu einem Netzwerk wie Sigfox oder LoRa hat, sollte in Betracht gezogen werden, die Zeit einfach mit dem Internet zu synchronisieren oder z.B. jeden Tag um 00:00 eine Nachricht an das Gerät zu senden, damit es die Abweichung kompensieren kann. Die RTC-Abweichung könnte auch kontinuierlich durch digitale Kalibrierung oder automatische Kompensation in der Firmware angepasst werden.