Frequenz mit Torzeit und Impulszählung messen

Gast #1592679
Lesenswert?

Halli Hallo

Ich möchte mit meinem uC (ATMEGA88) eine Frequenz im Bereich von 10kHz 
bis 500kHz messen. Es ist ein Rechtecksignal mit DC 50%.

Habs schon mit Periodendauermessung ausprobiert, hat auch gut geklappt, 
nur denke ich, dass es bei so hohen Frequenzen nicht gerade genau ist.
Darum hab ich ans Flankenzählen gedacht. Ich würde mit Timer0 eine 
Torzeit von ca. 500ms erzeugen und dann die Flanken mit Timer1 Zählen.

Nur wenn ich ja diese Torzeit immer Fix lasse, dann hab ich ja nur ne 
Aulfösung von 1Hz, also nichts mit Kommazahlen. Oder mach ich da einen 
überlegungsfehler?

Meiner Meinung nach müssten nicht die Flanken, sondern die ganze 
Periodenanzahl gemessen werden. Also beim ersten positiven Flanke wird 
die Torzeit gestartet, die Perioden werden gezählt, und wenn die Torzeit 
vorbei ist, wird gewartet, bis die nächste positive Flanke kommt. So hat 
man ganze Perioden drauf und nicht noch eine angefangene.
Mit der Zeit der "erweiterten" Torzeit und den Anzahl Perioden kann man 
dann die Frequenz berechnen.

Nun lese ich aber überall von fixen Torzeiten. Sehe ich das richtig, 
dass die alle nur auf 1Hz Auflösung genau messen wollen/können?

Grüsse Michl
Gast #1592696
Lesenswert?

>Nun lese ich aber überall von fixen Torzeiten. Sehe ich das richtig,
>dass die alle nur auf 1Hz Auflösung genau messen wollen/können?

Wenn du eine Torzeit von 1s hast misst du mit 1Hz Auflösung.
Bei 10s Torzeit mit 0.1Hz Auflösung. Bei kleinen Frequenzen
ist deshalb die Periodendauermessung günstiger. Musst halt sehen
wo du von Frequenz- auf Periodendauermessung umschaltest.
Gast #1592697
Lesenswert?

Michael schrieb:
> Nun lese ich aber überall von fixen Torzeiten. Sehe ich das richtig,
> dass die alle nur auf 1Hz Auflösung genau messen wollen/können?

Es gibt auch Frequenzzähler mit 10/100 Sekunden Torzeit, da hat man dann 
0,1/0,01 Hz Auflösung.
Gast #1592702
Lesenswert?

Wieviel Prozent Messfehler sind denn 1Hz bei einer Messgroesse von 500 
kHz?
Um Deine Referenz so genau zu bekommen, dass das was Du da misst, 
verlaesslich ist, musst Du Aufwand treiben, den Du nicht bezahlen 
kannst/willst.

Gast
Gast #1592798
Lesenswert?

In der Regel ist die Messung über die Zeit besser. Bei hohen Frequenzen 
muß man nur die Periodendauer nicht aus einer Periode, sondern aus mehr 
Perioden (z.B. 256 oder 1000) machen.  Für wirklich hohe Frequenzen 
(über etwa 100 kHz) muß der Vorteiler in Hardware sein, den Feinabgleich 
und den Rest kann man auch in Software machen.

Schon damit wäre man mit der relativen Auflösung immer so gut wie bei 
den niedreigen Frequenzen.


Wenn mehr als 2 Perioden hat, kann man auch noch die Flanken im inneren 
Nutzen (nicht nur die 1. und letzte) damit läßt sich dann das Rauschen 
nochmal etwas reduzieren. Ideal wäre eine Lineare regression der 
gemessenen Zeiten für die Flanken.  Für höhere Frequenzen wird das aber 
recht Recehnzeitaufwendig (vermutlich bis etwa 10 kHz mit dem Mega8 in 
Echtzeit) und man muß was nicht ganz optimales nutzen, z.B. indem man 
nur je 50 Flanken am Start und Stop nutzt, oder je 2...32 Zeiten erstmal 
mittelt.


Bei allem muß man aber auch bedenken das auch ein Quarz Fehler hat. Es 
macht aber durchaus Sinn die Auflösung deutlich höher als die 
Absolutgenauigkeit zu haben. Nur besser als die Stabilität macht keinen 
Sinn. Die Grenze liegt aber auch für einen einfachen Quarz im bereich 
0.01 ppm über ein paar Sekunden.
Gast #1592808
Lesenswert?

>Wenn mehr als 2 Perioden hat, kann man auch noch die Flanken im inneren
>Nutzen (nicht nur die 1. und letzte) damit läßt sich dann das Rauschen
>nochmal etwas reduzieren. Ideal wäre eine Lineare regression der
>gemessenen Zeiten für die Flanken.  Für höhere Frequenzen wird das aber
>recht Recehnzeitaufwendig (vermutlich bis etwa 10 kHz mit dem Mega8 in
>Echtzeit) und man muß was nicht ganz optimales nutzen, z.B. indem man
>nur je 50 Flanken am Start und Stop nutzt, oder je 2...32 Zeiten erstmal
>mittelt.

Hä?

Frequenzmessung für Dummies:
Torzeit ist die Zeitbasis z.B. 10s, 1s, 0.1s.
Gezählt werden die Perioden der Frequenz.
Je länger die Zeitbasis desto größer die Auflösung.

Periodendauermessung für Dummies:
Torzeit ist die Periodendauer der Frequenz.
Gezählt werden die Perioden der Zeitbasis.
Je höher die Frequenz der Zeitbasis desto besser die Auflösung.
Da muss man nix mitteln.
#1592817
Lesenswert?

Du kannst tatsächlich die Zeitdauer von der ersten z.B. positiven Flanke 
nach dem Öffnen des Tors bis zur ersten positiven Flanke direkt nach 
Torende zählen und durch die Anzahl der positiven Flanken dazwischen 
teilen.  Dann hast Du eine Kombination von Periodendauer- und 
Frequenzmessung mit einer im Schnitt höhere Genauigkeit als jede 
einzelne daven.

An den Grenzen degeneriert es zu einer der beiden Messarten:  Ist die 
Periodendauer des Messobjekts in der Gegend der Torzeit, hast Du reine 
Periodendauermessung (der Divisor ist dann 1), bei sehr hohen Frequenzen 
hast Du praktisch reine Frequenzmessung (der Divisor ist sehr hoch).

Ich habe so etwas mal zur optischen Messung der Rotorblattfrequenz eines 
Flugobjekts mit dem Butterfly und einer kleinen Fotodiodenschaltung 
realisiert.  Bei 100 Hz (Glühlampe) und 1 Hz Torzeit war die Auflösung 2 
Nachkommastellen, die zuverlässig waren.
Gast #1592832
Lesenswert?

Ich habe das bisher so gelöst, dass ich bei meiner 
Wunsch-Mindestauflösung zwischen Periodendauermessung (für kleine 
Frequenzen) und Torzeitmessung (für hohe Frequenzen umgeschaltet habe. 
Damit ist gewährleistet, dass ich immer eine Mindestauflösung habe.
Gast #1592858
Lesenswert?

Hc Zimmerer schrieb:
> Mit der von mir geschilderten Methode hast Du immer mindestens die
> Auflösung der jeweiligen Methode.

Sag' ich doch. ;)
Diese Mindestauflösung kann man mittels Hardware (Teiler) einstellen und 
nach Bedarf wählen.
Gast #1593308
Lesenswert?

Die Messung der Zeit über mehrere Perioden ist schon eine gute Lösung.
Damit hat man auch bei höheren Frequenzen die Hohe Auflösung die man mit 
der einfachen Periodenmessung bei niedrigen Frequenzen hat auch bei 
hohen Frequenzen. Die zahl der Perioden könnte man vorher festlegen, 
oder man zählt halt mit, bis man genug hat.

Eine einfache Version davon ist ein einstellbarer Teiler, um immer eine 
relativ niedrige Frequenz zu messen.

Bei einer Messzeit von 0,5 s und einer Zeitmessung mit z.B. 50 ns 
Auflösung hat man so knapp 7 Stellen Auflösung.


Die Umschaltung zwischen einfacher Periodenmessung und klassischen 
Frequenzzählen ist dagegen nicht so gut. Im mittleren Bereich (z.B. 10 
kHz) ist weder das eine noch das andere Verfahren wirklich gut - nicht 
ganz 4 Stellen Auflösung.


Wenn man noch mehr Auflösung haben will (oder weniger Messzeit), kann 
man halt mehr als nur die Position der ersten und letzten Flanke in der 
Messzeit auswerten. Da braucht es dann aber etwas mehr Mathematik, um 
noch mal etwa 1-3 Stellen mehr an Auflösung zu gewinnen. Man kann es 
also noch besser machen, muß es aber nicht - 7 Stellen reichen meistens.
Gast #1593349
Lesenswert?

Im Netz gibt es ein Programm für einen Frequenzzähler der mit der 
Periodendauermessung arbeitet.
http://www.mino-elektronik.de/fmeter/fm_software.htm

Da werden bei einem AT90S2313 mit 10MHz Takt bis zu 140kHz direkt 
gemessen (6-stell. Auflösung). Mit einem Mega88 und 20MHz käme man dann 
auf 280kHz und mit ein wenig Optimierung sicherlich auch auf 500kHz 
Eingangsfrequenz.
Vielleicht hilft Dir dies weiter.
#1593355
Lesenswert?

Ulrich schrieb:
> Die Messung der Zeit über mehrere Perioden ist schon eine gute Lösung.
> Damit hat man auch bei höheren Frequenzen die Hohe Auflösung die man mit
> der einfachen Periodenmessung bei niedrigen Frequenzen hat auch bei
> hohen Frequenzen. Die zahl der Perioden könnte man vorher festlegen,
> oder man zählt halt mit, bis man genug hat.

So isses.
Auf ne Flanke warten, dann für z.B. 0,5s die Perioden zählen (z.B. mit 
T0) und dann bei der nächsten Flanke stoppen.
Damit erspart man sich die Umschalterei und hat immer die gleiche 
minimale Auflösung (CPU-Quarz * 0,5s).

f_unbekannt = f_CPU * Periodenzahl / Capture_Wert


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren