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 :)
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.
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
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
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
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.