Schaltungsbeschreibung 'reziproker Frequenzzähler 0,0025Hz-50MHz'

 

Funktion Software Schaltung Option Vorteiler ser. Datenausgang Abgleich LC-Anzeige Hinweise zum Aufbau

Leiterplatten kostenlose Programmierung zurück zur Übersicht

 

2020-12-15: zeitgemässe Empfehlung für allgemeine und hohe Anforderungen: FMeter-G431
2011-09-22:

mit TCXO 0,5ppm: neue Leiterplatten und Programmversionen
für ATtiny4313 und ATmega48/88/168
2010-12-12:


neue Programmversion für ATtiny2313 mit 20MHz: fmeter20.zip
direkte Messung von 0,005Hz - 1MHz ohne Vorteiler!
mit geeignetem Vorteiler bis 250MHz ohne Umschaltung
2004-12-27:

es können auch ATtiny2313 programmiert werden !

2001-01-01:

neue Programmversion mit f*128 Funktion für HF-Vorteiler !

Der hier beschriebene reziproke Frequenzzähler besteht im Kern aus einem einfachen Mikrocontroller nebst Taktoszillator. Ergänzt durch einen Vorteiler, LC-Anzeige und ser. Schnittstellenbaustein ergibt sich ein kostengünstiges Meßgerät, mit folgenden Eigenschaften:

Funktion: Die Bezeichnung 'reziproker Frequenzzähler' stammt aus der Zeit, als mit aufkommender Mikroprozessortechnik Meßgeräte entwickelt wurden, die sich von den bis daher üblichen 'einfachen' Frequenzzählern unterschieden. Hiermit sollte auf die besondere Funktionsweise hingewiesen werden, die darin besteht, daß immer eine Periodendauermessung durchgeführt wird. Abschließend wird die Frequenz als reziproker Wert der Periodendauer berechnet.

Mit zwei Zählern werden über einen Zeitraum von typ. 100ms - 1 s die Eingangsimpulse Nin und synchron dazu Referenzimpulse Nref der Referenzfrequenz Fref gemessen. Die Periodendauer der Eingangsimpulse ergibt sich als: t=Nref/(Nin*Fref); deren Frequenz zu: f=1/t. Diese Berechnungen erfordern einen Mikroprozessor. Für eine hohe Auflösung der Messung muß Nref hinreichend groß werden. Bei Fref = 10 MHz und einer Messzeit 1s ergibt sich ein Zählerstand von Nref = 1x10e7 und somit eine 7-stellige Auflösung. Die Messzeit wird synchron zum Eingangssignal erfaßt und ist somit immer ein ganzahliges Vielfaches der Eingangsimpulse, oder mindestens genau eine Periodendauer lang (Periode > vorgegebene Meßzeit). In der vorliegenden Schaltung werden mit Fref = 10 MHz in 10 ms 5-stellige und in 100 ms 6-stellige Auflösungen erzielt. Hierbei darf aber Auflösung nicht mit Genauigkeit verwechselt werden. Um ein auf sechs Stellen genaues Ergebnis zu erhalten, ist insbesondere eine Quarzzeitbasis hoher Genauigkeit und Konstanz (kleiner 1ppm = 1x10e-6) notwendig; eine hohe Auflösung ermöglicht es aber, relative Messungen im Kurzzeitbereich durchzuführen. nach oben

Software: Zur lückenlosen Erfassung werden die Eingangsimpulse als Nin fortlaufend gezählt, und synchron dazu die Zeitpunkte erfaßt und in Nref aufsummiert bis die vorgegebene Meßzeit überschritten ist. Mit dem nächsten Eingangsimpuls werden die Zählerstände für die Auswertung gesichert und die Zähler für Nin und Nref gelöscht. Während Auswertung und Anzeige für die letzte Messung erfolgen, werden bereits Nin und Nref der nächsten Messung gezählt.

Die Zähler für Nin und Nref sind je 32 bit lang und bestehen aus je vier internen Prozessorregistern. Nin werden per Software gezählt. Beim Zähler für Nref werden die unteren 16 bit aus dem Capture-Register des internen Timer 1 gebildet; die oberen 16 bit zählen die Überläufe von Timer 1. Zur Auswertung werden die Zählerstände in Fließkommazahlen gewandelt und verarbeitet. Nur so ist der große Frequenzbereich programmtechnisch zu handhaben. Um das Programm im 2KB kleinen Programmspeicher des Prozessors unterzubringen, ist eine Programmierung in Maschinensprache erforderlich. nach oben

Schaltung:

Die Frequenzmessung wird von IC1 (AT90S2313) erledigt. Die Referenzfrequenz (=Prozessortakt) beträgt 10 MHz und wird wie üblich mit Quarz Q1 und Lastkondensatoren C10 und CX1 erzeugt. CX1 kann bei Bedarf als Trimmkondensator 5-30pF ausgeführt werden.

Die Eingangsimpulse an Fin werden über den Eingangskomparator AIN0 per Interrupt gezählt; der Zeitpunkt der Impulse wird über Timer 1 mit der Capture-Funktion synchron erfaßt. Die Komparatorschwelle an AIN1 wird mit RN1-R1 und RN1-R2 auf Vcc/2 eingestellt. Das Eingangssignal wird über RN1-R4 und C9 gefiltert, wobei C9 über Diode D1 schnell entladen und über RN1-R4 anstiegsbegrenzt aufgeladen wird. Oberhalb von ca. 450 kHz folgt der Komparatorausgang nicht mehr dem Eingangssignal, da die Schwelle Vcc/2 von den pos. Eingangsimpulsen nicht mehr erreicht wird (HCMOS-Pegel vorausgesetzt). Dies verhindert, daß der Prozessor durch Interrupts blockiert wird. Werden nur Frequenzen < 500 kHz gemessen, können D1 und C9 entfallen. Ohne diese Begrenzung beträgt Fin max. etwa 530 kHz. RN1-R3 dient als pullup für den Eingang; einfache Sensoren mit offenem Kollektorausgang lassen sich direkt anschließen.

Mit dem Schalter SW1 (1xUm mit Mitte) kann die minimale Meßzeit auf 0,01s, 0,1s und 1s eingestellt werden. In Mittenstellung oder ohne Schalter werden weder Pin PD2 noch PD3 gegen Masse geschaltet: 0,1s Meßzeit. Schalter SW2 legt die beiden Pins über D2 und D3 entkoppelt auf 0-Pegel: die Anzeige wird eingefroren. Die Kontrolleuchte LED1 blinkt nach jeder fertigen Messung für die Dauer der Auswertung auf (ca. 10ms). Mit einem zusätzlichen Widerstand 4k7 von PB5/MOSI gegen 0V kann die LED-EIN-Zeit auf ca. 0,3s verlängert werden; LED wird nachgetriggert ! (Version ab 11/2000).

Die Auflösung der Messung wird automatisch der eff. Meßzeit angepaßt: Fin <10 Hz: 6-stellige, Fin <1 Hz: 7-stellige Anzeige. nach oben

Option Vorteiler: Der Vorteiler IC2 (hier 74HC393) teilt das Eingangssignal durch 256 und gibt sein Ausgangssignal an die Prozessoreingänge ICP und T0. ICP ist alternativ zu AIN0 als Eingang zur Impulserfassung per Interrupt und Capture-Funktion von Timer 1 des Prozessors verwendbar. Die Umschaltung erfolgt intern im Prozessor. Über den Eingang T0 (Takteingang für Timer 0 des Prozessors) erfolgt eine grobe Frequenzabschätzung des Eingangssignals. Abhängig hiervon wird der Vorteiler automatisch zu und weggeschaltet. Übersteigt die Eingangsfrequenz ca. 160 kHz, wird die laufende Messung abgebrochen, der Vorteiler aktiviert und die Messung neu gestartet. Der Vorteiler wird abgeschaltet, sobald die Eingangsfrequenz ca. 80 kHz unterschreitet. Die Hysterese verhindert permanentes Umschalten bei unruhigen Signalen. Bleibt der Vorteiler unbestückt, erscheint an T0 kein Signal (interner Pullup) und es wird nur das Signal an AIN0 gemessen.

Option GHz-Vorteiler:
Mit einem weiteren Vorteiler (z.B. Temic U893) können Frequenzen im GHz-Bereich gemessen werden. Dieser muß extern ergänzt werden. Die Skalierung des Ergebnisses wird mit SW3 zugeschaltet. SW3 und R3 sind auf der Leiterplatte nicht vorhanden! nach oben

Option ser. Datenausgang mit 19200 Bd: Die einfachste Schaltung zur ser. Datenausgabe ergibt sich mit T1 als Inverter in Verbindung mit einem R-Netzwerk RN2. An TxD kann ein Rechner die Frequenzmeßwerte übernehmen. Ohne Vorteiler und LC-Anzeige, ergibt sich ein sehr niedriger Stromverbrauch von ca. 5mA bei Vcc 5V und einer Eingangsfrequenz bis zu einigen kHz. Alternativ kann man IC3 bestücken (MAX232). Die Stromaufnahme steigt um einige mA. Ferner kann über RxD auch der Sollwert für die Referenzfrequenz (Q1 oder Fextern) eingestellt werden. nach oben

Abgleich der Referenzfrequenz: Mit einem Terminal(-programm) wird mit den ‚+' und ‚-‚ Tasten ein höherer/tieferer Wert in Schritten von 0,1ppm (= ein Schritt) eingestellt. Der Einstellbereich beträgt ca. 3000 ppm. Ferner werden die Zeichen ‚P', ‚M' und ‚S' ausgewertet: ‚P' erhöht um 1ppm (+10 Schritte), ‚M' vermindert um 1ppm (-10 Schritte). Das beschleunigt die Einstellung. Intern wird der Korrekturwert als 16bit Zahl mit Vorzeichen gehandhabt. Um auch große Korrekturwerte schnell einstellen zu können, wird mit ‚S' diese Zahl verdoppelt , indem sie binär nach links geschoben wird und das unterste Bit 0 wird. Der Korrekturwert kann komplett gelöscht werden, indem 16 x ‚S' gesendet wird: alle Bits sind auf 0 gesetzt. Ausprobieren !

Erst mit Ctrl-S wird die Einstellung im EEPROM dauerhaft gespeichert (min. 100000 Schreibzyklen zulässig). So ist ein Abgleich ohne Eingriff in die Hardware und auch über Entfernung möglich. Ebenso lassen sich Referenzfrequenzen verwenden, die nicht exakt 10,000000 MHz betragen. Die eingestellte Sollfrequenz wird angezeigt, wenn bei 1 s Meßzeit (7-stellige Anzeige) die Referenzfrequenz (Pin X2) gemessen wird. Intern werden die Ergebnisse als Zahlen vom Typ float dargestellt. Dies entspricht einer Genauigkeit von ca. sieben Dezimalstellen. Wenn nun nicht jede Frequenzänderung um 0,1ppm in der Anzeige exakt angezeigt wird, liegt dies daran, daß hier die Systemgrenzen erreicht sind. nach oben

Option LC-Anzeige 2x16: Zur Meßwertanzeige können LCD-Module LCD1 auf Basis des HD44780 verwendet werden. In der 1. Zeile werden die Frequenz und in der 2. Zeile die Periodendauer im technischen Format mit ein bis drei Vorkommastellen und Dimension in 'mHz', 'Hz', 'kHz', 'MHz', bzw. 'ns', 'us', 'ms' und 'sek' angezeigt. Entsprechend der eff. Meßzeit werden die Ergebnisse 5-, 6- oder 7-stellig angezeigt. Das LCD-Modul wird im 4-bit Datenformat betrieben: Datenleitungen D4 - D7. Da nur ins Modul geschrieben wird, wird der R/W-Eingang fest auf 0V gelegt. Die Datenübergabe erfolgt mit positiven Impulsen am E-Eingang. Durch Berücksichtigung des internen Timing der LCD-Module (max. 40us für Daten, max. 1,64ms für Befehle) erübrigt sich die Statusabfrage. R1 (ca. 1k) sorgt in Verbindung mit dem Ausgangsstrom am Anschluß 'CONTRAST' des Moduls, für eine kleine pos. Vorspannung. Bei Modulen verschiedener Hersteller ergibt sich ein optimaler Ablesewinkel.

Option Programmieranschluß (ATMEL-Standard): Über J1 läßt sich der Prozessor in der Schaltung programmieren. Die Pinbelegung entspricht einem Vorschlag des Prozessorherstellers ATMEL. Die Schaltung kann somit auch für andere Funktionen umprogrammiert werden. Beispielsweise: LC-Anzeige mit V.24 Schnittstelle. nach oben

Hinweise zur Schaltung: CX1 und C10 sollten keinen Temperaturkoeffizienten aufweisen: Typ NP0, schwarzer Farbtupfer. T1 und RN2 sind alternativ zu MAX232 und C5-C8. Die Lösung mit MAX232 ist vorzuziehen. C5-C8 haben hier 1,5mm Pinabstand. Alle angegebenen Werte für R und C sind unkritisch. R2 kann bis auf 330 Ohm verkleinert werden, um den LED-Strom zu erhöhen.

Empfohlen wird die rückwärtige Montage dieser Leiterplatte auf ein LCD-Modul LM16x21 o.ä. mittels einer 14 pol. Stiftleiste (Huckepack). Dabei zeigt die Lötseite dieser Platine zur LC-Anzeige (Stiftleiste auf Lötseite bestücken). Sofern ein beleuchtetes LCD-Modul verwendet wird, muß die Versorgungsspannung zumeist separat verdrahtet werden. Falls Vorwiderstände für die LED-Beleuchtung fehlen (sind meistens vorhanden), bitte einen Widerstand einfügen: ca. 10 Ohm / ¼ Watt.
Die Resetlogik des AT90S2313 erfordert einen Anstieg der Versorgungsspannung von max. einigen Millisekunden, was normalerweise kein Problem darstellt. Bei langsam ansteigender/abfallender Versorgungsspannung empfiehlt sich die Verwendung eines Reset-ICs, womit der Prozessor sicher gestartet/gestoppt wird; z.B. MC34164-5 im 3-Pin TO92 oder TL7705 im DIP8.

Bei langsam abfallender Versorgungsspannung kann andernfalls der Inhalt des EEPROM zerstört werden !

Um den Frequenzzähler mit einem externen Vorteiler 1/128 zu betreiben, kann der Widerstand R3 zur Aktivierung der Skalierung mit SW3 gegen 0V geschaltet werden kann. Frequenzen ab 1GHz werden als MHz mit vier Stellen vor dem Dezimalpunkt angezeigt; Perioden in ‚ps'. Die aktuellen Prozessoren enthalten das geänderte Programm. Ohne R3+SW3 ist die Funktion wie gehabt. nach oben

Viele Informationen gibt es beim Prozessorhersteller

zurück zur Übersicht