mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RTC mit einstellbarem Alarm für Jahreszahl gesucht


Autor: Markus Krug (markus_k230)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jim Meba (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gcc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hugo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rainer B. (katastrophenheinz)
Datum:

Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.