RTC mit einstellbarem Alarm für Jahreszahl gesucht

OP #4716176
Lesenswert?

Hallo,

ich habe jetzt schon einige RTC Chip Datenblätter durchgeschaut und 
immer nur einen einstellbaren Alarm bis zu einem wählbaren Monat 
gefunden. D.h. der am weitesten in der Zukunft liegende Alarm wäre dann 
auf 364Tag, 23h, 59min usw. zu stellen. Ich hätte aber den Bedarf einen 
Alarm auch mal auf 2-3 Jahre in der Zukunft zu stellen. Sprich das Alarm 
Feature sollte auch noch über das Jahr als einstellbare Größe verfügen. 
Klar könnte man sich auch etwas mit einem Zähler basteln der dann halt 
2-3 mal hochgezählt haben muss bis der eigentliche Alarm soweit ist. 
Aber richtig elegant ist das nicht.
Kennt jemand so einen Baustein? Achja, dummerweise brauche ich auch noch 
das Feld 'Hundreths of seconds'. Die feine Auflösung hat ja auch leider 
nicht jeder RTC Baustein. I2C Interfache wäre auch ganz gut. Ist aber 
nicht zwingend.

Viele Grüße
Markus
#4716236
Lesenswert?

Was hindert Dich daran, den MC jeden Tag einmal aufzuwecken, die Tage zu 
zählen und mit einem Wert im EEPROM zu vergleichen.
Idealer Weise zählt man die Zeit intern in 32Bit Sekunden, dann ist es 
nur ein 32Bit-Vergleich.

Nehmen wir eine Testzeit von 100ms alle 24h und einen Stromverbrauch von 
20mA aktiv, dann ist der zusätzliche Stromverbrauch satte 23nA.
Gast #4716306
Lesenswert?

... und Peters Vorschlag hat den zusätzlichen Charme, dass du frühzeitig 
auf Umgebungveränderungen wie LowBattery oder Draht ab reagieren kannst 
und das nicht erst dann feststellen musst, wenn nach drei Jahren der 
Alarmzeitpunkt gekommen ist.
Gast #4716348
Lesenswert?

Peter D. schrieb:
> Idealer Weise zählt man die Zeit intern in 32Bit Sekunden, dann ist es
> nur ein 32Bit-Vergleich.

Der TO will 3 Jahre in 1/100 Sekunden. Wahrscheinlich eh nur Spinnerei, 
aber das überschreitet 32 bit, ist aber kein grundsätzliches Hindernis.

Hoffentlich findet er auch eine RTC, die in 2 Jahren auf 0,01 Sekunden 
genau bleibt. Dass RTCs das i.d.R. nicht auflösen, liegt eben daran, 
dass die Abweichung auch im allerbesten Fall einige Sekunden pro Jahr 
beträgt und eine Sub-Sekunden-Auflösung einfach nicht sinnvoll ist.

Georg
#4716367
Lesenswert?

Die 10ms Auflösung braucht er wohl kaum zum Aufwachen.

Die übliche Herangehensweise ist, man holt sich einmalig nach dem 
Aufwachen die RTC-Zeit ab und zählt dann intern mit dem CPU-Quarz und 
einem Timer weiter. Damit kann man selbst 1µs Auflösung problemlos 
ereichen.
Gast #4716409
Lesenswert?

Du kannst problemlos einen Uhrenquarz an einen AVR hängen, einen Timer 
asynchron laufen lassen und bei Überlauf wacht der Chip auf. Dann zählst 
du einfach deine Zeit runter. RTC selbst gebaut.
Das habe ich mal gemacht, um eine LED alle paar Sekunden aufblitzen zu 
lassen. Mit 3x 1,5V-Batterie in Reihe läuft das locker zwei Jahre. 
Wahrscheinlich gibt's auch noch Optimierungspotenzial, was den 
Energieverbrauch des Chips angeht.
#4716547
Lesenswert?

Georg schrieb:
> Hugo schrieb:
>> Du kannst problemlos einen Uhrenquarz an einen AVR hängen
>
> Da bekommt der TO ein Problem: 100 Hz lassen sich nicht von 32768 Hz
> ableiten, höchstens 64 Hz oder 128 Hz. Also nix mit 1/100 Sekunde.
>
> Georg

Deswegen wird ja auch gern folgendes gemacht: Asynchronen Timer mit 
Uhrenquarz betreiben, OC-Interrupt jede Sekunde, Rest des Systems mit 
internem RC-Oszillator, dann den 16-Bit Timer mit beliebiger Auflösung.
Im OC-Interrupt des async. Timers dann den internen Oszillator über 
OSCCAL kalibrieren (Über Soll-/Istvergleich des 16bit-Timerwertes). 
Damit kriegt man das das ganze System trotz RC-Oszillator so genau hin 
wie durch die Genauigkeit des Uhrenquarzes vorgegeben. Für 
Langzeitgenauigkeit ist dann eh noch ein periodischer Abgleich mit einem 
Zeitnormal wie zb DCF77 oder NTP erforderlich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren