Hi.
Ich möchte bei meinem Gerät eine möglichst genaue Uhrzeit haben, und
zwar über einen Zeitraum von ca 1 Jahr.
Die Zeit soll auch erhalten bleiben, wenn das Gerät nicht am Strom ist.
Daher suche ich nach einem RTC Chip, der die Uhrzeitfunktion übernimmt
und mit einer CR2032 Knopfzelle mindestens mehrere Monate bis 2 Jahre
betrieben werden kann.
Schön wäre es, wenn das RTC Modul auch einen kleinen SRAM Speicher
hätte, um Daten zu speichern, die nach einem Verlust der Uhrzeit (CR2032
entfernt oder leer) nicht mehr weiter verwendet werden sollen / dürfen.
Wenn die Uhrzeit wegen entfernter oder leerer Batterie defintiv nicht
mehr stimmt, muss das Gerät durch den Anwender auf jeden Fall neu
eingestellt werden, in dem es an den PC angeschlossen und neu
synchronisiert wird.
Marc Vesely schrieb:> DS1307 (RTC) + 24C32 (I2C)> 56Byt RAM + 4KB EEP>> Weniger als 1 EUR bei AliExpress.
Edit geht nicht mehr, also:
5 Stuck bestellt, Abweichung von 1.5s/Tag bis 6s/Tag.
Habe eine kleine Tabelle im 24C32, Zeit wird mithilfe dieser
Tabelle korrigiert, bei Raumtemperatur habe ich einen Fehler von
max. 1s/Monat.
56 Byte reicht.
Die Kombi mit DS1307 und 24C32 gefällt mir.
Die beiden Chips können dann zusammen mit der Batterie auf eine Platine
gepackt werden, die dann im Zielsystem eingelötet wird.
Ich brauch ja nur das Einrichtungsdatum im RTC und im EEPROM zu
speichern. Wenn beides nicht übereinstimmt, bzw die aktuelle Zeit keinen
Sinn macht (Vergangenheit, mehr als 3-4 Jahre nach Einrichtungsatum)
wird die gesamte Config als nicht zulässig gewertet.
Der DS3232 hat ein eingebautes SRAM und eine Genauigkeit von +/- 2 min
im Jahr und sollte bei einem mittleren Strom von 3uA und einer CR2032
mindesten ein paar Jahre laufen. I2C Schnittstelle. Es gibt auch noch
eine MEMS Resonator Version, den DS3232M, im 8-Pin Gehäuse.
Mike schrieb:> Hi.>> Ich möchte bei meinem Gerät eine möglichst genaue Uhrzeit haben, und> zwar über einen Zeitraum von ca 1 Jahr.>> Die Zeit soll auch erhalten bleiben, wenn das Gerät nicht am Strom ist.>> Daher suche ich nach einem RTC Chip, der die Uhrzeitfunktion übernimmt> und mit einer CR2032 Knopfzelle mindestens mehrere Monate bis 2 Jahre> betrieben werden kann.>> Schön wäre es, wenn das RTC Modul auch einen kleinen SRAM Speicher> hätte, um Daten zu speichern, die nach einem Verlust der Uhrzeit (CR2032> entfernt oder leer) nicht mehr weiter verwendet werden sollen / dürfen.>> Wenn die Uhrzeit wegen entfernter oder leerer Batterie defintiv nicht> mehr stimmt, muss das Gerät durch den Anwender auf jeden Fall neu> eingestellt werden, in dem es an den PC angeschlossen und neu> synchronisiert wird.
Mike schrieb:> Die Kombi mit DS1307 und 24C32 gefällt mir.
mir nicht mehr, externer Quarz, relativ ungenau, ich verwende nur noch
DS3231 mit externem i2c EEPROM
http://www.ebay.de/itm/1x-DS3231-AT24C32-IIC-Modul-Prazision-Echtzeituhr-Time-Speichermodul-Fur-Arduino-/171366856553?pt=LH_DefaultDomain_77&hash=item27e642b769
Achtung, die werden mal mit mal ohne Akku! ausgeliefert, genau lesen
und/oder Händler befragen, die LiR hier nachkaufen wird teurer als das
komplette Modul.
Akku Version hat Ladediode und R bestückt und braucht 5V und verbietet
CR2032 wegen der Ladeschaltung, es gibt auch welche die werden ohne
Diode und R geliefert für den CR2032 Betrieb.
Akku ist besser wenn selten stromlos geschaltet wird, LR oder LiR 2032
50mAh
Batterie ist besser wenn wenn eher oft stromlos geschaltet wird, CR 2032
200mAh hält also min. 4x länger.
Den 3232 muss ich mir mal ansehen
Mike schrieb:> Die beiden Chips können dann zusammen mit der Batterie auf eine Platine> gepackt werden, die dann im Zielsystem eingelötet wird.
Brauchst du gar nicht, die befinden sind schon auf einer Platine,
zusammen mit CR2032 Batterie.
Joachim B. schrieb:> mir nicht mehr, externer Quarz, relativ ungenau, ich verwende nur noch> DS3231 mit externem i2c EEPROM
Ja, die sind schon genauer, haben aber kein SRAM.
Marc Vesely schrieb:> Joachim B. schrieb:>> mir nicht mehr, externer Quarz, relativ ungenau, ich verwende nur noch>> DS3231 mit externem i2c EEPROM>> Ja, die sind schon genauer, haben aber kein SRAM.
Wer SRAM will, nimmt den DS3232.
fchk
Ich habe mal die Datenblätter der verschiedenen IC gelesen.
Der PCF8583, der DS3232 oder DS3232M wären momentan meine Kandidaten.
Wobei DS3232 irgendwie schwer zu bekommen sind als Bastler.
Reichelt bietet ehr noch die DS1307
Der DS3231 hat zwar kein SRAM, aber mit einem Trick könnte ich ihn
nehmen.
Ich könnte die System-Setup Zeit einfach in das Alarmregister 2
schreiben.
Oder sonstige Registerbits setzen, die nach einem Power+Battery Failure
mit Uhrzeitverlust dann wieder auf 0 stehen.
Der SRAM wird ja nur dafür gebraucht, sicherzustellen, dass das System
nach einem kompletten Spannungsausfall nicht mit einer nicht gestellten
Uhr benutzt wird.
Mike schrieb:> Der SRAM wird ja nur dafür gebraucht, sicherzustellen, dass das System> nach einem kompletten Spannungsausfall nicht mit einer nicht gestellten> Uhr benutzt wird.
Da mußt Du nur ein Register abfragen, was bei einem Spannungsabfall
gelöscht wird. Manche Bausteine haben dafür ein extra Statusbit.
m.n. schrieb:> Da mußt Du nur ein Register abfragen, was bei einem Spannungsabfall> gelöscht wird. Manche Bausteine haben dafür ein extra Statusbit.
entweder das oder ob RTC Time < Compile Time
ich schreibe die Compiletime in den Source wird neu gestartet wird mit
der RTC verglichen, ist die RTC leer dürfte die RTC Time < Compiletime
sein
Mit RAM kann man einen time is set setzen mit EEPROM auch
Mein derzeitiger Plan ist folgender:
Jedes Mal, wenn das System konfiguriert wird, wird die Zeit über den PC
neu gestellt, und der Zeitwert auch im Config EEPROM gespeichert.
Außerdem wird im Alarmregister eine Zeit eingetragen, die 2 Jahre in der
Zunkunft liegt.
Anschließend wird bei jedem Systemstart geprüft, ob die Zeit im RTC vor
dem letzten Config Zeitpunkt liegt, und ob das Alarmregister leer ist
oder der Wert überschritten ist.
Falls ja, wird der User dazu aufgefordert, die Zeit neu zu stellen, weil
davon auszugehen ist, dass die Zeit ungenau oder falsch ist.
m.n. schrieb:> Dann darf die Uhr aber keine Sekunde nachgehen ;-)
doch kann sie, das wird nicht verhindert
ich wunderte mich gerade nach Neustart das ich die Uhr nicht
zurückdrehen kann hatte nur hh und mm zugelassen und frührere Stunde als
Compiletime geht halt nicht :-)