1 Hz ... 1-GHz-Frequenzzähler

mit PIC16F628 und LCD-Display
zurück zu Projekte , PIC-Prozessoren , Elektronik , Homepage

Bugfix 08.02.2015
Anzeigefehler behoben (Komma an vorletzter Stelle des Messergebnisses) trat nur bei einigen PIC16F628 auf

Bugfix 08.09.2012:
Anzeigefehler bei < 6,4 kHz behoben.

Update 01.09.2012:
Neue Firmware erlaubt die Kalibrierung mit billiger DCF-Hardware.

Update 25.08.2012:
Austausch des Quarzes gegen einen 20-MHz-Typ.
Neue Firmware mit folgenden Verbesserungen:
- Bedienung ist jetzt nicht mehr so "hakelig"
- von 6,4 kHz bis zu 2 MHz wurde die Messungenauigkeit geviertelt
- in allen anderen Messbereichen wurde die Messungenauigkeit halbiert
- unter 64 Hz wird mit 6 Nachkommastellen gerechnet
- wahlweise 64:1- oder 40:1-Vorteiler einsetzbar
- Genauigkeitsanzeige auch unterhalb 6,4 kHz
- zusätzlicher Präzisionsmode mit 4 ... 8 fach besserer Auflösung oberhalb von 6,3 kHz

Hinweis:
Der schwer zu beschaffende 64:1-Vorteilerchip U664 wurde von Steffen im Onlineshop der Zeitschrift Funkamateur (www.funkamateur.de) für unter 7 Euro gesichtet.
(20.02.2007)
Reichelt führt den pinkompatiblen U813BS SI für 1,15 Euro (März 2012).

 
Ein universeller 7-stelliger Frequenzzähler von 1 Hz bis 1 GHz
Für den Elektronikbastler ist ein Frequenzmesser ein wichtiges Messgerät. Hier wird eine einfache und preiswerte Lösung vorgeschlagen.

Technische Daten
Schaltungsbeschreibung
Messprinzip
Aufbau, Inbetriebnahme
Stromversorgung
Funktiontest
Kalibrierung
Mögliche Verbesserungen
Neuer Vorverstärker von DL5FA
Hinweis zum LCD-Display
Modifikation für Nutzung eines 40:1 Vorteilers
Nutzung eines externen 10-MHz-Referenztaktesrs
20 MHz aus 10 MHz Referenz

Ansicht des Frequenzmessers


Technische Daten
Grundmerkmale
Frequenzbereich Normalmode: 5 Hz bis 1 GHz
Präzisionsmode: 1 Hz bis 1 GHz
Auflösung 24 Bit
Messgenauigkeit
(duch Quarz bedingt)
(f > 4 MHz)
unkalibriert 0,005% = 50 ppm
normal 0,001% = 10 ppm
maximal 0,0002% = 2 ppm 
Anzeigefehler
(6,4 kHz ... 4 MHz)
<0,032% (320 ppm)
(2/f + 0,001%)
Anzeigefehler
(64 Hz ... 6,4 kHz)
f/20.000 % +0,001%
(1 kHz: ~0,05% = 500 ppm)
(4 kHz: ~0,2%)
Anzeigefehler
(f < 64 Hz)
f/20.000.000 % +0,001%
(6 Hz: ~0,0000003 Hz = 0,3 ppm)
Anzeige max.10 Stellen auf LCD
Genauigkeit max. 7 Stellen

 
Messeingänge
Amp 10 kHz .. 50 MHz 30 mVp-p < U < ±12 V

1 kHz .. 10 kHz 200 mVp-p < U < ±12 V
TTL 1 Hz .. 50 MHz TTL <= U < ±44 V
25 kOhm pull-up
64:1/40:1 30 MHz .. 1 GHz 10mV < U < ±9 V

 
Auflösung (Anzeigefehler)
Messbereich normal
Präz.-Mode 2s
Präz.-Mode 4s
1 Hz  ...  8 kHz << 0,1 % << 0,1 % << 0,1 %
8 kHz ...4 MHz 2 Hz 1 Hz
1 Hz
4 MHz ...  8 MHz 4 Hz 1 Hz 1 Hz
8 MHz ... 16 MHz 8 Hz 2 Hz 1 Hz
16 MHz ... 32 MHz 16 Hz 4 Hz
2 Hz
32 MHz ... 50 MHz 32 Hz 8 Hz
4 Hz
50 MHz ... 250 MHz 128 Hz 64 Hz
32 Hz
250 MHz ... 500 MHz 256 Hz 64 Hz
32 Hz
500 MHz ... 1 GHz 0.5 kHz 128 Hz
64 Hz
>1 GHz
1 kHz 256 Hz
128 Hz
anklicken zum Vergrößern

Achtung: Der Quarz ist ein 20-MHz-Typ

- HEX-File und ASM-File
- Stromlaufplan
- Bestückungsplan
- Abbildung der Platine
- Platine als Eagle-File
- Layout als GIF-File (600 dpi) 


- neuer Vorverstärker von DL5FA 


Schaltungsbeschreibung

Die Schaltung ist eine Kombination des 50 MHz-Frequenzzählers und des 1-GHz-Frequenzzählers, der um einen zusätzlichen Eingang mit einem Vorverstärker ergänzt wurde. Während die anderen Frequenzzähler eigentlich nur Experimente waren, wollte ich nun ein fertiges, praxistaugliches Gerät für meinen Bastelkeller fertigen.
Da der Messfehler der Frequenzzählung unterhalb von 6,4 kHz recht groß wird, schalte ich dann in eine Periodenmessung um, die bei niedrigen Frequenzen deutlich kleinere Messfehler hat. 

Das Gerät hat drei Frequenzeingänge für jeweils unterschiedliche Anwendungen. Es wird jeweils 1 Eingang durch Reed-Relais (wahlweise durch einen elektronischen Schalter) zum PIC zugeschaltet. Die Auswahl erfolgt durch einen Taster. Nach einem Tastendruck (ca. 1/2 Sekunde lang) wird zum nächsten Eingang umgeschaltet. Der jeweils aktive Eingang wird durch eine LED markiert.

Eingang 1: Amp
Das ist ein universeller Eingang für Frequenzen von 10 kHz bis 50 MHz  mit Amplituden ab 30 mV p-p. Niedrigere Frequenzen werden nur bei höherer Amplitude korrekt gemessen. Für 1 kHz sind etwa 200 mV p-p nötig.
Das Signal wird mit einem Video-OPV verstärkt, und dann dem PIC zugeführt. Der Verstärkungsfaktor des OPV ist mit R2 fest auf 100 eingestellt, bricht oberhalb von 100 MHz aber stark ein. Unterhalb von 10 kHz bricht die Empfindlichkeit durch die kleinen Koppelkondensatoren stark ein. Eine alternative Schaltung mit einem schnellen Komparator findet man hier.

Eingang 2: TTL
Das ist ein Eingang für TTL-Impulse. Es können aber auch größere Eingangspegel angelegt werden. Ein Vorwiderstand und Schutzdioden leiten zu hohe und negative Spannungen ab. Der Eingang hat Schmitt-Trigger-Eigenschaften . Der High-Pegel muss +4V überschreiten und der Low-Pegel +1V unterschreiten. Der Eingangspegel sollte 44 V nicht überschreiten. Das weicht zwar von der TTL-Spezifikation etwas ab, sollte aber in der Praxis keine Probleme bereiten. Der Eingang hat einen internen pull-up-Widerstand von ca. 25 kOhm, um ein Schwingen bei offenem Eingang zu verhindern. Die Signalquelle sollte also einen Ausgangswiderstand von deutlich weniger als 5 kOhm haben, um einen sauberen low-Pegel (< 1 V) erzeugen zu können.
Der Frequenzbereich geht von ca. 0,7 Hz bis 50 MHz, ist aber in der Software im Normalbetrieb auf 5 Hz Minimalfrequenz limitiert. Für tiefere Frequenzen muss man den Präzisionsmode aktivieren.

Eingang 3: 64:1 oder 40:1
Dieser Eingang hat den HF-Vorteiler mit U664, der auch im 1-GHz-Zähler verwendet wird. Seine Eingangsempfindlichkeit ist etwa 10 mV. Der Eingangspegel sollte 9V nicht überschreiten.
Es fällt auf, dass der U664B bei zu geringer Eingangsfrequenz auf ein kleineres Teilungsverhältnis 'umschaltet'. Bei 10 MHz teilte er nur im Verhältnis 4:1, bei 20 MHz  im Verhältnis 8:1. Bei 50 MHz funktionierte er dagegen korrekt (64:1). Um Fehlmessungen zu vermeiden, sollte sichergestellt sein, dass man eine ausreichend hohe Eingangsfrequenz (wenigstens 30 MHz) hat.
Der Aufbau eines 1-GHz-Vorteilers auf einer einseitigen Platine zusammen mit allen möglichen anderen Baugruppen lässt einem HF-Spezialisten natürlich alle Haare zu Berge steigen. Ein wirklich stabiler Betrieb ist so nicht zu erreichen. Ohne Eingangssignal lässt der U664 seiner Phantasie freien Lauf und schwingt fröhlich vor sich hin. Die Empfindlichkeit der Eingangs wird sehr frequenzabhängig sein, und unter den Möglichkeiten des U664 bleiben.
Vielleicht baue ich später mal einen separate HF-taugliche Vorteiler Box mit zweiseitig kaschiertem Leiterplattenmaterial und SMD-Bausteinen.
Anstelle eines 64:1-Vorteilers kann auch ein 40:1-Vorteiler verwendet werden. In diesem Falle ist das Pin 4 (MCLR) des PIC16F628 mit Masse (Vcc) zu verbinden und R6 zu entfernen. Der Mikrocontroller berücksichtigt dann das andere Vorteilerverhältnis automatisch in seinen Berechnungen.


Bedienung

Die Umschaltung zwischen den Eingängen erfolgt durch kurzes (<1s) Drücken des Tasters. Die Umschaltung erkennt man am Umschalten der LEDs (die den jeweils aktiven Eingang markieren) wie auch am LCD. Am Anfang der 2. LCD-Zeile wird der jeweils aktive Eingang angezeigt:

Das Gerät merkt sich den gewählten Eingang auch über das Abschalten der Betriebsspannung hinaus.

In der rechten Hälfte der 2. LCD-Zeile wird die Anzeigegenauigkeit angegeben. Da die Anzeige bis zu 10 Stellen lang sein kann, die eigentliche Messung aber maximal 7 Stellen genau ist, dient dieser Wert der Abschätzung der Genauigkeit der angezeigten Messwerte.

Frequenzen über 6,3 kHz werden mit der Frequenzzählmethode gemessen, Frequenzen darunter mit der Periodenlängenmessung.

Der Messwert wird etwa alle 500 ms aktualisiert.

Präzisionsmode-2s:
Wird der Taster länger als 1 Sekunden gedrückt, dann wird nicht der Eingang umgeschaltet, sondern der Präzisionsmode-2s eingeschaltet. Das erkennt man am zweifachen Flackern der Eingangs-LED.
Im Präzisionsmode-2s ist die Messgenauigkeit der Frequenzzählmethode (>6,3 kHz) vier mal höher als im Standardmode. Allerdings wird dadurch der Messwert auch nur etwa alle 2 Sekunden aktualisiert. Die Genauigkeit der Periodenlängenmessung erhöht sich im Präzisionsmode nicht, aber es können dann auch extrem niedrige Frequenzen bis hinab zu 0,6 Hz gemessen werden. (Im Normalmode nur hinab bis 4,8 Hz.)
Um den aktiven Präzisionsmode-2s zu kennzeichnen, wird dem Messwert im Display ein '*' vorangestellt.

Präzisionsmode-4s:
Wird der Taster länger als 2 Sekunden gedrückt, dann wird in einen Präzisionsmode-4s mit noch einmal verdoppelter Frequenzzählgenauigkeit geschaltet. Das erkennt man dann am vierfachen Flackern der Eingangs-LED. Allerdings wird dadurch der Messwert auch nur etwa alle 4 Sekunden aktualisiert. Die Periodenlängenmessung entspricht der vom Präzisionsmode-2s.
Um den aktiven Präzisionsmode-4s zu kennzeichnen, wird dem Messwert im Display ein '#' vorangestellt.

Nach dem Einschalten des Gerätes ist der Präzisionsmode stets deaktiviert. Wird bei aktivem Präzisionsmode der Eingang gewechselt (Tasterdruck), dann wird der Präzisionsmode abgeschaltet.


Messprinzip

Für die meisten Frequenzen eignet sich das Prinzip des Frequenzzählers am besten. Da die Messauflösung (im Normalmode) aber nur 2 Hz beträgt, ist bei niedrigen Frequenzen der Fehler der Messung recht hoch. Ab 200 Hz liegt der Fehler unter 1%. Ab 4 MHz liegt der Anzeigefehler bei unter 0,00005%. Die Messgenauigkeit wird dann von der Quarzgenauigkeit begrenzt.
Um auch bei niedrigen Frequenzen eine bessere Auflösung zu erreichen, wird unterhalb von 6,4 kHz eine Periodenlängenmessung durchgeführt. Deren Messfehler liegt bei 6,3 kHz bei 315 ppm (0,0315 %) und sinkt mit der Frequenz drastisch.
 

Theorie der Zähl-Frequenzmessung
Die Grundlagen der Zähl-Frequenzmessung mit dieser Schaltung wurden bereits im Zusammenhang mit dem 50-MHz-Frequenzzähler und dem 1-GHz-Frequenzzähler erläutert. 

Prinzipbedingt steigt die Messgenauigkeit mit der Frequenz. Bei einem kalibrierten Zähl-Frequenzmesser liegt er ab 100 kHz unter 20 ppm (0,002 %).
Bei nur 10 kHz liegt der Fahler bei 200 ppm (0,02%), was oft noch ausreichend ist.
Für Frequenzen unter 200 Hz läge der Fehler im %-Bereich, das wäre nicht akzeptabel.

Fehler der Zählfrequenzmessung
 

Alternative für tiefe Frequenzen: Periodenlängenmessung
Ein Frequenzmesser nach obigem Prinzip, arbeitet nur bei hohen Frequenzen genau. Für Frequenzen unterhalb von 6,4 kHz bietet sich alternativ die Periodenlängenmessung an. Dafür wird aber ein CCP-Kanal benötigt. Der PIC16F628 hat den nötigen CCP-Kanal, und eignet sich deshalb für die Periodenlängenmessung.

Es wird die Dauer einer Schwingung der unbekannten Eingangsfrequenz gemessen. Dazu betreibt man das CCP-Module im Capture-Mode und lässt man den Timer1 einen Takt von 5 MHz zählen. Wird am Eingang ein low-high-Übergang festgestellt, wird der Timer1 auf 0 gesetzt. Das Capture-Module ist so eingestellt, dass es bei jedem 4. low-high-Übergang den Stand des Timers1 in das Capture-Register kopiert. Damit steht im Capture-Register die Anzahl der Timer1-Takte, die der Länge von 4 Perioden der unbekannten Eingangsfrequenz entsprechen.

Da der Timer1 nur 16-bittig ist, würde er schon nach ca. 13 ms überlaufen, und die niedrigste messbare Frequenz wäre 305 Hz. Werden aber die Timer1-Überläufe in einem 9-Bit-Register mitgezählt, dann hat man einen 25-Bit Zähler, der erst nach 6,7 Sekunden überläuft. Damit lassen sich Frequenzen bis hinab zu 0,6 Hz messen. Die Gesamtlänge der 4 Perioden wird mit 0,2 µs Genauigkeit gemessen. Folglich wird eine Periode mit 0,05 µs Genauigkeit gemessen.
Für eine Eingangsfrequenz von 2 Hz ergibt sich die illusorische Genauigkeit von 0,1 ppm. Der Quarzfehler ist also hier das Limit (>10 ppm). Der prinzipielle Messfehler ist aber proportional zur Frequenz. Mit steigender Frequenz sinkt die Genauigkeit:
 
Fehler der Periodenmessung
Frequenz
Auflösungsfehler der Periodenlängenmessung (0,05µs)
Auflösungsfehler der Zähl-Frequenzmessung (2Hz)
100 Hz
5 ppm
20 000 ppm
1kHz 
50 ppm
2 000 ppm
6,4 kHz
315 ppm
312 ppm
10 kHz
500 ppm
200 ppm
100 kHz
5000 ppm
20 ppm

Bis ca. 6,3 kHz ist die Periodenlängenmessung der Frequenzzählmethode also überlegen, darüber kehrt sich das Blatt um.

Um aus dem Messergebnis die Frequenz zu errechnen, geht man wie folgt vor

Das lässt sich zu folgender Formel zusammenfassen:    Frequenz = 20 000 000 / Messwert  [Hz]
Da der dezimale Zahlenwert 20 000 000 als Binärzahl 25 Bit lang ist (0x01 31 2D 00) wird eine 32-Bit Division benötigt- und zwar eine mit einem Gleitkommaergebnis.

Ich verwende eine primitive Ganzzahldivision (mit Rest) um zunächst den ganzzahligen Frequenzwert zu erhalten. Den Rest der Division multipliziere ich mit 1000 und dividiere ihn dann noch einmal durch den Messwert. Damit erhalte ich drei Nachkommastellen.
Liegt die Eingangsfrequenz unter 64 Hz, dann wird auch der Rest der zweiten Division mit 1000 multipliziert und das Multiplikationsergebnis noch mal durch den Messwert dividiert. Das ergibt zusätzliche 3 Nachkommastellen, so dass die Frequenz dann mit zwei Vorkommastellen und 6 Nachkommastellen angezeigt wird. Das übertrifft in jedem Fall die Messgenauigkeit.



Stromversorgung

Ich verwende ein einfaches Steckernetzteil, das AC oder DC im Bereich von 15..20 V liefert.

Der Vorverstärker-OPV wird mit 12V gespeist, der Rest der Schaltung läuft mit 5V. Deshalb wird die externe Betriebsspannung von 15V..20V AC gleichgerichtet und gesiebt. Danach folgt eine zweistufige Spannungsregelung mit 7812 und 7805.

Großverbraucher ist der U664, der etwa 50 mA aufnimmt. Dann folgt das Relais , das etwa 10 mA benötigt. PIC, Display (ohne Beleuchtung) und LEDs kommen noch einmal zusammen auf 10 mA. Falls das Display beleuchtet ist, fallen dafür noch einmal 100 mA an. Das addiert sich zu etwa 170 mA auf der 5V-Leitung. Der 7805 muss also etwa 1,2W in Wärme umwandeln. Das erfordert einen Aufsteckkühlkörper.

Auf der 12V-Schiene fällt dieser Strom von 170 mA für den 7805 an, zusätzlich sind noch ertwa 20 mA für den OPV zu veranschlagen. Das ergibt eine Gesamtstromaufnahme von ca. 200 mA. Die Verlustleistung des 7812 hängt nun von der Eingangsspannung ab. Bei 20V Eingangsspannung muss der 7812 etwa 1,6W abführen, Auch für diesen Chip ist ein Aufsteckkühlkörper angemessen.



Aufbau, Inbetriebnahme

Den PIC16F628 mit dem HEX-File programmieren.

Das Platinenlayout ist einseitig, und hat das Format 75 mm x 100 mm. Es sind drei Drahtbrücken nötig, von denen eine auf der Leiterseite anzubringen ist (IC1 Pin3-Pin9).
Die Stromversorgungseingangsbuchse ist nicht nötig, es können natürlich Drähte direkt angelötet werden.
Als Relais müssen 5V/500Ohm-Typen mit interner Diode verwendet werden.  (z.B.: Meder DIP05-1A72-12D) Relais mit niedrigerem Innenwiderstand sind nicht geeignet.
Die LEDs sind low-current-Typen. Diese sind über den Messbuchsen zu montieren.
An LSP8 & LSP7 ist ein Drucktaster anzubringen.

Vorsicht: Der 10-Pin-Display-Anschluss auf der Platine kann nicht 1:1 mit dem Display verbunden werden. Die Pins 7,8,9,10 sind mitr den Pins 11,12,13,14 zu verbinden. Am Display bleiben die Pins 7,8,9,10 frei.

Platine anfertigen und bestücken mit Ausnahme folgender Teile:
- Schaltkreis PIC16F628 (IC1)
- Schaltkreis U664
- Schaltkreis NE592 (IC2)
- Transistor BC328 (Q2)
- Widerstand R12 220 Ohm

Für den PIC16F628 und den NE592 sind IC-Fassungen einzulöten.

Den Stromversorgungseingang X1 mit AC oder DC mit einer Spannung von 15 .. 25 V verbinden. Die Spannung am out-Pin des 7805 muss nun 5V betragen, und die  am out-Pin des 7812 sollte bei 12V liegen. Abweichungen sollten kleiner als 5% sein. Die Betriebsspannung entfernen.

Das LCD-Display mit einem Kabel anstecken. Die Betriebsspannung wieder anlegen. Den Kontrastregler R9 (10k) so einstellen, das im Display deutlich dunkle Vierecke zu erkennen sind. Die Betriebsspannung entfernen.

Nun den U664 einlöten und den PIC16F628 sowie den NE592 in die IC-Fassungen stecken. Die LEDs und den Taster anschließen.
Die Betriebsspannung wieder anlegen.
Die LED 1 leuchtet auf.
Das LCD zeigt kurz "HALLO".
Danach zeigt es "0 Hz / Amp. +  2 Hz", wobei hier der Schrägstrich den Beginn der 2. Displayzeile symbolisiert.
Im 2-Hz-Rhythmus wechselt das "+" in der 2. Zeile mit einem "-", das sieht dann aus wie ein "+" mit etwas blassem vertikalen Strich, da das träge LCD-Display nicht mit 2 Hz schalten kann.

Den Taster drücken bis LED 1 verlischt und LED 2 aufleuchtet (ca. 0,5 s lang).
Das LCD zeigt "0 Hz / TTL +  2 Hz". Im 2-Hz-Rhythmus wechselt das "+" in der 2. Zeile mit einem "-".

Den Taster drücken bis LED 2 verlischt und LED 3 aufleuchtet (ca. 0,5 s lang).
Das LCD zeigt "0 Hz / 64:1 +  128 Hz". Im 2-Hz-Rhythmus wechselt das "+" in der 2. Zeile mit einem "-".
Die Betriebsspannung entfernen.

Den Transistor BC328 (Q2) und den Widerstand R12 220 Ohm noch nicht einlöten.
 


Funktiontest

Um die Funktionstüchtigkeit des fertig aufgebauten Frequenzzählers zu prüfen, lässt man ihn seine eigene Quarzfrequenz messen.


++HINWEIS++
Eine ältere Version dieses Zählers wurde noch mit einem 10 MHz Quarz betrieben. Damit funktionierte der nachfolgende Test problemlos. Inzwischen wird aber ein 20 MHz Quarz verwendet. Damit ist der Signalpegel am Takt-Ausgangs-Pin OSC2 (Pin 15) so klein, dass der Test nicht bei allen Zählern funktioniert. Sollte das der Fall sein, dann sollte man für den Funktionstest den 20 MHz-Quarz gegen einen 10 MHz Quarz austauschen. Dann funktioniert dieser Funktionstest (und er zeigt auch 20 000 000 Hz an). Nach Abschluss des Funktionstests muss dann vor der Kalibrierung wieder der 20 MHz Quarz eingelötet werden.

Die Betriebsspannung wieder anlegen. LED 1 leuchtet auf.
Den Eingang Amp  mit dem Taktausgang des PIC OSC2 (Pin 15) verbinden.
Das LCD zeigt "20 000 000 Hz / Amp. +  16 Hz". Im 2-Hz-Rhythmus wechselt das "+" in der 2. Zeile mit einem "-".
Den Eingang 1 vom Pin 15 des PIC trennen.

Den Taster drücken bis LED 1 verlischt und LED 2 aufleuchtet (ca. 0,5 s lang).
Den Eingang  TTL mit dem Taktausgang des PIC OSC2 (Pin 15) verbinden.
Das LCD zeigt "20 000 000 Hz / TTL +  16 Hz". Im 2-Hz-Rhythmus wechselt das "+" in der 2. Zeile mit einem "-".
Den Eingang 2 vom Pin 15 des PIC trennen.

Den Taster drücken bis LED 2 verlischt und LED 3 aufleuchtet (ca. 0,5 s lang).
Pin 1 oder 14 des Relais K3 (oder Pin 3 des PIC) mit dem Taktausgang des PIC OSC2 (Pin 15) verbinden.
Das LCD zeigt "1 280 000 000 Hz /64:1 +  1024 Hz". Im 2-Hz-Rhythmus wechselt das "+" in der 2. Zeile mit einem "-".
Das Relaispin (bzw. Pin 3 des PIC) vom Pin 15 des PIC trennen.
Die Betriebsspannung entfernen.

Den Transistor BC328 (Q2) und den Widerstand R12 220 Ohm einlöten.

Damit ist die Funktionsfähigkeit des Frequenzzählers (ohne 64:1-Vorteiler) erwiesen. Zum Test des Vorteilers benötigt man eine Frequenz von mindestens 50 MHz (z.B. Quarzoszillator), die zur Messung mit dem Eingang des Vorteilers verbunden wird. Die angezeigte Frequenz kann dabei um 0,005% von der wirklichen Eingangsfrequenz abweichen, solange der Frequenzzähler nicht kalibriert ist.


Kalibrierung

Ohne Kalibrierung erreicht der Zähler eine Genauigkeit von ca 0,005%. Die Frequenzabweichungen werden durch eine Abweichung der Quarzfrequenz von den gewünschten 20 MHz verursacht (ohne spezielle Maßnahmen ca. 50 ppm). Sinnvoll wäre der Einsatz eines TCXO (temperature compensated crystal oscillator) oder TCVXCO (temperature compensated voltage controlled crystal oscillator) anstelle eines einfachen Quarzes. Diese sind aber in den typischen Bastlerläden (noch) nicht erhältlich. Deshalb werden sich viele mit einem Quarz begnügen.
Der Quarz muss mit dem Trimmkondensator C10 abgeglichen ("gezogen") werden. Ohne Abgleich wäre der angezeigte Frequenzwert etwa 0,005% ungenau.

Ich stelle hier vier mögliche Kalibrierverfahren vor:
 

Variante 1: mit Referenzfrequenzquelle
Wer das Glück hat, auf eine Referenzfrequenzquelle (z.B. kalibrierter Oszillator) mit einer Frequenz zwischen  2 MHz und 50 MHz zugreifen zu können, kann diese Methode benutzen.
Der Frequenzzähler wird an die Referenzfrequenzquelle angeschlossen und in den Präzisionsmode4s geschaltet. Durch Verstellen des Trimm-Kondensators wird die angezeigte Frequenz der Referenzfrequenz angeglichen. Die Referenzfrequenz sollte mindestens 2 MHz betragen, damit der Messfehler nicht durch die Anzeigeungenauigkeit kaschiert wird.  Andererseits sollte die Frequenz nicht über 50 MHz liegen, und man sollte den Eingang Amp bzw. Eingang TTL benutzen.

Der zulässige Anzeigefehler ist je nach Messbereich 1 Hz (bei f < 16 MHz) bis 4 Hz (bei f > 32 MHz) und wird in der 2. LCD-Zeile angegeben.

Danach sollte der Messfehler im gesamten Frequenzbereich auf 0,001% (10 ppm) reduziert sein. Höhere Genauigkeiten lassen sich nur noch mit einem Termostat erreichen, der den Quarz auf einer konstanten Temperatur hält.
Normale Quarze oder Quarzoszillatoren ohne Kalibrierung eignen sich nicht als Lieferant für eine Referenzfrequenz, da sie zu ungenau sind!
 

Variante 2: die 1 Hz-Methode
Das ist eigentlich eine Version der Variante 1. Einige GPS-Module besitzen einen hochgenauen 1-Hz-Ausgang. Man verbindet diesen mit dem TTL-Eingang des Frequenzmessers, und misst die Frequenz. Es ist der Präzisionsmode2s zu aktivieren. Der Frequenzmesser verwendet die Pulslängenmethode und zeigt das Messergebnis mit 6 Nachkommastellen an. Die Anzeige wird etwa alle 4 Sekunden aktualisiert.
Durch Verstellen des Trimm-Kondensators wird die angezeigte Frequenz der Referenzfrequenz soweit angeglichen, bis nur noch die vorletzte Stelle abweicht (0,999 9xx Hz ... 1,000 0xx Hz).

Variante 3: die Uhrenmethode
Wer (wie die Meisten) keine präzise Referenzfrequenz zur Verfügung  hat, kann wie hier beschrieben vorgehen.  Die dazu nötige Uhrensoftware ist Bestandteil der Frequenzzählersoftware.
Der Frequenzzähler wird bei gedrückter Taste eingeschaltet. Im Display erscheint die Uhrzeit "00:00:00", und die angezeigte Zeit fängt an, im Sekundenrythmus zu laufen. Jeder weitere Druck auf die Taste setzt die Zeit auf "00:00:00" zurück.

Genau zur vollen Stunde (nach der Fernseh-Uhr des analogen Fernsehens oder dem Zeitzeichen im Radio) wird die Null-Taste gedrückt. Die Uhr startet mit "00:00:00". Nach 24-Stunden wird festgestellt, ob die Uhr mehr als 1 Sekunde vor oder nach geht. Ist das der Fall, wird der Trimmkondensator verändert, und die Uhr zur vollen Stunde wieder auf "00:00:00" gesetzt. Eine vergrößerte Kapazität bremst eine zu schnell laufende Uhr, eine verkleinerte Kapazität beschleunigt eine zu langsame Uhr. Eine Veränderung des Trimmkondensators um 1 pF bewirkt eine Gangänderung von ca. 0,25 Sekunden pro Tag. Nach einigen Tagen sollte man eine Trimmerstellung gefunden haben, bei der die Uhr genau läuft.
(Wer nur noch digitalen Empfang hat, der kann auch auf eine Funkuhr zurückgreifen. Dann sollte der Abgleich aber mindestens über zwei Wochen erfolgen, da Funkuhren sich oft nur ein mal in 24 Stunden mit dem Zeitsender abgleichen.)
Ein Gangfehler von 1 Sekunde am Tag entspricht einem Frequenzfehler von 12 ppm (0,0012%). Eine höhere Genauigkeit ist ohne Thermostat nicht sicher zu erreichen.
Als ich meinen so kalibrierten Frequenzmesser mit einer hochgenauen 10-MHz-Referenzfrequenz vergleichen konnte, stellte ich einen Messfehler von nur 25 Hz fest. Das entspricht <3 ppm.

Nun wird der Frequenzmesser ausgeschaltet und wieder eingeschaltet, um die Frequenzmesssoftware zu starten.

Variante 4: die DCF77-Methode
Für diese Methode benötigt man ein DCF77-Empfangsmodul aus einem Funkwecker. Sein Ausgangssignal wird auf TTL-Pegel verstärkt und mit der TTL-Eingangsbuchse des Frequenzmessers verbunden. Die positiven Pulse vom Ausgang des DCF-Moduls müssen auch am Ausgang des Verstärkers positive Pulse sein! Die nebenstehende Schaltung zeigt eine solche Taktquelle. Die linke LED dient nur als Z-Diode für die Betriebsspannung des DCF-Moduls (ca. 1,8 V). Die rechte LED sollte im Betrieb im Sekundenrythmus aufblitzen.
Die Antenne muss horizontal liegen, und zeigt mit ihrer Breitseite in Richtung Frankfurt/Main.

Der Frequenzmesser wird bei gedrückter Taste eingeschaltet, er geht in den Uhrenmode. (siehe Variante 3). Nun drückt man die Taste noch einmal so lange, bis die LED des TTL-Eingangs aufleuchtet (ca. 5 Sekunden lang). Die Uhr bleibt stehen und in der zweiten Dsplayzeile erscheint "DCF77 wait". In der hinteren Hälfte der ersten Zeile erscheint 'P' mit einer darauf folgenden Nummer, die sekündlich incrementiert wird. Nach ca. 1 Minute erscheint anstelle der Uhrzeit 'Wait 8min'.

Vorab:
Aufgrund des Jitters im DCF-Modul-Ausgangssignals ist die Genauigkeit dieser Methode beschränkt, aber sie ist immer noch ausreichend genau und dabei deutlich schneller als die Uhrenmethode. Man sollte während der Kalibrierung auf eine gutes DCF77-Signal achten. Zur Einschätzung der Signalqualität kann man den Pulszähler (hintere Hälfte der ersten LCD-Zeile) heranziehen. Im Idealfall verhält er sich wie die Sekundenanzeige einer Funkuhr und zählt von 0 bis 58. Eine 59 wird nicht angezeigt, sondern in diesem Moment der Messfehler berechnet. Danach geht es wieder mit 0 los. Bei schlechtem DCF77-Signal zählt der Pulszähler deutlich mehr als 58 Pulse. Der Frequenzmesser überwacht das auch, und zeigt hinter dem Fehlerwert am Ende der zweiten Displayzeile ein "#" an, wenn das Signal brauchbar ist.
Das DCF-Modul reagiert sehr schlecht auf Leitungen direkt an der Antenne oder in ihrer unmittelbaren Umgebung. Signalführende Leitungen (wie z.B. Netzkabel) dürfen sich auf keinem Fall in der unmittelbaren Nähe der Feritantenne befinden.
Die Einstellung erfolgt in 2 Stufen.

1. Stufe: Grobeinstellung
Der Frequenzmesser zählt die Pulse des DCF-Moduls. Eine laufende Pulsnummer wird im hinteren Teil der ersten Zeile angezeigt.
Der Frequenzmesser wertet nun das DCF77- Signal aus, und vergleicht es mit dem internen Takt des Frequenzmessers. Nach etwa 2 Minuten sollte in der zweiten Zeile des Displays ein Zahlenwert angezeigt werden, der dann alle 60 Sekunden aktualisiert wird. Diese Zahl gibt den momentanen Fehler des Gerätes zuzüglich des DCF-77-Jitters mit einer Auflösung von 0,026 ppm an. Durch vorsichtiges Verstellen des Trimmkondensators in kleinsten Schritten sollte dieser Wert auf weniger als ±1000 (= 25 ppm) eingestellt werden. Eine genauere Einstellung ist aufgrund des Jitters im DCF77-Signal nicht möglich. Durch den Jitter schwankt der Wert von Minute zu Minute durchaus um mehrere Hundert, gelegentlich sogar um 1000. Nach jeder Korrektur muss dann 2 Minuten gewartet werden, bis der angezeigte Fehler wieder aktuell ist. Das Vorzeichen des Fehlers (Am Anfang der zweiten Zeile) hilft bei der Ferstlegung der Korrekturrichtung am Trimmkondensator. Ist das erledigt, dann geht man zur 2. Stufe über.
Sollte der Messwert um mehrere Tausend schwanken, dann ist der Empfang schlecht, und die Kalibrierung kann nicht durchgeführt werden.

DCF-Empfänger
2. Stufe: Feineinstellung
Der Frequenzmesser mittelt den Fehler über 8 Minuten, um eine deutlich genauere Einstellung des Trimmkondensators zu erreichen. Im vorderen Teil der ersten Zeile zeigt er an, wie viele Minuten noch zu warten sind, bis das nächste 8-Minuten-Ergebnis angezeigt wird. Danach erfolgt an dieser Stelle die Anzeige des Fehlers mit einer Auflösunf von 0,1 ppm. Man ignoriert nun also die Anzeige in der zweiten Displayzeile, und versucht durch kleinste Korrekturen des Trimmkondensators die alle 9 Minuten aktualisierte Zahl im Vorderteil der ersten Zeile zu minimieren. Nach jeder Änderung am Trimmkondensator  muss man 8 Minuten warten. Ein Wert um ±10,0 ppm ist erreichbar.
Der ppm-Wert ist immer nur für eine Minute im Display zu sehen (danach wird er mit "Wait 8min" überschrieben.) Der Trimmkondensator sollte während dieser Minute verstellt werden. Erst danach beginnt wieder ein 8-Minuten-Messzyklus.
Mit meiner Hardware beträgt der Fehler dieser Methode in der Praxis etwa ±1 ppm. Mit anderen DCF-Modulen mag das Ergebnis abweichen. Man sollte abschließend das ppm-Ergebnis über mehrere Messzyklen beobachten, um das beurteilen zu können.

Grenzen
Da der Quarz thermisch nicht stabilisiert ist, ändert sich seine Frequenz mit der Umgebungstemperatur. Schon die minimale Erwärmung in meinem geschlossenen Gehäuse (durch den Spannungsregler 7805) führt zu einer Messwertänderung von 1,5 ppm. (16 Hz bei 10 MHz) Das harmonisiert recht gut mit dem Normalmode des Gerätes. Verwendet man aber den Präzisionsmode, dann muss man sich der Tatsache bewusst sein, dass der angezeigte Messfehler wahrscheinlich durch den Quarz korrumpiert wird.
Mein Gerät benötigt an seinem festen Standplatz etwa 2 Stunden Aufwärmzeit, um bei 10 MHz mit einen Fehler von 1 Hz (0,1 ppm) zu arbeiten. Dann führt aber schon der Wechsel des Standortes innerhalb des Raumes zu einem Fehler von bis zu 1 ppm, da sich dabei die Temperatur im Gehäuse wieder ändern kann. Einen Fehler von weniger als 2 ppm halte ich deshalb nicht für sicher beherrschbar.


Ergebnis
 
Der Frequenzmesser ist aufgebaut und funktioniert zufriedenstellend. Die obere Grenzfrequenz des 1-GHz-Vorteilers konnte ich mangels geeigneter HF-Quellen nicht austesten, ich erwarte aber nur einige hundert MHz (aufgrund des nicht HF-gerechten Aufbaus). 

Das nebenstehende Foto zeigt den Frequenzmesser (oberes Gerät) angeschlossen an meinen 20-MHz-DDS-Frequenzgenerator. Dessen Ausgangssignal ist 10 MHz bei 1V p-p. Am Frequenzmesser benutze ich den Amp-Eingang.
Die Anzeige (10 000 000 Hz) ist stundenlang stabil.

Am 10-MHz-OCXO ist nach mehrstündigem Aufwärmen auch der Messwert 10 000 000 Hz bei einer Auflösung von 1 Hz dauerhaft stabil, aber dazu habe ich mich oben schon geäußert.

Frequenzmesser beim Messen eines 10-MHz-Sinus mit 1 V p-p


Mögliche Verbesserungen

Die Eingangsbeschaltung für den 64:1-Vorteiler ist noch nicht optimal. Um  deutlich über 200 MHz zu kommen, müsste der Vorteiler HF-tauglich aufgebaut werden. Dazu gehört Schirmung und die Nutzung von SMD-Bauteilen.
Ein schnellerer Vorteiler ermöglicht ein Vordringen in das S-Band bis zu 4,29 GHz..
Ein MB506 von Fujitsu ermöglicht z.B. 2,4 GHz. Er erfordert aber leider eine Softwareänderung, da er ein 128:1 Teiler ist.

Der U664 ist nicht mehr leicht zu beschaffen. Als Alternative bietet sich der U813BS SI an, der bei Reichelt für 1,15 Euro zu bekommen ist (Stand Oktober 2015). Er erfordert keine Anpassung des Platinenlayouts oder der Software, und ist deshalb der ideale Ersatztyp. (Danke für den Tip - Olli)

Ein verbesserter Verstärker am "Amp"-Eingang könnte auch für niedrigere Frequenzen geeignet sein.

Ein Nachbauer stellte mir folgende Schaltung zur Verfügung, die die drei Relais durch einen elektronischen Schalter ersetzt. Der verwendete 74HC151 dürfte aber für diese Anwendung zu langsam sein. Man sollte einen 74AC(T)151 verwenden. Außerdem müssten dem schwer zu beschaffenden 74AC151noch 74AC04 als Schmitt-Trigger vorgeschaltet werden.

Zur besseren Abstimmung des Quarzes sollte ein einstellbarer 30pF Trimmkondensator parallel zum Quarz eingebaut werden.

Tipp von Rudolf:
Noch ein Hinweis zu dem NE592 Vorverstärker. Um die Offset Spannung am Ausgang zu minimieren, sollte in beiden Eingängen der gleiche Bias-Widerstand (1 KOhm) sein. Nach Datenblatt gibt es typisch 9 uA Bias-Strom, mal 1 KOhm sind 9 mV. Mal Verstärkung 100 sind es dann am Ausgang 0,9 V. Die Max. Spezifikation schreibt 30 uA, dann wären es schon 3 V.


Neuer Vorverstärker von DL5FA

Rudolf (DL5FA) hat den Vorverstärker einem kompletten Redesign unterzogen, und das Ergebnis auf seiner Homepage veröffentlicht.
http://www.rudiswiki.de/wiki9/PICFrequenzZaehler


Hinweis zum LCD-Display

Das Programm wurde für ein 2-zeiliges DotMatrix-Display mit 16 Zeichen pro Zeile geschrieben. Alle Displays mit dem Hitachi-Controllerchip HD44780 funktionieren ähnlich, so dass die Nutzung eines größeren zweizeiligen Displays (z.B. 2x20) problemlos möglich ist.

Das Display muss aber ein Typ für den normalen Temperaturbereich (nur von 0°C bis 50°C) sein, da der Frequenzmesser keine negative Kontrastspannung bereitstellt.


Modifikation für Nutzung eines 40:1 Vorteilers

Der 64:1-Vorteiler U664 ist kaum noch zu beschaffen. Manchmal ist aber der 1,1-GHz-Vorteiler-Schaltkreis MC12080 erhältlich. Dieser unterstützt mehrere Teilerverhältnisse, von denen sich das Verhältnis 40:1 für einen Frequenzzähler am besten eignet. Um einen 40:1-Vorteiler zu nutzen, muss das Pin 4 des PIC16F628 mit Pin 5 (Vss) verbunden werden, und der Widerstand R6 entfällt.
Nutzung eines externen 10-MHz-Referenztaktes

In vielen Laboren und wohl auch in einigen Bastlerlaboren gibt es einen zentral erzeugten, genauen Masterclock, mit dem alle Geräte synchronisiert werden. Das ist in der Regel ein hochgenauer 10MHz-Takt, der via Koaxialkabel und BNC-Steckverbindern allen Geräten zur Verfügung gestellt wird. (Der Pegel ist typischerweise 10 dBm, was an 50 Ohm etwa 0,7 V entspricht.)

Frühere Versionen dieses Frequenzmessers hatten einen 10-MHz-Quarz als PIC-Taktquelle. Dadurch ließen sie sich recht leicht für die Speisung mit einem externen 10 MHz Referenztakt modifizieren. Inzwischen betreibe ich den Frequenzzähler aber mit 20 MHz.

Die Lösung ist die Erzeugung eines 20-MHz-Taktes aus dem externen hochstabilen externen 10-MHz-Referenztakt. Meine Schaltung dafür besteht aus drei einfachen IC. Ein LTC1485 wandelt den externen 10-MHz-Takt in einen Takt mit TTL-Pegel. Ein langsamer 74LS04 dient dann als Verzögerungsleitung für diesen Takt. Erfahrungsgemäß beträgt die Gatterlaufzeit bei einem 74LS04 etwa 6 ns.

Mit zwei Gattern eines 7400 erzeuge ich nun zwei phasenverschobene 10-MHz-Takte. Beide sind unsymmetrisch. Der Low-Teil dieser Takte ist ~20 ns lang, und der High Teil ~80 ns. Die Phasenverschiebung beider Takte untereinander beträgt 45 ns (gemessen) oder 162°. (Ideal wären 50 ns.)

Ein weiteres 7400-Gatter fasst beide Takte zu einem 20 MHz Takt zusammen. Hier sollte ein schneller Typ wie der 74HCT00 verwendet werden.

Die verschiedenen 74-er Familien haben unterschiedliche Gatterlaufzeiten. Aus diesem Grunde ist unbedingt ein 74LS04 für die Verzögerungsleitung zu verwenden. Vertreter andere 74er-Familien sind zu schnell. Der 74LS04 hat zwar eine nominelle Gatterlaufzeit von 10ns, in der Praxis sind es aber normalerweise nur 6 ns. Bei mir versieht ein DL004 aus DDR-Altbeständen seinen Dienst :)
Frequenzverdoppler
Das nebenstehende Diagramm zeigt das Ergebnis.
  • Violett ist der 10-MHz-Eingangstakt am ersten Inverter des 74LS04 (Pin 13).
  • Gelb und Grün sind die beiden neuen unsymmetrischen 10-MHz-Takte an den Pins 3 & 11 des 74HCT00.
  • Blau ist der 20 MHz Takt am Pin 8 des 74HCT00.

Der erzeugte 20-MHz-Takt ist zwar nicht perfekt symmetrisch, reicht für den Zweck aber aus. Auf jeden Fall ist er phasenstarr zum 10-MHz-Referenztakt, und durch die PIC-interne 4:1-Teilung verschwindet dann auch die leichte Asymmetrie wieder.

Der Frequenzzähler wird ohne den Quarz Q1 sowie den Kondensatoren C10 und C15 aufgebaut. Der 20-MHz-Takt wird am PIC16F628 am Pin 16 (OSC1) eingespeist.

Link zum Projekt
Diagramm


zurück zu Projekte , PIC-Prozessoren , Elektronik , Homepage

Autor: sprut
erstellt: 12.12.2005
letzte Änderung: 10.07.2015