Schnelles Implementieren von RTCC-Funktionen in eingebettete Designs

Von Steve Leibson

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Viele eingebettete Anwendungen benötigen Zeitangaben, um bestimmte Aufgaben zu einer bestimmten Zeit und an einem bestimmten Datum auszuführen, um Ereignisse mit einem Zeitstempel zu versehen oder für beides. Die hierfür erforderlichen Chips mit Echtzeituhr und -kalender (RTCC, Real Time Clock and Calender) sind zwar bereits seit Jahrzehnten verfügbar, aber Entwickler stehen vor der Herausforderung, die Komponentenanzahl und den Platzbedarf zu reduzieren und dabei den Stromverbrauch und die Entwicklungsdauer zu minimieren.

Mit integrierten RTCC-Komponenten und innovativen Modulen können diese Herausforderungen gemeistert werden.

In diesem Artikel geht es um die Auswahl eines geeigneten RTCC-Chips und seine Integration in ein Embedded-System, wobei gleichzeitig der Platzbedarf und der Stromverbrauch minimiert werden. Des Weiteren wird auf MCU mit integrierten RTCC eingegangen sowie auf die Verwendung von verfügbaren RTCC-Modulen bei der Prototyperstellung mit oberflächenmontierten RTC und sonstigen Komponenten.

In Module integrierte RTCC-Chips werden typischerweise von Arduino-Bibliotheken und Raspbian-Treiber-Overlays für Raspberry Pi unterstützt, die das eingebettete Experimentieren und die Prototyperstellung mit diesen Komponenten vereinfachen.

RTCC und ihre Rolle

Viele eingebettete Anwendungen müssen bei minimalem Stromverbrauch die Zeit relativ zur realen Welt verfolgen und dabei den Hauptprozessor für andere Aufgaben frei halten.

Auf sich allein gestellt kann ein RTCC-Chip jedoch nicht viel bewirken. Für die Zeiterfassung sind ein exakter Quarz – eventuell ein temperaturkompensierter Kristall zur sehr exakten Zeiterfassung – und eine Backup-Batterie erforderlich, damit die Zeit selbst bei ausgeschaltetem Embedded-System weiterhin verfolgt werden kann. Diese Zusatzkomponenten definieren die Fähigkeit des RTCC, seine zwei Hauptaufgaben auszuführen:

  1. Exakte Angabe von Zeit und Datum unter allen Bedingungen
  2. Minimale Leistungsaufnahme, wenn das übrige Embedded-System ausgeschaltet ist

Mikrocontroller mit integrierten RTCC

In manche Mikrocontroller wie beispielsweise den 32-Bit-Mikrocontroller PIC32MZ2064DAA288 von Microchip Technology ist ein interner RTCC-Block integriert. Die Verwendung einer solchen Komponente zum Design eines Systems, das eine exakte Zeiterfassung erfordert, mag sinnvoll erscheinen, zumal der Mikrocontroller PIC32MZ2064DAA288 die interne Stromversorgung automatisch auf sein Batterie-Eingangspin (VBAT) umschaltet, wenn die an den Pins für die normale Stromversorgung (VDDCORE und VDDIO) des Mikrocontrollers anliegende Spannung nicht hoch genug ist, um die Komponente zu betreiben.

Diese Komponenten bringen jedoch einige zusätzliche Herausforderungen mit sich, die in direktem Zusammenhang mit den zwei oben genannten, wesentlichen Aufgaben des RTCC stehen, die da sind: exakte Zeiterfassung und energiesparender Betrieb.

Als Erstes benötigt der RTCC-Block des Mikrocontrollers PIC32MZ2064DAA288 einen Quarz mit 32.768 Hertz (Hz) an den zwei Pins für seinen sekundären Oszillator, um weiterhin die exakte Zeit angeben zu können, während der Mikrocontroller ausgeschaltet ist. Obwohl auch der Oszillator des Hauptblocks des Mikrocontrollers verwendet werden kann, um den RTCC-Block zu betreiben, hört dieser Oszillator auf zu laufen, wenn der Mikrocontroller in den tiefen Ruhemodus schaltet.

Der On-Chip-RTCC verfügt über ein Kalibrierregister und Microchip stellt ein Kalibrierverfahren zur Verfügung, mit dem der Zeiterfassungsfehler für Quarzoszillatorfrequenzen mit Abweichungen bis zu 260 ppm (parts per million) auf 0,66 Sekunden pro Monat reduziert werden kann. Die feste Kalibrierung berücksichtigt jedoch keine Temperaturabweichungen, die sich ebenfalls auf die Oszillatorfrequenz und somit auf die Genauigkeit der Zeiterfassung auswirken können.

Zweitens wird der Mikrocontroller nicht vollständig abgeschaltet, wenn er auf Batterieversorgung umschaltet. Der RTCC-Block bleibt weiterhin in Betrieb. Andere Blöcke des Mikrocontrollers können im Batteriebetrieb abhängig von der Softwaresteuerung aktiv sein oder nicht. Hieraus ergibt sich die Herausforderung, dass Batterieverbrauch und -lebensdauer von der Software abhängig werden.

Diese Herausforderung ist nicht auf den Mikrocontroller PIC32MZ2064DAA288 beschränkt. Sie betrifft jeden Mikrocontroller, in den ein RTCC-Block integriert ist. Durch die Verwendung eines separaten RTCC-Chips wird dieses Problem gelöst, indem die Zeiterfassungsfunktion sauber vom Mikrocontroller getrennt wird. Dies ist außerdem die einzige Designmöglichkeit, wenn der Mikrocontroller nicht über einen integrierten RTCC verfügt.

RTCC-Chips und -Module

Schon seit Jahrzehnten verwenden Entwickler separate RTCC-Chips, um in verschiedenen Embedded- und Computeranwendungen die Zeit zu erfassen. Obwohl mehrere IC-Anbieter solche Chips anbieten, wurde die Evaluierung von RTCC-Chips durch die Oberflächenmontage (SMT, Surface Mount Technology) verkompliziert, da die Komponenten nicht problemlos per Hand aufgelötet oder gesockelt werden können.

Eine gute Lösung ist die Verwendung kostengünstiger Module auf der Basis dieser RTCC-Chips, die keine Schwierigkeiten bei der Prototyperstellung im Zusammenhang mit kleinen IC zur Oberflächenmontage bereiten. Diese Module verfügen außerdem über Batterien, üblicherweise Knopfzellen, um die Stromversorgung selbst dann aufrechtzuerhalten, wenn das Hauptsystem abgeschaltet wird.

Ein gutes Beispiel für ein solches Modul ist das 255 Chronodot von Adafruit (Abbildung 1). Solche Module sind praktisch zur Evaluierung von RTCC-Chips, für Brettschaltungen und Prototypen sowie in vielen Fällen sogar für die Massenproduktion.

Bild: 255 Chronodot von Adafruit

Abbildung 1: Das 255 Chronodot von Adafruit zur Durchsteckmontage verfügt über einen integrierten RTCC-Chip und eine Batterie. (Bildquelle: Adafruit)

In Tabelle 1 sind sechs RTCC-Module aufgelistet, die auf drei verschiedenen RTCC-Chips von zwei IC-Anbietern basieren.

RTCC-Modul RTCC-Chip Schnittstelle Batterie Min. Batterielebensdauer (typ.)
DFRobot DFR0151 Maxim DS1307 I²C CR1225 9 (17) Jahre
SparkFun BOB-12708 Maxim DS1307 I²C CR1225 9 (17) Jahre
Adafruit 3103 Maxim DS3231 I²C CR1220 n. v.
Adafruit 255 Chronodot Maxim DS3231 I²C CR1632 8 Jahre
Maxim DS3231MPMB1# Maxim DS3231 I²C CR1025 n. v.
STM STEVAL-FET001V1 STMicro M41T62 I²C Extern n. v.

Tabelle 1: Sechs RTCC-Module veranschaulichen die breite Verfügbarkeit und Vielseitigkeit von RTCC-Modulen. (Datenquelle: Digi-Key Electronics)

RTCC-Module wie die sechs in Tabelle 1 aufgeführten vereinfachen das Hinzufügen einer Zeiterfassung zu Prototypsystemen. Bei näherer Betrachtung des Designs dieser Module zeigen sich hilfreiche Informationen, wenn eine Platine mit dem zugrunde liegenden RTCC-Chip entwickelt wird.

Was bei Tabelle 1 als Erstes ins Auge sticht, ist der Umstand, dass alle RTCC-Module eine Sache gemeinsam haben, nämlich eine I2C-Schnittstelle. Frühe RTCC-Chips aus den 1970er-Jahren haben mit parallelen Adress- und Datenbussen kleine SRAMS emuliert. Parallele Mikroprozessorbusse waren für die damalige Zeit üblich und serielle On-Board-Protokolle waren noch nicht sehr weit verbreitet.

Heutzutage stellen serielle Protokolle zur Kommunikation zwischen Chips, insbesondere I2C-Schnittstellen, die erste Wahl für Peripheriegeräte dar, die eine relativ geringe Bandbreite erfordern. RTCC-Chips fallen durchaus in diese Kategorie, da zur Übertragung der Datums- und Zeitinformationen nur sehr wenige Bytes benötigt werden.

Die ersten zwei RTCC-Module in Tabelle 1, das DFR0151 von DFRobot und das BOB-12708 von SparkFun, basieren beide auf dem RTCC-Chip DS1307 von Maxim Integrated, einer Komponente mit 8 Pins. Aufgrund seiner Beliebtheit sind für auf diesem Chip basierende Module Arduino-Bibliotheken und Raspbian-Treiber-Overlays für Raspberry Pi verfügbar.

Das RTCC-Modul DS1307 verfügt über separate Pins für die Stromversorgungsschiene und die Batterie, um automatisch zwischen der Stromversorgungsschiene des Embedded-Systems und der Backup-Batterie umschalten zu können, falls die Stromversorgung des Systems ausfällt (Abbildung 2).

Schaltbild des RTCC-Chip DS1307 von Maxim Integrated

Abbildung 2: Der RTCC-Chip DS1307 von Maxim Integrated schaltet automatisch von VCC auf VBAT um, wenn VCC am Pin unter etwa 4,5 Volt fällt. (Bildquelle: Maxim Integrated)

Abbildung 2 zeigt außerdem die Verbindung zwischen dem RTCC-Chip des DS1307 und einem Quarz. Für RTCC-Chips handelt es sich bei diesem Quarz fast immer um einen kostengünstigen Uhrenquarz mit 32.768 Hz wie beispielsweise den WATCH-2X6 von IQD Frequency Products. Dieser Quarz bringt zwei neue Faktoren ins Spiel, die beim Design mit RTCC-Chips berücksichtigt werden müssen.

Der erste Faktor ist die Temperaturstabilität des Quarzes. In den meisten RTCC kommen Stimmgabelquarze zum Einsatz, die ursprünglich für Armbanduhren entwickelt wurden. Bei diesen Quarzen ist die Nennfrequenz von der Temperatur abhängig (Abbildung 3).

Diagramm der Resonanzfrequenz eines Quarzes mit 32.768 Hz

Abbildung 3: Die Resonanzfrequenz eines Quarzes mit 32.768 Hz variiert abhängig von der Temperatur, was Auswirkungen auf die Genauigkeit der Zeiterfassung des RTCC hat. (Bildquelle: IQD Frequency Products)

Die Resonanzfrequenz des Quarzes IQD WATCH-2X6 ändert sich abhängig von der Temperatur. Dies hat eine Änderung der Oszillatorfrequenz zur Folge, was wiederum zu einem Zeiterfassungsfehler führt. Zu beachten ist, dass eine Verschiebung der Oszillatorfrequenz von 20 ppm einen Zeiterfassungsfehler von etwa einer Minute pro Monat bedeutet.

Der zweite Faktor ist durch die übermäßige Vereinfachung der Verbindung zwischen dem Quarz und dem RTCC-Chip in Abbildung 2 nicht klar erkennbar. Die Quarz-Eingangspins von RTCC-Chips weisen üblicherweise eine sehr hohe Impedanz auf, wodurch sich die Anschlüsse des Uhrenquarzes und die Leitungen auf der Platine wie eine Antenne verhalten. Diese „Antenne“ kann zu einer Einkopplung von hochfrequenten Signalen und Rauschen aus dem restlichen System in den internen Quarzoszillator des RTCC führen.

Jegliches über die Leitungen zwischen Uhrenquarz und RTCC-Chip eingekoppeltes Rauschen kann zusätzliche Übergänge im Oszillatorschaltkreis des RTCC-Chip verursachen. Dies kann dazu führen, dass die Uhr zu schnell läuft. Die Lösung hierfür liegt in einem sorgfältigen Layout der Platine. Selbiges beinhaltet die Platzierung des Quarzes so nahe wie möglich an den Pins des Oszillators des RTCC-Chips und die Platzierung einer Grundplatte unter den Quarz-Eingangspins und dem gesamten Gehäuse des Uhrenquarzes (Abbildung 4).

Darstellung der schraffierten Sperrfläche unterhalb des RTCC-Gehäuses

Abbildung 4: Ein sorgfältiges Layout der Platine über einer Grundplatte verhindert, dass sich unerwünschtes Rauschen auf die Genauigkeit eines RTCC-Chips bei der Zeiterfassung auswirkt. (Bildquelle: Maxim Integrated)

Des Weiteren zeigt Abbildung 4 eine schraffierte Sperrfläche unterhalb des RTCC-Gehäuses, die verhindern soll, dass durch eng nebeneinander verlaufende Leitungen Rauschen in die Quarz-Eingangspins von RTCC-Chips eingekoppelt wird. Sofern möglich, sollte um den Quarz und die Quarz-Eingangspins des RTCC-Chips herum ein Schutzring auf der Platine hinzufügt werden, damit sich Rauschen nicht auf die Genauigkeit der Zeiterfassung auswirken kann.

Verlagerung des Uhrenquarzes von der Platine in den Chip

Für das Umgehen einiger der Herausforderungen im Zusammenhang mit dem Platinenlayout für einen externen Quarz empfiehlt sich der RTCC M41T62 von STMicroelectronics mit integriertem Quarz. Dieser RTCC-Chip ist auf der Evaluierungskarte STEVAL-FET001V1 von STMicroelectronics mit der Grundfläche eines DIP-Sockels mit 24 Pins erhältlich. Ein Schaltplan für diese Platine ist in Abbildung 5 zu sehen. Für den M41T62 sind eine Arduino-Bibliothek und ein Raspbian-Treiber-Overlay für Raspberry Pi verfügbar.

Schaltbild des RTCC-Chip M41T62 von STMicroelectronics

Abbildung 5: Der RTCC-Chip M41T62 von STMicroelectronics (Mitte) ist auf der Evaluierungskarte STEVAL-FET001V1 in einem 24-Pin-DIP-Gehäuse verfügbar. (Bildquelle: STMicroelectronics)

Aus dem Schaltbild ist ersichtlich, dass der M41T62 lediglich über ein VCC-Pin verfügt. Ein separates VBAT-Pin, auf das bei einem Ausfall der Hauptstromschiene umgeschaltet werden kann, ist nicht vorhanden. Der Grund hierfür ist, dass die Komponente, die lediglich 1,5 x 3,2 mm misst, für den Einsatz in Wearable-Geräten und Digitalkameras vorgesehen ist. In diesen eingebetteten Anwendungen stellt die Batterie üblicherweise die einzige Stromquelle dar und der Platzbedarf hat Priorität.

Zu beachten ist, dass als Stromquelle für den M41T62 auch ein Superkondensator in Frage kommt. In einem Embedded-System kann die Stromversorgung des Systems oder ein Ladegerät über eine Sperrdiode (siehe D1 in Abbildung 6) mit dem VCC-Pin des M41T62 verbunden werden.

Bei dieser Diode muss es sich um einen Typ mit niedrigem Leckstrom (z. B. die 1N4148WS in Abbildung 5) handeln, um zu verhindern, dass sich der Superkondensator über die Stromversorgung des Systems entlädt, wenn das restliche System abgeschaltet wird.

Schaltbild des wiederaufladbaren Superkondensators, der den RTCC-Chip M41T62 mit Strom versorgt

Abbildung 6: Die Stromversorgung des RTCC-Chip M41T62 kann auch über einen wiederaufladbaren Superkondensator erfolgen. (Bildquelle: STMicroelectronics)

„Zähmung“ des Quarzes durch Temperaturkompensation

Drei der in Tabelle 1 aufgeführten RTCC-Module (das Adafruit 3013, das Adafruit 255 Chronodot und das Maxim DS3231MPMB1#) basieren auf dem RTCC-Chip DS3231 von Maxim (Abbildung 7). Neben einem integrierten Quarz beinhaltet die Komponente einen Temperatursensor, wodurch sich ihre lange offizielle Bezeichnung erklärt: „Extremely Accurate I²C-Integrated RTC/TCXO/Crystal“ (Extrem genauer, I²C-integrierter RTC/TCXO/Quarz).

Schaltbild des RTCC-Chip DS3231 von Maxim

Abbildung 7: In den RTCC-Chip DS3231 sind ein Uhrenquarz mit 32.768 Hz, ein Temperatursensor sowie ein Schaltkondensator-Array integriert, um die Genauigkeit der Zeiterfassung für die Komponente in einem Bereich von ±2 Minuten pro Jahr zu halten. (Bildquelle: Maxim Integrated)

Aus dem Blockdiagramm ist ersichtlich, dass der temperaturkompensierte Quarzoszillator (TCXO) des DS3231 aus dem internen Quarz, einem Temperatursensor und einem Schaltkondensator-Array besteht. Ebenso wie der RTCC-Chip DS1307 verfügt auch der DS3231 über separate Pins für die Hauptstromversorgung (VCC) und die Backup-Batterie (VBAT).

Wie beim RTCC-Chip M41T62 von STMicroelectronics treten beim DS3231 nicht die für externe Quarze typischen Layoutprobleme auf. Der TCXO des Chips verringert die Genauigkeitsabweichung bei der Zeiterfassung, die durch Temperaturschwankungen verursacht wird. Der interne TCXO des DS3231 hält die Genauigkeit der Zeiterfassung für einen großen Betriebstemperaturbereich von -40 °C bis +85 °C innerhalb eines Bereichs von plus oder minus 2 Minuten pro Jahr.

Aufgrund seiner Beliebtheit sind für auf dem RTCC-Chip DS3231 basierende Module mehrere Arduino-Bibliotheken und ein Raspbian-Treiber-Overlay für Raspberry Pi verfügbar.

Wie lange hält die Batterie?

Bei Batterien handelt es sich um Wartungspositionen, die nicht ewig halten. Wenn einem eingebetteten Design ein RTCC hinzugefügt wird, muss auf den vom RTCC-Chip benötigten Batteriestrom geachtet werden, um die Backup-Batterie entsprechend dimensionieren zu können.

Die Batterielebensdauer in einer RTCC-Anwendung wird durch folgende Punkte bestimmt: den Stromverbrauch des RTCC-Chips während der Zeiterfassung, die minimale Betriebsspannung des RTCC-Chips sowie den Zeitraum, über den die Batterie den erforderlichen Strom bereitstellen kann, bevor ihre Ausgangsspannung unter diese minimale Betriebsspannung fällt (Tabelle 2).

RTCC-Chip Typ. Batteriestrom (nA) (max.)
Maxim DS1307 300 (500)
Maxim DS3231 840 (3.000)
STMicro M41T62 5.000 (7.000)

Tabelle 2: Angaben zum Batteriestrom für RTCC-Chips helfen dabei, die Backup-Batterie entsprechend zu dimensionieren. (Datenquelle: Digi-Key Electronics)

Für die in Tabelle 1 enthaltenen RTCC-Module wurden die Backup-Batterien bereits ausgewählt. Manche Modulanbieter machen auf den Datenblättern der Module Angaben zur Batterielebensdauer (siehe ebenfalls Tabelle 1). Lithium-Knopfzellen sind derzeit die erste Wahl für diese Module. Die Durchmesser variieren zwischen 10, 12 und 16 mm. Zugegeben, je größer die Batteriekapazität, desto höher der Platzbedarf und desto mehr Gewicht kommt hinzu. Der eindeutige Vorteil jedoch ist eine längere Batterielebensdauer für einen vorgegebenen Stromverbrauch.

Fazit:

Bei der Auswahl von RTCC-Komponenten, bei der Auswahl der zugehörigen Quarze und Batterien für den ordnungsgemäßen Betrieb und beim Layout der Platine mit Bedacht vorzugehen. Alternativ beschleunigen auf RTCC-Chips basierende Module das Anfertigen von Brettschaltungen und Prototypen, wodurch die Entwicklungsdauer erheblich verkürzt wird.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Autor

Steve Leibson

Steve Leibson war Systemingenieur für HP und Cadnetix, der Chefredakteur für EDN und Microprocessor Report, ein Tech-Blogger für Xilinx und Cadence (u.a.) und er diente als Technologieexperte für zwei Folgen von „The Next Wave with Leonard Nimoy“. Er hilft Entwicklern seit 33 Jahren, bessere, schnellere und zuverlässigere Systeme zu entwickeln.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key