Статистика
Время:
Зарегистрированных: 88407
Последним зарегистрирован: san-vai
Рекорд посещаемости: 12585
Групп пользователей: 4
 Группы:
[Admin] [Cоучастник] [Автор] [Модератор]
 Сейчас на сайте
 Всего: 430
 Гостей: 427
 Анонимных: 0
 Пользователей: 3
 Зарегистрированные:
Aleksey02 Sergey D Ghost1

> Частотомеры -> Частотомер 2 Hz ... 1-GHz
image

Frequenzbereich 2 Hz bis 1 GHz
Auflösung 24 Bit
Genauigkeit
(f > 4MHz) unkalibriert 0,005%
normal 0,001%
maximal 0,0002%
Genauigkeit
(8kHz..4MHz) <0,05%
(4/f + 0,001%)
Genauigkeit
(f < 8 kHz) f/10000 % +0,001%
(1 kHz: ~0,1%)
(4 kHz: ~0,4%)
Anzeige 10 Stellen auf LCD

Messeingänge Amp 10 kHz .. 50 MHz 30mVp-p < U < ±12V
1 kHz .. 10 kHz 200mVp-p < U < ±12V
TTL 2 Hz .. 50 MHz TTL <= U < ±44V
64:1 30 MHz .. 1 GHz 10mV < U < ±9V

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

image

Файл прошивки, платы, схемы.

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 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.
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 muß +4V überschreiten und der Low-Pegel +1V unterschreiten. Der Eingangspegel sollte 44V nicht überschreiten.
Der Frequenzbereich geht von ca. 2 Hz bis 50 MHz.
Bis hinab zu 1,25 Hz werden Frequenzen normal gemessen. Darunter beginnt die Anzeige zu Blinken, es werden aber noch bis hinab zu 0,7 Hz Frequenzen gemessen und blinkend angezeigt.

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, 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.



--------------------------------------------------------------------------------

Messprinzip

Für die meisten Frequenzen eignet sich das Prinzip des Frequenzzählers am besten. 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 4 MHz liegt der Anzeigefehler bei unter 0,0005%. Die Meßgenauigkeit 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 Meßgenauigkeit 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 liegt der Fehler im %-Bereich, das ist 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äß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 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, 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:
Frequenz Auflösungsfehler der Periodenlängenmessung (0,1µs) Auflösungsfehler der Zähl-Frequenzmessung (4Hz)
100 Hz 10 ppm 40 000 ppm
1kHz 100 ppm 4 000 ppm
10 kHz 1000 ppm 400 ppm
100 kHz 10000 ppm 40 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.
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.



--------------------------------------------------------------------------------

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.

Frequenzen über 8 kHz (genau genommen 8,192 kHz) werden mit der Frequenzzählmethode gemessen, Frequenzen darunter mit der Periodenlängenmessung.




--------------------------------------------------------------------------------

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.
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 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 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.




--------------------------------------------------------------------------------

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 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.



--------------------------------------------------------------------------------

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 Amp bzw. Eingang TTL 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 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 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 der Frequenzmesser ausgeschaltet und wieder eingeschaltet, um die Frequenzmesssoftware zu starten.



--------------------------------------------------------------------------------

Ergebnis
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 Anzeige (10 000 000 Hz) ist stundenlang stabil.





--------------------------------------------------------------------------------

Mögliche Verbesserungen

Die Eingangsbeschaltung für den 64:1-Vorteiler ist noch nicht optimal. Um deutlich über 200 MHz zu kommen, müßte 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.

Toleranzanzeige für Frequenzen unterhalb 8 kHz muß noch ergänz werden.



--------------------------------------------------------------------------------

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.



--------------------------------------------------------------------------------


Подшипники . доставка роз

  banner DIPTRACE - САМЫЙ ЛУЧШИЙ ТАКСИРОВЩИК ПЕЧАТНЫХ ПЛАТ
Portal-X