Forum: Mikrocontroller und Digitale Elektronik RTC mit ATMega8


von Hagen (Gast)


Lesenswert?

Hi Experten,

ich nutze am ATmega8 einen 32768Hz Uhrquarz und den Timer2 im
asynchronen Modus. Der Prescaler ist auf 64 eingestellt und der
Overflow Interrupt aktiviert. D.h. alle halbe Sekunde tritt der
Interrupt auf. Soweit so gut, das funktioniert alles. Der ATmega8 ist
die meiste Zeit im Sleep Modus, eg. Power Save Mode.

Meine Frage: ist es normal das schon nach ca. 6 Stunden eine
Gangabweichung von mehreren (>5) Sekunden auftritt ??
Dies passiert nämlich und das kuriose dabei ist das diese
Gangabweichung im negativen liegt, d.h. die Uhr geht nach mehreren
Stunden vor statt nach !!

Ich dachte immer das die Uhrenquarze sehr genau seien. Nach meinen
Berechnungen müsste mein 32768Hz Quarz ca. 17 Hertz schneller schwingen
als er sollte. Laut Atmel Datenblatt werden ja keine externen
Kondensatoren benötigt. Achso, Vcc = 3.2V.
Ich frage da ich mir nicht sicher bin ob nun ich einen Fehler in
Software oder Hardware gemacht habe oder ob das ein ganz normales
Verhalten ist.

Wenn das normal ist wären eure Vorschläge was man dagegen
softwaretechnisch machen kann sehr willkommen. Eine
Ausgleichsberechnung ist wohl logisch, interessanter für mich ist die
Frage der effizienten und exakten Kalibrierung. Ich nutze den internen
Clock des ATmega8. Sowas wie, warte 10 Jahre und errechne die
Gangabweichung ist untauglich.

Gruß Hagen

PS: kommt mir nicht mit einem Oszilloskop, sowas habe ich nicht.
PPS: ein Funkuhrmodul steht derzeit auch nicht zur Diskussion :)

von Fritz Ganter (Gast)


Lesenswert?

Schalte auf jeden Fall die internen Kondensatoren ein, das steht auch im
Datenblatt so drin.
Ich hab mit meinem Quarz 4 Sekunden Abweichung pro Tag, was auch mein
Frequenzzähler bestätigt.

von Hagen (Gast)


Lesenswert?

Hi Fritz,

lange gesucht im Datenblatt, schlußendlich an einer Stelle gefunden wo
ich nie gesucht hätte (den Fuses :), und gleich aktiviert. Ich hatte
somit den Uhrquarz ohne Kondensatoren betrieben. Nun auf zum nächsten
Testlauf.

Danke nochmal für diese schnelle Antwort.

Für alle die's auch nicht wussten, die CKOPT Fuse aktiviert diese
internen Kondensatoren an TOSC1/TOSC2.

Wenn aber bei dir ebenfalls pro Tag 4 Sekunden falsch gehen benötige
ich trotzdem eine Kalibrierung und Ausgleichsberechnung :(

Gruß Hagen

von Moritz -E- (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Hagen.
Wenn dus genau haben willst nimm doch ein Temperatur-kompensierten
Oszillator statt eines reinen Quarzes. Von Dallas gibs einen mit ner
Abweichung von 1 Minute / Jahr. Softwarekompensation dürfte schwierig
sein, da die Abweichungen stark von der Temperatur abhängen dürften und
nicht konstant sind. Also müsstest du die Temperatur messen und die
Temp-Abhängigkeit kennen und so den Fehler errechnen. (Siehe auch
Datenblatt)

Mfg Moritz

von Hagen (Gast)


Lesenswert?

Hm, in dem Fall kann ich ja gleich ein Funkuhrmodul einbauen oder einen
RTC Chip das bringt mir dann mehr. Aber genau auf all diese extra
Hardware will ich im ersten Schritt verzichten.

Mal schauen wie groß jetzt die Abweichung wird. Da meine Clock eh nicht
die Sekunden anzeigt, und diese eher irrelevant sind, könnte ich mit
einer täglichen Synchronisation erstmal leben.

Später wird es wohl ein Funkuhrmodul geben, da es eben den Vorteil hat
die Uhrzeit immer selber korrekt zu halten. Wobei hier schon wieder
ineressant ist welches Modul ihr mir denn empfehlen würdet. Es sollte
so klein wie möglich sein, besonders die Ferritantenne und mit 3.0-3.4
Volt laufen.

Gruß Hagen

von Fritz Ganter (Gast)


Lesenswert?

Man kann den Quarz auch mit einem Trimmkondensator nachziehen, wobei ich
noch keine Klarheit habe, welche Werte ich da brauche. Ich werd das
dann in den nächsten Tagen testen und berichten. Ich hab mir ja extra
dafür ein geniales und billiges Frequenznormal (1x10-10 Abweichung)
zugelegt.

von Hagen (Gast)


Lesenswert?

Wenn ich das alles richtig verstanden habe dann werde ich so oder so
immer Frequenzabweichungen haben, alleine schon wegen der
Temperaturschwankungen. Deshalb wäre es für mich als erstes am besten
wenn ich den Korrekturwert bei einer bestimmten Kalibrierungs-
Umgebungstemperatur ermitteln könnte. In meinem Schlafzimmer treten
normalerweise keine so großen Schwankungen auf, lebe ja nicht in der
Antarktis oder Sahara :) Dies sollte möglichst schnell gehen, höchstens
10-60 Minuten dauern.

Hat irgend jemand hier eine Idee wie man das machen könnte ??

Gruß Hagen

von Hagen (Gast)


Lesenswert?

Wie sieht so'n Frequenznormal aus und woher bekommt man sowas ?

Gruß Hagen

von Fritz Ganter (Gast)


Lesenswert?

http://www.frequenznormal.de.vu/

Als Bausatz kostet der 35 Euronen. Man schliesst ihn an die
Scart-Buchse  am Fernseher an, und schaltet auf ZDF (man muss ja nicht
hinsehen).

Das Ding gibt nach ein paar Sekunden ein hochgenauses 1 und 10 MHz
Signal aus, damit kann man den Frequenzzähler kalibrieren.

von Hagen (Gast)


Lesenswert?

Ok, jetzt läuft die Uhr seit 12 Stunden und hat scheinbar keine bis
jetzt sichtbaren Gandabweichungen mehr. Der Tipp mit der CKOPT Fuse war
goldrichtig, danke nochmal.

Gruß Hagen

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
Noch kein Account? Hier anmelden.