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

Stromlaufplan - anklicken zum vergrößern


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
  1.  200 kHz (mechanische Filter in Amateurempfänger/sender)
  2.  455 kHz (keramische Filter)
  3.  468 kHz (Spulenfilter in Röhrengeräten)
  4.  1,6 MHz (sogenannte Nachsetzer)
  5.  9 MHz (Quarzfilter in Amateurempfänger/sender)
  6.  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