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
Markus K. schrieb: > Achja, dummerweise brauche ich auch noch > das Feld 'Hundreths of seconds'. Dann würde ich eher zu einem µC mit integrierter RTC raten, wo man direkt Zugriff auf den RTC Counter hat. Über I²C wäre mir das zu lahm. Bei EFM32LG/GG/WG z.B. gäbe es auch einen extra Versorgungspin falls nötig.
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.
... 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.
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
Georg schrieb: > 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. Das liegt wohl eher daran, dass der Quartz nicht genauer ist.
Pete K. schrieb: > Das liegt wohl eher daran, dass der Quartz nicht genauer ist. wenn der Quarz auf einer Temperatur gehalten wird, warum sollte er abweichen? OK er kann kaputt gehen oder fremdbeschleunigt werden.
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.
Peter D. schrieb: > Die übliche Herangehensweise ist, man holt sich einmalig nach dem > Aufwachen die RTC-Zeit ab sehe ich auch so, die Uhr geht genauer als die interne Zählung, also stellt man den Wecker von der RTC für alle größere Zeit und lässt die CPU schlafen, die kleinen Zeiten unter 1 Sekunde macht der CPU Timer
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.
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
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.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.