Hi, ich hab mir eine Binär-Uhr gebastelt. Die Uhrzeit wird über ein paar LEDs angezeigt. Hier ein kleines Foto (15:28Uhr) http://bip.homelinux.org/~bip/bin_clock_klein.png. Ich benutze dafür einen ATmega8. Allerdings ist mir nun nach einem etwa 24 stündigem Testlauf aufgefallen, dass die Uhr ungefähr 10 Sekunden nach geht. Kann dies an den Tolleranzen des 4MHz Quarzoszillators liegen? Schwingen die wirklich so ungleichmässig? Bei Reichelt steht was von Frequenztoleranz: +/- 100ppm. Ich kann allerdings nichts mit ppm anfangen. Dummerweise habe ich zuspät erfahren, das es auch spezielle Uhrenquarze gibt. Die Spannung wird über einen 7805 geregelt. Sollte also konstant genug sein. An dem Programm ansich, liegt es glaub ich weniger, aber ich habe es trotzdem mal angehangen, vielleicht findet ja jemand eine Fehlerquelle. Bin noch ziemlich neu im µC Geschäft :) Dank Euch! Gruß Daniel
Hallo Daniel, 10 Sekunden pro Tag sind doch schon super. Bei Reichelt steht was von Frequenztoleranz: +/- 100ppm. Ich kann allerdings nichts mit ppm anfangen. ppm Part Per Million Teile pro Million Bei deinen 4MHz darf das Ding also mit 4000400 Herz schwingen. Uhrenquarze sind meines Wissens auch nicht genauer. In einer Uhr wird die Frequenz mit den Kondensatoren abgeglichen. Rechne doch mal die Anzahl der Sekunden pro Tag aus. Dann noch mal schnell deine prozentuale Abweichung. Da bist du schon recht genau. MfG Oryx
@Daniel Nöthen: ppm = parts per million ("teile pro millionen") 100 ppm = 100/1.000.000 = 1/10.000 24 Stunden * 60 Minuten/Stunde * 60 Sekunden/Minute = 86.400 Sekunden 86400 Sekunden * 1/10.000 = 8,6 Sekunden Das passt ziemlich genau zu Deiner Beobachtung. Lösung: Z.b. über eine Woche die Abweichung anhand einer Funkuhr exakt ausmessen, und dann per Software den Fehler kompensieren.
Ach so ist das. Gut dann werde ich das mal versuchen. Bei nem Oszillator kann man die Frequenz nicht mit Kondensatoren abgleichen, richtig?
Nee, leider nicht. Aber Du könntest Dir ja nen DCF Empfänger dranbasteln, wäre sicherlich auch interessant :) Oder einfach per Software tgl. die 10 Sekunden abziehen, schon passt's, ist zwar nicht elegant aber dafür easy.
@MathiasM: Richtig, DCF77 wird wohl das nächste Projekt sein :)
Wenn du einen normalen Schwingquarz (keinen Oszilator) an deinem M8 benutz kannst du einen der beiden Kondensatoren durch einen C-Trimmer ersetzen (habs aber selbst noch nicht ausprobiert). siehe z.B. http://www.sprut.de/electronic/mess/frequenz.htm
Du kannst auch einen lansameren Oszilator zur Zeitmessung nehmen. Ein Oszi mit 1MhZ hat nur noch 1/4 der Abweichung eines 4Mhz Oszis, da die Genauigkeit in ppm angegeben ist. Die Uhrenqarze liegen mit ihren 0,032.. Mhz bei ca 1/100 eines 4Mhz dadurch hättest du am Tag nur noch einen Abweichung von 0,08s und da die genauigkeit bei Quarzen auch im +-30ppm bereich liegt hast du noch +-0,03s pro Tag. Das wären im Jahr ca 10s und das ist doch auch zu verschmerzen. Eine normale Qarzuhr bringt auch keine höhere genauigkeit. Wenn du es aber genau brauchst und ein DCF Signal auswerten willst kannst du natürlich auch mit einem DCF Emfänger arbeiten. Aber bei einfachen Anwendungen reicht ein Uhrenquarz normalerweise aus. Und preislich liegt ein Quarz bei 0.22 und ist schön klein.
Meine Rechung sieht so aus: 30 ppm (parts per million) = 30 * 10^-6 30*10^-6 * 86400 Sekunden/Tag = 2,592 Sekunden/Tag maximaler Fehler und zwar unabhängig von der Quarzfrequenz, denn der Fehler im ppm ist ja eine relative Angabe. Christian
Um mal Klarheit in die Sache zu bringen: Man KANN einen Quarz mit den Kondensatoren abgleichen. Und das sehr gut. Ich habe in meinem Zimmer eine Uhr mit einem PIC stehen. Der Quarz wird mit einem 33pF Trimmer abgeglichen. Mittlerweile stelle ich die Uhr zwei mal im Jahr, immer genau dann wenn die Uhr sowiso umgestellt wird. Die Abweichung beträgt dann ca. +/-1 Minute. Im Sommer + im Winter - (oder umgekehrt ?). Der Temperaturdrift ist also größer als die Ungenauigkeit.
@Benedikt Ist es egal auf welcher Seite (XTAL1/2 bei den Atmels) man den Trimmer anbringt?
@Christian Ups da hast du wohl recht!! Etwas vorschnell geantwortet... Also ich nehme meine Behauptung zurück. Aber ich habe gerade auch eine kleine Messung laufen lassen und kam mit einem 4Mhz Oszi auch auf 8,..s am Tag. Das würde der sich mit deiner Rechnung decken und im Tolleranzbereich liegen. Aber die Trimmung müßte auch Softwaremäßig ganz gut zu machen sein. Denn den Temperaturdrift bekommt mann mit einem Trimmkondesator auch nicht in den Griff.
Hmmm...man kann einfach den 1s takt von dem dcf signal benutzen (externer interrupt). dann muss man nichtmal ne grosse software zum auswerten des dcf-signals schreiben. Schon ganz schön was so ne uhr für abweichungen hat. MfG Axos
Was haltet ihr von dem Vorschlag eines "Quarzofens"? Also den Quarz, die Kondensis einpacken und mit 'nem Widerstand auf z.B. 40°C halten. Wird in "Profigeräten" auch gemacht, allerdingens schlecht bei Batt.-Betrieb - geb' ich ja zu.........
@Kupfer Michi >Ist es egal auf welcher Seite (XTAL1/2 bei den Atmels) man den >Trimmer anbringt? Am Ausgang des Oszillators waren bei meiner Schaltung 12pF, am Eingang 2pF + 5-22pF Das ganze an einem 4,191304MHz Quarz
hallo @Wolle das mit dem Quarzofen funktioniert gut, Quarz Armbanduhren sind nur deshalb so genau, weil die Temperatur am Handgelenk halbwegs konstant ist Aufbau einfacher Quarzofen: einen (alten) Quarz im HC49 Gehäuse unten mit einer Eisensäge absägen als Heizung kleinen PTC auf der Leiterplatte dicht am Uhrenquarz die abgesägte kappe über beide Bauteile stülpen , evtl festkleben Peter
... eine andere Möglichkeit ist einen temperaturkompensierten Quarzoszillator einzusetzen (DS32KHz von Maxim). Die Stromaufnahme ist äußerst gering, die Genauigkeit beträgt +/- 1 Minute pro Jahr im Temperaturbereich von 0-40°C. Allerdings schwer beschaffbar, gibt es nur bei Digikey im DIL-Gehäuse.
Also meine Uhr läuft mit einem AtMega16 und dem RTC IC DS1307. Damit habe ich ca +1s/Tag Abweichung. Der Wert ist auch schon ok, meine Uhr am Handgelenk macht ca 4s/Tag, dafür ohne Elektronik :-) mfg Oliver
Hallo, ich muss mich mal kurz dazu äußern. Ich hab ein ähnlich gelagertes Problem: Uhrenquarz -> RTC (DS1305) Ergebnis sehr ungenau. Warum? Der DS1305 erwartet eine kapazitive Last von 6pF, der Standart-Uhrenquarz hat eine CL von 12.5 pF... In der AN58 von Maxim sind für diese Konstellation: Wrong crystal. An RTC typically runs fast if a crystal with a specified load capacitance (CL) greater than the RTC-specified load capacitance is used. The severity of the inaccuracy is dependent on the value of the CL. For example, using a crystal with a CL of 12pF on an RTC designed with a 6pF CL causes the RTC to be about 3 to 4 minutes per month fast. 1. Vielleicht ist ja da auch eine Optimierungsmöglichkeit ;-) 2. Wo bekommt man Uhrenquarze mit CL 6pF ? Der DS32 ist da vielleicht etwas "overdressed" der ja als DIP recht groß und als BGA-Bauform schlecht zu löten ist. Ciao
Das mit dem Quarzofen wollte ich früher auch immer mal bauen, ist viel zu umständlich. Machs lieber andersrum: Messe die Temperatur (NTC, PTC auf AD-Input oder volldigitale Sensoren wie hier im Forum schon 100-fach beschrieben) und mache den Teiler per SW davon abhängig. Mit einer entsprechenden Tabelle wirst Du eine Genauigkeit besser als eine Minute pro Jahr (=1,9012ppm) erreichen. Evtl. fürs Feintuning den Teilfaktor per Tasten änderbar machen. Du kannst die Alterung des Quarzes auch noch gleich mitkompensieren.
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.