Forum: Projekte & Code Quarzfrequenzmessung mit DCF77 Funkuhr


von Rolf P. (rolfp)


Angehängte Dateien:

Lesenswert?

Ich habe mir ein Gerät gebastelt um Quarz-Frequenzen genau zu messen. 
Bei meinem diskreten Frequenzmessgerät hatte ich immer das Problem, dass 
ich nicht genau wusste wie genau denn der dort eingebaute Quarz ist. 
Jetzt mit diesem neuen Aufbauch benutze ich das DCF77-Funkuhrsignal als 
Zeitreferenz. Ich hab schon einige Quarze ausprobiert und es scheint 
soweit zu funktionieren. Ob eine Genauigkeit von besser als 1 Hz (im 
Programm ist bis zu 0.001 Hz vorgesehen) auch wirklich erreicht werden 
kann, weiss ich noch nicht. Das auszutesten wird noch einige Zeit in 
Anspruch nehmen.
Uhrenquarze zu messen (wo die Auflösung von 0.001 Hz auch Sinn machen 
würde) funktioniert leider (noch) nicht.
Quarze im Bereich von 3.5 bis 16 MHz funktionieren aber ohne 
Programmändrungen. Einfach den zu messenden Quarz einstecken und dann 
einschalten.
Hier noch die entsprechende Homepage:
http://www.rolfp.ch/elektronik/#funkuhr2

Rolf

von Simon K. (simon) Benutzerseite


Lesenswert?

Hat das einen Grund, warum du C Code in C++ Dateien schreibst?
Und dein Code ist irgendwie, äh, sehr schwer zu lesen. Du gönnst dir 
auch gar keine Leerzeilen, hm? ;-)

Ansonsten aber eine lustige Idee.

Um auf die Genauigkeit zu kommen, müsste man aber glaube ich schon einen 
sehr großen Mittelwert von dem DCF bilden.

von Rolf P. (rolfp)


Lesenswert?

Simon K. schrieb:
> Hat das einen Grund, warum du C Code in C++ Dateien schreibst?

Ja, weil ich ab und zu mal c++ Eigenschaften verwende. Z.B. const ulong, 
oder Variablendeklarationen mitten in einer Funktion.

> Und dein Code ist irgendwie, äh, sehr schwer zu lesen. Du gönnst dir
> auch gar keine Leerzeilen, hm? ;-)

Irgendwie kann ich den Überblick besser behalten wenn ich keine 
Leerzeilen verwende, und so im Editor einen grösseren Ausschnitt vom 
Programm gleichzeitig sehe.
Was ist denn sonst noch schwer lesbar?

Simon K. schrieb:
> Um auf die Genauigkeit zu kommen, müsste man aber glaube ich schon einen
> sehr großen Mittelwert von dem DCF bilden.

Ja genau. Deshalb lasse ich es Stundenlang oder Tagelang laufen. Darum 
dauert auch das Austesten der hohen Genauigkeit noch einige Zeit.

Rolf

von hp-freund (Gast)


Lesenswert?

Rolf Pfister schrieb:
> Deshalb lasse ich es Stundenlang oder Tagelang laufen. Darum
> dauert auch das Austesten der hohen Genauigkeit noch einige Zeit.

Dann mußt Du aber auch für eine stabile Temperatur über den Zeitraum 
sorgen, sonst wird das nichts.
Eine ähnliche Idee hatte ich auch schon, aber bis jetzt konnte ich alles 
mit TCXO oder Ofen-Quarzoszillator messen. Wenn ich mehrere zum 
Vergleich benutze, ergeben sich +-2Hz bei 10MHz untereinander. Wenn es 
noch genauer sein soll, gibt es in der Bucht günstige Rubidium 
Module....

...
hp-freund

von Rolf P. (rolfp)


Angehängte Dateien:

Lesenswert?

Ich habe inzwischen einige Verbesserungen eingebaut. Bei einem 3.579461 
MHz Quarz ist es mir inzwischen gelungen 3 Messungen auf 1 Hz genau zu 
reproduzieren. Bessere Genauigkeit ist wohl wirklich nur mit einem guten 
Thermostaten zu erreichen.
Um für die Berechnung der Nachkommastellen long long benutzen zu können, 
habe ich noch versucht Anpassungen für den ATmega328P zu machen. 
Entsprechend gibt es ein "makefile328p" das auf "makefile" zu kopieren 
ist, um für den 328P zu compilieren. (Für den ATmega8 compilieren dann 
wieder "makefile8" nach "makefile" kopieren.)
Für den ATmega328P musste ich die Schaltung noch etwas anpassen. Das 
Problem war, dass das DCF1-Modul nur einen High-Pegel von etwa 2 Volt 
liefert. Was ich eigentlich nicht verstehe, da es ja ein 
Opencollektor-Ausgang ist. Jedenfalls habe ich eine Pegelanpassung mit 
einem FET-Transistor gemacht und anschliessender Inverterstufe mit einem 
NPN-Transistor. Warum dieses invertieren nicht auch in der Software 
funktioniert verstehe ich immer noch nicht.
Im neuen Archiv ist also auch noch ein Schaltplan mit dabei, falls es 
jemand nachvollziehen möchte. Im Programm habe ich auch noch einige 
Leerzeilen und Leerzeichen eingefügt in der Hoffnung dass es jetzt 
leichter lesbar ist.

Rolf

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.