Forum: Mikrocontroller und Digitale Elektronik Genauigkeit eines Quarzoszillators


von Daniel Nöthen (Gast)


Angehängte Dateien:

Lesenswert?

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

von Oryx (Gast)


Lesenswert?

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

von Daniel Nöthen (Gast)


Lesenswert?

Ohje, sorry wegen den komischen Tabs im Code, in AVR Studio sah es schön
gleichmässig aus.

von Michael (ein anderer) (Gast)


Lesenswert?

@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.

von Daniel Nöthen (Gast)


Lesenswert?

Ach so ist das. Gut dann werde ich das mal versuchen.

Bei nem Oszillator kann man die Frequenz nicht mit Kondensatoren
abgleichen, richtig?

von MathiasM (Gast)


Lesenswert?

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.

von Gast (Gast)


Lesenswert?

Ja

von Daniel Nöthen (Gast)


Lesenswert?

@MathiasM:

Richtig, DCF77 wird wohl das nächste Projekt sein :)

von Kupfer Michi (Gast)


Lesenswert?

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

von Benjamin Böck (Gast)


Lesenswert?

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.

von Christian Zietz (Gast)


Lesenswert?

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

von Benedikt (Gast)


Lesenswert?

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.

von Kupfer Michi (Gast)


Lesenswert?

@Benedikt
Ist es egal auf welcher Seite (XTAL1/2 bei den Atmels) man den Trimmer
anbringt?

von Benjamin Böck (Gast)


Lesenswert?

@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.

von Axos (Gast)


Lesenswert?

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

von Wolle (Gast)


Lesenswert?

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.........

von Benedikt (Gast)


Lesenswert?

@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

von PeterL (Gast)


Lesenswert?

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

von Jerome Parlebas (Gast)


Lesenswert?

... 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.

von Oliver (Gast)


Lesenswert?

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

von Uwe Seidel (Gast)


Lesenswert?

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

von Profi (Gast)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

wie sind denn die temperatur-werte der abweichung denn?

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.