mikrocontroller.net

Forum: Projekte & Code Quarzfrequenzmessung mit DCF77 Funkuhr


Autor: Rolf Pfister (rolfp)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf Pfister (rolfp)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rolf Pfister (rolfp)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.