Forum: Mikrocontroller und Digitale Elektronik AVR Frequenzmessung gemäß AVR205


von Ulrich K. (buz)


Lesenswert?

Guten Abend,

In der App-Note AVR205 von Microchip (ehemalig Atmel) ist mir folgendes 
in Kapitel 3 aufgefallen:

In this application note, the “gate-open” interval was chosen to be 
0.1s, or 100ms, and so the signal to be measured will clock a counter 
for this time interval, and produce a frequency count result in 100ms. 
The resultant frequency measurement will be one-tenth the actual 
frequency.

Achtung jetzt wird es spannend...

This was also chosen to take advantage of the timer/counter’s 16-bit 
resolution; in this case, measuring frequencies from 500Hz to 5000Hz. If 
a frequency of 500kHz is to be measured, a gate time of 1ms would result 
in good use of the 16-bit timer/counter’s range.

Sofern man 100ms ein Signal mit 5000Hz zählt, steht der Zähler auf 500. 
Analog dazu steht er auch auf 500, wenn man 1ms ein Signal mit 500kHz 
zählt.

Nun zu meiner Frage: Wo ist bitte hier der 16-Bit Zähler > gut < 
genutzt?
War nicht 100ms ein Signal mit 500kHz gemeint? Dann steht der Zähler 
zumindest auf 50.000 (von 65535).

Viele Grüße, Uli

von Manfred (Gast)


Lesenswert?

Vielleicht bekommst Du da etwas mehr:
http://shelvin.de/frequenzzaehler-mit-display/

von Ulrich K. (buz)


Lesenswert?

Manfred schrieb:
> Vielleicht bekommst Du da etwas mehr:
> http://shelvin.de/frequenzzaehler-mit-display/

Bin kein Arduino-Freund. Eigentlich will ich auch keinen Frequenzzähler 
im Sinne von variabler Eingangsfrequenz. Mein Teilproblem ist, ich 
möchte 500kHz messen und ggf. etwas an der Antenne nachjustieren.

Die Frage war: Der Text in der App-Note macht doch keinen Sinn. Bei 
5000Hz müsste man 100s (1 Minute 40s) zählen um die 16-Bit gut zu nutzen 
(50k von 65k).

von Karl M. (Gast)


Lesenswert?

Ich habe einen reziproken Zähler programmiert.

Das ist die Messzeit einstellbar und liegt bei ~ 1 Sekunden.
Damit kann ich bis 0.45 * CPU Clock einen Eingangsfrequenz messen.
Wichtig war mir dabei eine duty 50:50%, das ich mit zwei Flip Flip, 4:1 
Teiler, erreicht habe.

Mit 20 MHz CPU Clock kann ich dadurch bis 38,5Mhz messen.

Benötigt wird dadurch 64 Bit Mathematik.

von Karl M. (Gast)


Lesenswert?

Jetzt habe ich auch den Link dazu gefunden:

Beitrag "Reziproker Frequenzzähler+ Optimierte 64bit uint Routinen"

von m.n. (Gast)


Lesenswert?

Ulrich K. schrieb:
> Nun zu meiner Frage: Wo ist bitte hier der 16-Bit Zähler > gut <
> genutzt?

Es kommt darauf an, was Du brauchst. Wenn eine Messung auf drei gültige 
Stellen reicht, dann kann man das so machen. Ob das nun unbedingt gut 
ist, ist eine andere Frage.

Manfred schrieb:
> Vielleicht bekommst Du da etwas mehr:
> http://shelvin.de/frequenzzaehler-mit-display/

Bei dem Programm kann man nicht nachvollziehen, wie das gezeigte 
6-stellige Ergebnis zustande kommt. Wenn man weiß, daß der Arduino Uno 
mit einem keram. Resonator getaktet wird, sind 4 gültige Stellen schon 
der max. sinnvolle Wert.

Ulrich K. schrieb:
> Mein Teilproblem ist, ich
> möchte 500kHz messen und ggf. etwas an der Antenne nachjustieren.

Dann stell die Meßzeit doch passend ein, damit der Zählerstand bei 50000 
liegt.
Zeitgemäß ist eine reziproke Frequenzmessung, bei der man keine genaue 
Torzeit einstellen muß. Beispiele findest Du hier: 
http://mino-elektronik.de/fmeter/fm_software.htm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.