Eckdaten
Mary Tamar Tan von Microchip Technology erklärt, wie eine Echtzeituhr und ein Kalendermodul die Bauteilanzahl und Programmierungskosten in Smart Metern und anderen Anwendungen verringern können.
Mit einem RTCC-Modul, das den genauen Erhalt von Zeit und Datum garantiert, bieten sich Vorteile in Anwendungen wie Digitalweckern und intelligenten Verbrauchszählern (Smart Meter), die zunehmend zum Einsatz kommen, da immer mehr Länder intelligente Stromversorgungsnetze (Smart Grids) aufbauen.
Das Modul basiert auf PIC-Mikrocontrollern von Microchip und stellt eine 100-jährige Uhr mit Kalenderfunktion dar, inklusive automatischer Schaltjahrerkennung. Von der ersten Sekunde des 1. Januar 2000 bis zu einer Sekunde vor Mitternacht am 31. Dezember 2099 erstreckt sich der Uhr-/Kalenderbereich. Anstelle des AM- und PM-12-Stunden-Formats kommt das 24-Stunden-Format zum Einsatz – mit einer Auflösung ab 0,5 s. Der Alarm ist auf 0,5, 1 und 10 s, 1, 10 und 60 min oder für Tage, Wochen und Monate einstellbar.
Bild 1 beschreibt das Blockdiagramm des Moduls. Es nutzt eine separate Taktquelle eines externen Quarzes, der mit 32,768 kHz schwingt, die vom sekundären Oszillator (SOSC) des T1OSC stammt. Damit läuft das Modul auch dann, wenn der CPU-Takt im Deep-Sleep-Modus deaktiviert ist.
Der 1:16384-Taktvorteiler bietet 0,5 s Auflösung, wodurch es dem RTCC-Timer möglich ist, die entsprechenden Sekunden-, Minuten-, Stunden-, Tag-, Monats- und Jahreswerte zu erhöhen, die in den RTCVALx-Registern gespeichert sind. Verglichen werden diese Werte mit dem vom Nutzer eingestellten Alarm, um einen Alarm-Interrupt zu setzen, sobald eine Übereinstimmung vorhanden ist.
Gespeichert werden die Alarmwerte in den ALRMVALx-Registern. Alarmmasken dienen zum Einstellen der Zeitintervalle zwischen jedem Alarmereignis, sobald mehrere wiederkehrende Alarme erforderlich sind. Je nach Konfiguration kann der RTCC-Pin entweder den Sekundentakt oder einen Alarmimpuls bei der halben Frequenz des Alarms ausgeben. Um die Firmware zu vereinfachen, werden die Registerschnittstellen für die RTCC- und Alarmwerte im BDC-Format (Binary Coded Decimal) eingegeben.
Peripherie-Konfiguration
Der Anwender konfiguriert die Zeit, indem er die erforderlichen Jahr-, Monats-, Tag-, Stunden-, Minuten- und Sekundenwert in die Timer-Register schreibt. Das RTCC-Enable-Bit (RTCEN) sowie die RTCVALH- und RETCVALL-Register lassen sich jedoch nur dann beschreiben, wenn das RTCC-Value-Register-Write-Enable-Bit (RTCWREN) auf Eins gesetzt ist, anderenfalls wird jegliches Beschreiben auf diese Register ignoriert. RTCC-Timer- (RTCVALx) und Alarm-Timer-Register (ALRMVALx) sind nur über die entsprechenden Registerzeiger zugreifbar. Jedes Schreiben oder Lesen des RTCVALH-Registers verringert den RTCC-Pointer-Wert um den Wert Eins, bis 00 erreicht wird.
Ist der RTCC-Ausgangspin aktiviert, kann der Nutzer entweder den Sekundentakt oder einen Alarmimpuls ausgeben, der mit der halben Frequenz des Alarms läuft. Für ein genaueres Timing und einen ununterbrochenen Betrieb des RTCC (selbst im Deep Sleep), ist der SOSC als Taktquelle für die Peripherie zu empfehlen. Sobald RTCC aktiviert ist, führt der Timer das Zählen ab dem eingestellten Startzeitpunkt durch. Um ein versehentliches Schreiben auf die RTCC-Timer-Register zu vermeiden, sollte das RTWREN-Bit gelöscht werden, sobald nicht in das Register geschrieben wird. Die Alarmfunktion ist konfigurierbar von einer halben Sekunde bis zu einem Jahr und kann je nach Bedarf des Anwenders wiederholt werden. Jedes Lesen oder Schreiben des ALRMVALH-Registers senkt den Alarm-Zeigerwert um den Wert Eins.
Batterie-Backup-Modus
Bei einem Stromausfall lässt sich das RTCC-Modul mit einer Backup-Batterie betreiben, um die Zeitgenauigkeit nicht zu beeinträchtigen. Dieser VBAT-Modus sorgt dafür, dass die PIC-Mikrocontroller im MCU-Stromsparbetrieb und im ununterbrochenen Betrieb des RTCC-Moduls arbeiten – und zwar über den VBAT-Hardware-basierten Stromversorgungsmodus. Dieser Modus nutzt eine Backup-Stromquelle, die an den VBAT-Pin angeschlossen ist (Bild 2.)
Ein integrierter Schalter erkennt den Stromausfall an VDD und verbindet den VBAT-Pin mit dem Erhaltungsregler. Damit steht Strom bei 1,2 V zur Verfügung, um den Erhaltungsregler und das RTCC-Modul zu betreiben – inklusive der Taktquelle (falls aktiviert) und den Deep-Sleep-General-Purpose-Registern (DSPGPRx). Das RTCC-Modul arbeitet genauso so weiter, als ob keine Unterbrechung der Stromversorgungzufuhr erfolgt wäre.
Sobald VDD wieder hergestellt ist, wird der Baustein aus dem VBAT-Modus aktiviert. Der Wake-up aus diesem Modus wird durch Überprüfung des Zustands des VBAT-Bits identifiziert. Ist dieses gesetzt, wenn der Baustein aktiv ist und Code vom Reset-Vektor ausführt, deutet dies auf das Ende des VBAT-Modus hin. Um zukünftige VBAT-Wake-up-Ereignisse zu erkennen, ist es erforderlich, das Bit über Software zu löschen.
Eines der Microchip-Demoboards, das den VBAT-Betrieb unterstützt, ist das LCD Explorer Demonstration Board. Es wird mit einer Batteriehalterung für eine CR2032-3V-Knopfzelle ausgeliefert.
Einsatz in einem Digitalwecker
Bild 3 zeigt die Implementierung des RTCC-Moduls, LCD-Treibers und des Capture-Compare-PWN (CCP) -Moduls für einen Digitalwecker. Der SOSC stellt den Takt für das RTCC-Modul bereit. Ist der RTCC-Pin so konfiguriert, dass er den Sekundentakt ausgibt, blinkt LED D1 einmal pro Sekunde. Über Firmware werden die Werte in den RTCVALx-Registern eingestellt und über das LCD-Treibermodul auf LCD1 angezeigt. Um einen pulsweitenmodulierten Ausgang zu erzeugen, der den Piezo-Summer P1 im Alarmfall aktiviert, triggert der Alarm-Interrupt das CCP-Modul. Die Dauer des Alarms wird durch Firmware gesteuert. Über die Taster S1, S2 und S3 lassen sich die anfänglichen RTCC-Zeit-/Datumswerte und die Alarmeinstellungen festlegen. Eine der Tasten kann auch als Auslöser für den Start der RTCC-Zählung verwendet werden.
Für diese Anwendung stehen verschiedene Microchip-Demoboards zur Verfügung. Mehrere PIC-MCUs mit RTCC-Modul bieten auch einen integrierten LCD-Treiber, der das Display direkt ansteuern kann, während andere das MSSP-Modul nutzen, um mit dem LCD zu kommunizieren, während die Zeit und das Datum angezeigt werden.
Einsatz in einem Stromzähler
In einem Stromzähler lässt sich das RTCC-Modul zusammen mit anderer Peripherie integrieren, wie zum Beispiel A/D-Wandler und LCD-Treiber. MCUs für Stromzähler sollten einen hochauflösenden A/D-Wandler für Spannungs- und Strommessungen enthalten, wenig Strom verbrauchen, an einer Batterie betrieben werden können, um einen ununterbrochenen Betrieb des RTCC-Moduls zu gewährleisten und ein EEPROM für die Datenspeicherung und die Kalibrierungsdaten enthalten. Microchip bietet eine Reihe von 8-Bit-PIC-MCUs, die diese Anforderungen erfüllen.
Die periodische automatische Anpassung im RTCC-Modul kann der Anwender zusammen mit dem A/D-Wandler nutzen, um eine Temperaturkompensation mittels Software durchzuführen und eine genaue Zeit zu garantieren. Diese MCUs bieten auch ein integriertes LCD-Modul, das ein Display direkt ansteuert und somit den Stromverbrauch in Echtzeit anzeigen kann. Hinzu kommt eine externe Schnittstelle für eine Batteriequelle über den VBAT-Pin. Damit wird bei einem Stromausfall das RTCC-Modul dauerhaft weiterbetrieben.
Fazit
Die RTCC-Module der PIC-Mikrocontroller bieten die nötige Funktion, um die genaue Zeit und das genaue Datum bereitzustellen. Sie sind einfach konfigurierbar, ermöglichen eine automatische Fehlerkalibrierung und haben einen sehr geringen Stromverbrauch. Da das Modul in der Regel nicht selbst implementiert ist, kommt sein Nutzen vor allem bei der Integration mit anderer Peripherie zum Tragen. PIC-Mikrocontroller bieten eine Vielzahl an Peripherie, die zusammen mit dem RTCC-Modul für Digitalwecker, Stromzähler und andere Anwendungen zum Einsatz kommt.
Mary Tamar Tan
(ah)
Sie möchten gerne weiterlesen?
Unternehmen
Microchip Technology Ltd
Unit 720, Wharfedale Road, Winersh
0 Wokingham. RG41 5TP
United Kingdom