Quarzabgleich direkt oder in externer RTC

Gast #4548085
Hallo,
für ein Funkuhrprojekt benötige ich Schaltvorgänge sekundengenau, jedoch 
nur etwa 4-10 Mal pro 24 Stunden. Ich habe also ~ 4 Zeiten, zu denen 
sekundengenau eine kurze Funktion abgearbeitet werden soll. 
DCF77-Abgleich 1x pro Tag.

Meine Testfunkuhr ist mit einem 32,768 kHz Uhrenquarz aufgebaut und die 
ISR wird einige Male pro Sekunde aufgerufen, damit ich nach x Ticks den 
ermittelten Quarzfehler kompensieren kann (ich kompensiere so, dass sich 
kein merkbarer Fehler anhäuft, bis ich einen Korrekturtick ausführe).

Jetzt soll das Ganze im Akkubetrieb laufen, und der sleep-Modus benutzt 
werden. Mit meinem bisherigen Konzept müsste ich den AVR etwa bis zu 10 
Mal pro Sekunde schlafen legen und wieder aufwecken. Wären da 
irgendwelche Hardwareschäden zu erwarten, oder kann man das so machen? 
Sorry für die vielleicht doofe Frage, aber bisher habe ich den 
sleep-Modus nicht ernsthaft angewendet, und vergleiche es vermutlich 
fälschlicherweise mit elektrischen Ein- und Ausschaltvorgängen oder dem 
Standby beim PC......

Ich habe auch schon viel von externen RTCs gelesen. Ist es möglich, 
darin den bekannten Quarzfehler zu hinterlegen, oder muss dann auch in 
meinem AVR kompensiert werden?
Gast
Egon Lange schrieb:
> Wären da irgendwelche Hardwareschäden zu erwarten, oder kann man das
> so machen?

Kann man. Hardwareschäden gibt es, wenn du über längere Zeit 10-mal pro 
Sekunde den Korrekturwert in die selbe EEPROM-Zelle schreibst.
Gast
Natürlich kannst du den Sleep-Modus so aufrufen wie du willst. 
Normalerweise setzt man ein Sleep ans Ende der Hauptschleife, macht den 
nächsten Schleifendurchlauf erst nach einem Interrupt.
Gast
Den Sleep-Mode (wenn du dabei nicht jedesmal was ins EEPROM
schreibst) kannst du so oft aufrufen, wie du willst, damit
kriegst du keinen AVR kaputt!

Wie willst du 4...10 mal pro Sekunde einen Quarz auf DCF
abgleichen?

Der übliche DCF-Empfang ist bei der Polling-Methode auf
100 ms genau.

Das ergibt über eine Stunde 0,1 s / 3600 s = 28 ppm,
also die Genauigkeit eines nicht (!) abgeglichenen Quarzes.
Ein Vergleich in kürzeren Abständen bring schon mal garnix!
Damit hat man pro Tag 2,4 s Unsicherheit.

Vergleicht man DCF und Quarz jeweils nach der täglichen
DCF-Synchronisierung, hat man schon eine 1,15 ppm genaue
Fehlerbestimmung und kann den Quarz viel exakter abgleichen.

Erst damit bekommt man die RTC auf 0,1 s Fehler pro Tag.
Gast
Jakob schrieb:
> Wie willst du 4...10 mal pro Sekunde einen Quarz auf DCF
> abgleichen?

gar nicht. Ich meinte, dass ich den bekannten (!) Quarzfehler 
berücksichtigen möchte. Ich könnte x sekunden abwarten und dann +/- 1 
Sekunde kompensieren. Dann hätte ich aber den Fehler immer bis zu 1 
Sekunde aufsummiert, bevor er wieder auf 0 geht. Ich will also häufiger 
kompensieren. Deshalb will ich bspw. 4 Ticks pro Sekunde und nach x 
Ticks dann +/- 1 Tick addieren. Hätte dann also nur 0,25 Sekunden 
maximale Abweichung.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.