40
MHz-Frequenzzähler
mit 6-stelliger 7-Segment-LED-Anzeige und interessanten Extras
mit PIC16F876
zurück zu Projekte , PIC-Prozessoren
, Elektronik , Homepage
Ein Frequenzmessgerät von 0 MHz bis 40 MHz
Für den Elektronikbastler ist ein Frequenzmesser ein wichtiges
Messgerät. Hier wird eine einfache und preiswerte Lösung
vorgeschlagen, die sich auch als Frequenzanzeige für
KW-Empfänger eignet.
- |
Frequenzbereich |
0 MHz bis 40 MHz |
- |
Auflösung |
100 Hz
|
- |
Genauigkeit |
norm. 0,01% (1 MHz)
norm. 0,001% (40 MHz)
max. 0,0003% |
- |
Anzeige |
6 Stellen auf LED |
|
|
Schaltung
LED-Anzeigen oder Fluoreszenzanzeigen sind in der Praxis besser
ablesbar als kleine LCD-Displays. Deshalb habe ich hier mal einen
möglichst einfache und möglichst universelle Lösung
für einen einfachen LED-Frequenzzähler entworfen. Er misst
Frequenzen bis 40MHz mit einer Auflösung von 100 Hz. Die Anzeige
ist 6-stellig. Sie zeigt die gemessene Frequenz in Kiloherz mit einer
Nachkommastelle an.
Als Anzeigen können LED-Displays mit gemeinsamer Kathode oder
gemeinsamer Anode mit oder ohne Treiber verwendet werden. Die
Polarität der Ausgänge kann an den Steuerpins "A/K" und
"Segm" eingestellt werden.
Auch die Ausgabe von BCD-Code anstelle der normalen 7-Segment-Ausgabe
ist möglich. Dadurch lassen sich externe Decoder verwenden
um z.B. Fluoreszenzanzeigen anzusteuern.
Der Frequenzmesser kann auf Wunsch einen von 6 verschiedenen
Zwischenfrequenzwerten zum Messergebnis hinzuaddieren oder von ihm
abziehen. Dadurch eignet sich der Frequenzzähler auch als
Frequenzanzeige eines Empfängers.
Der Messeingang (input) ist
annähernd TTL-kompatibel und hat einen Schmittrigger. Der
High-Teil des zu messenden Signals muss 4V überschreiten und der
Low-Teil muss 1V unterschreiten. Sowohl der High-Teil wie auch
der Low-teil sollten jeweils mindestens 20 ns lang sein, was bei 40 MHz
ein annähernd symmetrisches Signal voraussetzt.
Die Segment-/BCD-Ausgänge (Pin 21 ... 28) sowie die
Stellenausgänge (Pin 2 ... 5, 7, 18) sind TTL-kompatibel und
können jeweils ca 25 mA treiben. Die
Polarität der Ausgänge kann an den Steuerpins "Segm" und "A/K" eingestellt werden.
Beispiele:
Theorie der Frequenzmessung
Wurde bereits an anderer Stelle
ausführlich erläutert.
Der PIC zählt die eintreffenden Pulse über einen Zeitraum von
160 ms. Dabei wird ein 16:1 Vorteiler verwendet. Das Zählergebnis
ist genau 1/100 der Frequenz. Das Ergebnis wird 1/3 Sekunde lang
angezeigt, danach wird neu gemessen.
Besonderheiten der gewählten Lösung
Es gibt LED-Displays mit gemeinsamer Kathode und mit gemeinsamer Anode.
Je nach Display benötigt man gar keine externen
Treibertransistoren, oder nur Anoden/Kathoden-Treiber oder sogar
Segmenttreiber. Damit der PIC mit jeder Art von Display umgehen kann,
kann er Anode/Kathoden-Signale wie auch die Segmentsignale wahlweise
low-aktiv oder high-aktiv ausgeben. Eingestellt wird das über
Steuerpins, die mit Vdd oder Vss verbunden werden.
Normalerweise gibt der PIC direkt den 7-Segment-Code aus. Wer diesen
aber lieber mit einem Zusatz-Chip decodieren will, kann vom PIC auch
einen BCD-Code (normal oder invertiert) ausgegeben bekommen.
Eingestellt wird das mit einem Steuerpin, das mit Vdd oder Vss
verbunden wird.
Der Zähler kann als Frequenzanzeige in einem Empfänger
verwendet werden, indem man die Frequenz des Mischeroszillators (LO)
misst. Dann muss aber noch der Wert der Zwischenfrequenz (ZF) vom
Messergebnis abgezogen, oder dazuaddiert werden. Über drei
Steuerpins kann eine der folgenden ZF-Werte ausgewählt werden
- 200 kHz (mechanische Filter in Amateurempfänger/sender)
- 455 kHz (keramische Filter)
- 468 kHz (Spulenfilter in Röhrengeräten)
- 1,6 MHz (sogenannte Nachsetzer)
- 9 MHz (Quarzfilter in Amateurempfänger/sender)
- 10,7 MHz (keramische Filter in UKW-Empfänge bzw. 1.
hohe
ZF in Bandempfängen, ok, das ist über 40 MHz )
Ob die Frequenz addiert oder subtrahiert wird, das bestimmt ein
weiteres Steuerpin.
Bei Eingangsfrequenzen oberhalb von 40 MHz zeigt das LED-Display
"------" an. Falls die BCD-Ausgabe aktiviert wurde, dann wird anstelle
eines gültigen BCD-Codes für alle Anzeigestellen der
Fehlercode "1010" ausgegeben.
Pinbelegung
Die Steuereingänge A/K, Segm, BCD, +/-, ZF2, ZF1 und ZF0 müssen mit Vss (Low) oder
Vdd (High) fest verbunden werden. Dadurch wird der Betrieb des
Frequenzzählers gesteuert.
Pin Nr. /Name
|
Bezeichnung
|
Bedeutung
|
Pegel
|
6 / RA4
|
input
|
Eingang für Pulse
(Schmitt-Trigger)
|
High > 4V
Low < 1V |
13 / RC2
|
A/K
|
Steuereingang: Pegel der
Stellenausgänge
(Pin 2 ... 5, 7, 18)
|
0- low-aktiv
1- high-aktiv
|
12 / RC1
|
Segm
|
Steuereingang: Pegel der
Segment-/BCD-Leitungen
(Pin 21 ... 28)
|
0- low-aktiv
1- high-aktiv |
14 / RC3
|
BCD
|
Steuereingang: 7-Segmentausgabe
/ BCD-Ausgabe
(Pin 21 ... 28)
|
0-Ausgabe der 7 Segmente
1-Ausgabe als BCD
|
11 / RC0
|
+/-
|
ZF-Wert einrechnen
|
0- Anzeige = Messwert + ZF
0- Anzeige = Messwert - ZF
|
17,16,15 / RC6,5,4
|
ZF2,1,0
|
ZF
|
000 - 0
001 - 200 kHz
010 - 455 kHz
011 - 468 kHz
100 - 1,6 MHz
101 - 9 MHz
110 - 10,7 MHz
111 - 0
|
Wird als Ausgabe der BCD-Code ausgewählt (Pin BCD mit Vdd
verbunden), dann wird dieser an den Pins RB3..RB0 ausgegeben. Wird
gleichzeitig der Steuereingang Segm mit High (Vdd) verbunden, dann wird
ein invertierter BCD-Code ausgegeben.
Die Strombelastbarkeit der Ausgänge beträgt maximal 25 mA.
Das erlaubt es, die meisten LED-Displays ohne Segmenttreiber
anzusteuern. Bei LED-Anzeigen mit gemeinsamer Anode ist dann die Segm-Leitung mit Vss zu
verbinden Displays mit gemeinsamer Kathode erfordern eine
Verbindung von Segm mit Vdd.
Bei Displays mit sehr geringer Stromaufnahme (z.B. Kingsbright SC39-11
SRWA) kann auf Stellentreiber (für die gemeinsame Kathode bzw.
gemeinsame Anode) verzichtet werden. Bei LED-Anzeigen mit gemeinsamer
Anode ist dann die A/K-Leitung
mit Vdd zu verbinden Displays mit gemeinsamer Kathode erfordern
eine Verbindung von A/K mit
Vss.
Oft sind aber Treiber für die einzelnen Stellen erforderlich. Dann
ist in der Regel der umgekehrte Pegel an der A/K-Leitung erforderlich.
Test und Kalibrierung
Funktionstest
Um die Funktionstüchtigkeit des fertig aufgebauten
Frequenzzählers
zu prüfen, verbindet man die Pins ZF0, ZF1 und ZF2 mit Masse sowie
den Frequenzeingang GP2/T0CKI mit dem
Taktausgang
des PIC GP4/CLKOUT. Nun muss der Frequenzzähler exakt die
Sollfrequenz
des Quarzes '100000' anzeigen. Damit ist die
Funktionsfähigkeit
des Frequenzzählers erwiesen.
Kalibrierung
Ohne Kalibrierung erreicht der Zähler eine Genauigkeit von ca.
0,01%. Die Frequenzabweichungen werden durch eine Abweichung der
Quarzfrequenz
von den gewünschten 10 MHz verursacht. Die meisten Quarze
schwingen
etwa 1 kHz zu schnell (meiner Erfahrung nach, Ausnahmen wird es auch
geben),
und müssen mit einem Trimmkondensator abgeglichen werden. Ohne
Abgleich
wäre der angezeigte Frequenzwert etwa 0,01% zu klein. Als
Trimmkondensator
wird ein 30pF-Keramik-Trimmkondensator (nicht im Stromlaufplan
enthalten)
parallel zum Quarz angeschlossen, und auf ca. 20 pF eingestellt. Der
Frequenzzähler
wird nun an eine Referenzfrequenzquelle (wenn man den eine findet)
angeschlossen
und durch Verstellen des Trimm-Kondensators die angezeigte Frequenz der
Referenzfrequenz angeglichen. Der zulässige Anzeigefehler
ist 100 Hz. (also 1 Digit)
Besonderheiten, Limits
Als Betriebsspannung (Vdd)
dienen stabile 5V, wie sie z.B. von eim 7805
erzeugt werden. Starke Schwankungen der Betriebsspannung würden
sich auf die Rückoppelverstärkung des Quarzoszillators und
damit auf die Messgenauigkeit auswirken.
Der Mikrocontroller benötigt ca. 10 mA. Dazu kommt die
Stromaufnahme des Displays, die vom verwendeten Displaytyp abhängt.
Der Spannungspegel
am input-Pin des
Microcontrollers (Pin 6) darf
weder 0V
unterschreiten noch 8,5V überschreiten!
Spannungen über 8,5V führen zur
Zerstörung des Microcontrollers. Sollten sie sich nicht vermeiden
lassen, so sind sie mit einer externen Klemmdiode von input nach Vdd und einem strombegrenzenden
Reihenwiderstand in der input-Leitung abzuführen.
Spannungen unter 0V führen zu einem starken Stromfluss durch eine
interne Klemmdiode nach Vss. Lassen sie sich nicht vermeiden, so sind
sie durch einen strombegrenzenden Reihenwiderstand in der input-Leitung
auf Werte unter 20 mA zu begrenzen.
Programmlisting
zurück zu Projekte
, PIC-Prozessoren , Elektronik
, Homepage
Autor: sprut
erstellt: 15.04.2011
letzte Änderung: 08.07.2011