Sie sind auf Seite 1von 8

400 Hz ...

1-GHz-Frequenzzähler
mit 16F84 und LCD-Display

in Entwicklung

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

Ein universeller 7-stelliger Frequenzzähler von 400 Hz bis 1 GHz


Für den Elektronikbastler ist ein Frequenzmesser ein wichtiges Meßgerät. Hier wird
eine einfache und preiswerte Lösung vorgeschlagen.
 
Grundmerkmale
Frequenzbereich
Auflösung
Genauigkeit
(f > 4MHz)

Anzeige

 
 
Messeingänge
10 kHz .. 50 MHz
4 Hz .. 50 MHz
30 MHz .. 1,3 GHz

 
 
Meßbereiche
4 Hz  ...  4 Auflösung
MHz Hz
4 MHz ...  8 Auflösung
MHz Hz
8 MHz ... 16 Auflösung 16
MHz Hz
16 MHz ... Auflösung 32
32 MHz Hz
32 MHz ... Auflösung 64
50 MHz Hz
50 MHz ... Auflösung 0,25
250 MHz kHz
250 MHz ... Auflösung 0,5
500 MHz kHz
500 MHz ... Auflösung 1
1 GHz kHz
1 GHz ... 1,3 Auflösung 2
GHz kHz

Schaltung
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
wurdeder um einen HF-Vorteiler ergänzt wurde. Wärend die anderen Frequenzzähler
eigentlich nur Experimente waren, wollte ich nun ein fertiges, praxistaugliches Gerät für
meinen Bastelkeller fertigen.

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:
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 steigen und fallen Flanken von
sinusförmigen Eingangssignalen so langsam, dass Rauschen zusätzliche Zählpulse für
den PIC verursachen kann.

Eingang 2:
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 Frequenzbereich geht von 4 Hz bis 50 MHz. Da die Meßauflö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 4MHz liegt der Anzeigefehler bei unter 0,0005%. Die
Meßgenauigkeit wird dann von der Quarzgenauigkeit begrenzt.

Eingang 3:
Dieser Eingang hat den HF-Vorteiler mit U664, der auch im 1-GHz-Zähler verwendet
wird. Seine Eingangsempfindlichkeit ist etwa 10 mV.
Es fällt auf, daß 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, daß 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äßt einem HF-Spezialisten natürlich alle Haare zu
Berge steigen. Ein wirklich stabiler Betrieb ist so nicht zu erreichen. Ohne
Eingangssignal läßt 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.

Theorie der Frequenzmessung


Die Grundlagen der 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 Meßgenauigkeit mit der Frequenz. Bei einem kalibrierten
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 liegt der Fehler im %-Bereich, das ist nicht akzeptabel.

Alternative für tiefe Frequenzen: Periodenlängenmessung


Ein Frequenzmesser mit dem 16F84 nach obrigem Prinzip, arbeitet nur bei hohen
Frequenzen genau. Für Frequenzen unterhalb von 10 kHz bietet sich alternativ die
Periodenlängenmessung an. Dafür wird aber ein CCP-Kanal benötigt, den der 16F84
nicht besitzt. Der weitestgehend kompatible 16F628 hat aber 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äßt 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 26ms überlaufen, und die niedrigste
messbare Frequenz wäre 10 Hz. Werden aber die Timer1-Überläufe in einem 8-Bit-
Register mitgezählt, 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,1ppm. Der Quarzfehler ist also hier das Limit (>10 ppm). Der prinzipielle Messfehler
ist aber proportional zur Frequenz. Mit steigender Frequenz sinkt die Genauigkeit:

100 Hz    10 ppm


1kHz    100 ppm
10 kHz    1000 ppm
100 kHz    10000 ppm

Bis 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

 Division durch 4 ( da 4 Perioden gemessen wurden)


 Multiplikation mit 0,4 µs ( der Zähltakt des Timer1)
 Bildung des Reziprokwertes (Wandlung der Periode in die Frequenz)

Das läßt sich zu folgender Formel zusammenfassen:    Frequenz = 10 000 000 /


Messwert
Da der dezimale Zahlenwert 10 000 000 als Binärzahl 24 bit lang ist (0x989680) wird
eine 24-Bit Division benötigt- und zwar eine mit einem Gleitkommaergebnis.

Beschreibung der gewählten Lösung


Die nötigen Beschreibungen der Frequenzmessungen befindet sich in den
Beschreibungen für den 50-MHz-Frequenzzähler und den 1-GHz-Frequenzzähler .

Die Umschaltung zwischen den Eingängen erfolgt durch das Drücken eines Tasters. Da
der Taster nur 2 mal pro Sekunde abgefragt wird, muß 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:
 Eingang 1    Amp.
 Eingang 2    TTL
 Eingang 3    64:1

Nach dem Einschalten der Betriebsspannung ist immer der erste Eingang aktiv.

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.
 

Aufbau

Den PIC16F84 mit dem HEX-File programmieren.

Platine anfertigen und bestücken mit Außnahme folgender Teile:


- Schaltkreis PIC16F84 (IC1)
- Schaltkreis U664
- Schaltkreis NE592 (IC2)
- Transistor BC328 (Q2)
- Widerstand R12 220 Ohm

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

Den Stromversorgungseingang X1 mit AC oder DC mit einer Spannung von 16 .. 20 V


verbinden. Die Spannung am out-Pin des 7805 muß 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 PIC16F84 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 / Apm. +  4 Hz", wobei der Schrägstrich den Beginn der 2.
Displayzeile symbolisiert.
Im 2-Hz-Rythmus wechselt das "+" in der 2. Zeile mit einem "-".

Den Taster drücken bis LED 1 verlischt und LED 2 aufleuchtet (ca. 0,5s 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,5s 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.
 

Funktiontest

Um die Funktionstüchtigkeit des fertig aufgebauten Frequenzzählers zu prüfen, läßt


man ihn seine eigene Quarzfrequenz messen.

Die Betriebsspannung wieder anlegen. LED 1 leuchtet auf.


Den Eingang 1 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,5s lang).
Den Eingang 2 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,5s 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.

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 10 MHz verursacht (ohne spezielle Maßnahmen ca. 50ppm). Der Quarz
muß 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
Meßfehler nicht durch die Anzeigeungenauigkeit kaschiert wird.  Andererseits sollte die
Frequenz nicht über 50MHz liegen, und mann sollte den Eingang 1 bzw Eingang 2
benutzen.

Der zulässige Anzeigefehler ist je nach Meßbereich 8 Hz (bei f < 8 MHz) bis 64 kHz
(bei f > 32 MHz) und wird in der 2. LCD-Zeile angegeben.

Danach sollte der Meßfehler 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) 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 dass 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 die Frequenzmesser ausgeschaltet und wieder eingeschaltet, um die


Frequenzmesssoftware zu starten.
Mögliche Verbesserungen
Anstelle des Großvaters PIC16F84 kann natürlich ein moderner und billigerer Typ wie
z.B. der  PIC16F628 verwendet werden. Die dafür nötigen Änderungen in der Software
sind minimal (Änderung der Initialisierung des Port A).
Wenn schon ein 16F628 verwendet wird, dann kann man auch sein CCP-Modul
benutzen um niedrige Frequenzen mit einer Periodendauermessung genau zu bestimmen
(vergleiche mit diesem Drehzahlmesser). Dafür müßte das R/W-Pin des Displays an
RB1 angeschlossen werden, und RB3 (CCP-Eingang) mit RA4 verbunden werden. Die
Harwareänderungen wären also minimal, die Software wäre natürlich etwas
komplizierter.

Die Eingangsbeschaltung für den 64:1-Vorteiler ist noch nicht optimal.

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.

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 daß die Nutzung eines größeren Displays (z.B. 2x20) problemlos möglich
ist.
Das Display muß aber ein Typ für den normalen Temperaturbereich (nur von 0°C bis
50°C) sein, da der Frequenzmesser keine negative Kontrastspannung bereitstellen kann.

Entwicklungsstand

Die Software wurde angepaßt und funktioniert.


Der Vorteiler ist erst bis 200 MHz erprobt.Änderungen an der Eingangsbeschaltung
und dem Treibertransistor sind noch möglich.

Programmlisting
 Assemblerlisting und HEX-File (6 kByte)

Beim Brennen des PIC bitte darauf achten, daß der Taktgenerator des PIC auf 'HS'
eingestellt wird!

Das könnte Ihnen auch gefallen