| Ein universeller 7-stelliger Frequenzzähler von 2 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 |
![]() |
|
- HEX-File und ASM-File
|
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 8kHz 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 zum PIC zugeschaltet. Die Auswahl erfolgt durch einen Taster. Nach einem Tasterderuch (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 100MHz aber stark ein. Unterhalb
von
10kHz bricht die Empfindlichkeit durch die kleinen Koppelkondensatoren
stark ein.
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 44V
nicht
überschreiten.
Der Frequenzbereich geht von ca. 2 Hz bis 50 MHz.
Eingang 3: 64: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.
Für die meisten Frequenzen eignet sich das Prinzip des Frequenzzählers am besten. Da die Messauflösung aber nur 4 Hz beträgt, ist bei niedrigen Frequenzen der Fehler der Messung recht hoch. Ab 400Hz liegt der Fehler unter 1%. Ab 4 MHz liegt der Anzeigefehler bei unter 0,0005%. Die Messgenauigkeit wird dann von der Quarzgenauigkeit begrenzt.
Um auch bei niedrigen Frequenzen eine bessere Auflösung zu
erreichen,
wird unterhalb von 8 kHz eine Periodenlängenmessung
durchgeführt.
Deren Messfehler liegt bei weniger als 1000 ppm (0,1%) und sinkt mit
der
Frequenz.
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 1 MHz unter 20
ppm (0,002 %).
Bei nur 10 kHz liegt der Fahler bei 400 ppm (0,04%), was oft noch
ausreichend
ist.
Für Frequenzen unter 400 Hz läge der Fehler im %-Bereich, das
wäre nicht akzeptabel.

Alternative für tiefe Frequenzen: Periodenlängenmessung
Ein Frequenzmesser nach obrigem Prinzip, arbeitet nur bei hohen
Frequenzen
genau. Für Frequenzen unterhalb von 8 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 2,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 16-bittig ist, würde er schon nach ca. 26 ms
überlaufen,
und die niedrigste messbare Frequenz wäre 153 Hz. Werden aber die
Timer1-Überläufe in einem 8-Bit-Register mitgezählt,
dann hat
man einen 24-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,4µs Genauigkeit gemessen. Folglich wird
eine Periode mit 0,1µs Genauigkeit gemessen.
Für eine Eingangsfrequenz von 1 Hz ergibt sich die illusorische
Genauigheit 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:
![]() |
Bis ca. 6 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 mann wie folgt vor
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. Das übertrifft in jedem Fall die Messgenauigkeit.
Die Umschaltung zwischen den Eingängen erfolgt durch das Drücken eines Tasters. Da der Taster nur 2 mal pro Sekunde abgefragt wird, muss er etwa eine halbe Sekunde gedrückt werden. 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:
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 8 kHz (genau genommen 8,192 kHz) werden mit der
Frequenzzählmethode gemessen, Frequenzen darunter mit der
Periodenlängenmessung.
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.
Die LEDs sind low-current-Typen. Die sind über den Messbuchsen
zu montieren.
An LSP8&LSP7 ist ein Drucktaster anzubringen.
Platine anfertigen und bestücken mit Außnahme 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 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. + 4 Hz", wobei hier der
Schrägstrich
den Beginn der 2. Displayzeile symbolisiert.
Im 2-Hz-Rythmus wechselt das "+" in der 2. Zeile mit einem "-", das
sieht dann aus wie ein "+" mit etwas blassem vertikalen Strich, da das
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 + 4 Hz". Im 2-Hz-Rythmus 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 + 256 Hz". Im 2-Hz-Rythmus wechselt
das "+" in der 2. Zeile mit einem "-".
Die Betriebsspannung entfernen.
Den Transitor BC328 (Q2) und den Widerstand R12 220 Ohm noch
nicht
einlöten.
Um die Funktionstüchtigkeit des fertig aufgebauten Frequenzzählers zu prüfen, lässt man ihn seine eigene Quarzfrequenz messen.
Die Betriebsspannung wieder anlegen. LED 1 leuchtet auf.
Den Eingang Amp mit dem Taktausgang des PIC OSC2 (Pin
15) verbinden.
Das LCD zeigt "10 000 000 Hz / Amp. + 16 Hz". Im 2-Hz-Rythmus
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 "10 000 000 Hz / TTL + 16 Hz". Im 2-Hz-Rythmus
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 "640 000 000 Hz /64:1 + 1024 Hz". Im 2-Hz-Rythmus
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 Transitor 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.
Ohne Kalibrierung erreicht der Zähler eine Genauigkeit von ca
0,005%.
Die Frequenzabweichungen werden durch eine Abweichung der Quarzfrequenz
von den gewünschten 10 MHz verursacht (ohne spezielle
Maßnahmen
ca. 50ppm). Der Quarz muss mit dem Trimmkondensator C10
abgeglichen
("gezogen") werden. Ohne Abgleich wäre der angezeigte Frequenzwert
etwa 0,005% ungenau.
Ich stelle hier zwei 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 durch Verstellen des Trimm-Kondensators 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
50MHz liegen, und mann sollte den Eingang Amp bzw. Eingang TTL
benutzen.
Der zulässige Anzeigefehler ist je nach Messbereich 8 Hz (bei f < 8 MHz) bis 64 kHz (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 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.
Ein Gangfehler von 1 Sekunde am Tag entspricht einem Frequenzfehler
von 12 ppm (0,0012%). Eine höhere Genauigkeit ist ohne Termostat
nicht
zu erreichen.
Nun wird der Frequenzmesser ausgeschaltet und wieder eingeschaltet, um die Frequenzmesssoftware zu starten.
| Der Frequenzmesser ist aufgebaut und
funktioniert zufriedenstellend.
Die obere Grenzgrequenz 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). Die Toleranzanzeige funktioniert
unterhalb
von 8 kHz nicht, sie zeigt dort immer 4 Hz an, obwohl der Fehler in
weiten
Bereichen wesentlich kleiner ist.
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 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 U813 an, der bei Reichelt für 86 Cent zu bekommen ist
(Stand Mai 2008). Er erfordert natürlich eine Anpassung des
Platinenlayouts. (Danke für den Tip - Olli)
Ein verbesserter Verstärker am "Amp"-Eingang könnte auch
für niedrigere Frequenzen geeignet sein.
Toleranzanzeige für Frequenzen unterhalb 8 kHz muss noch
ergänz
werden.
Ein Nachbauer stellte mir folgende Schaltung zur Verfügung, die
die drei Relais durch einen
elektronischen Schalter ersetzt.
Zur besseren Abstimmung des quartzes 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.
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, benötigt man eine
modifizierte Software. Die entsprechend angepassten ASM- und HEX-Files
liegen hier:
Autor: sprut
erstellt: 12.12.2005
letzte Änderung: 20.01.2012