Guten Morgen miteinander Ich arbeite gerade an einem Projekt mit dem Thema Frequenzmessung. Ich möchte gern Frequenzen im Bereich von 10Hz bis 20kHz messen können. Ich dachte da an folgendes Konstrukt: -------------------- --------------- ------ Messfrequenz --> | | |Signal- | | | Referenzfrequenz --> |Phasenvergleicher |----->|aufarbeitung |--->|ADC | -------------------- --------------- ------ Ist ein bisschen weit hergeholt aber wenn es so funktionieren sollte warum nicht? Der Vorteil wäre: ich hätte sogar eine Art Messbereichsauswahl (in dem ich die Referenzfrequenz umschalte) Der Nachteil: Ich kann bei einer Referenzfrequenz von 10kHz nicht unterscheiden ob es sich bei der Messfrequenz um 100kHz oder um 1kHz handelt. Kann mir vielleicht mal einer einen Tipp geben ob meine Überlegungen so passen oder nicht? Ich würde mich über konstruktive Kritik freuen :) Und ja ich weiß... Es gibt auch einen Mikrocontroller mit Timern. VG Martin
>Und ja ich weiß... Es gibt auch einen Mikrocontroller mit Timern.
Richtig ! Und so macht man es auch.
Warum soll man ein Signal das ohnehin schon digitaler Natur (Frequenz)
ist erst in eine Spannung und die dann von einem ADC messen lassen. Das
ist erstens sehr ungenau und zweitens wie du schon erkannt hast
mehrdeutig.
Also das ganze Signal auf eine uC Internen Timer geschaltet. Capture
Funktion einschalten und gut ist.
Gruss Helmi
Danke für die Antwort. Jetzt ist es aber so, dass ich keinen Timer zur freien Verfügung habe und ich die Frequenz mindestens alle 10us (vielleicht sogar alle 1,6us) einmal messen muss. Außerdem sollen mindestens 2-Frequenzen gleichzeitig gemessen werden können. Gibt es vielleicht noch andere Möglichkeiten? VG Martin
Martin R. schrieb: > Jetzt ist es aber so, dass ich keinen Timer zur freien Verfügung habe > und ich die Frequenz mindestens alle 10us (vielleicht sogar alle 1,6us) > einmal messen muss. Wenn Du nur 10µs lang mißt, dann sind 10Hz Rechteck purer Gleichstrom. Für 10Hz brauchst Du 100ms Meßzeit, drunter gehts nicht. Bzw. wenn Du weißt, daß das Signal exakt symmetrisch ist, ginge auch 50ms. 20kHz sollten sich noch ohne Timer mit nem externen Interrupt messen lassen. Und nen Timer als allgemeine Zeitbasis wird ja Deine Applikation wohl haben. Peter
>(vielleicht sogar alle 1,6us) einmal messen muss. Was soll das bringen ? Dein 100KHz Signal hat eine Periodendauer von 10uS. Da kannst du nur mit Periodendauermessung ueber einen Timer noch was erreichen. Bei deiner Loesung mit dem Phasenvergleicher , Filter , ADC braucht die ganze Sache doch schon ewigkeiten um einzuschwingen. Da wirst du schon einige mS warten muessen bis sich da ueberhaupt was tut. >Jetzt ist es aber so, dass ich keinen Timer zur freien Verfügung habe Falschen uC ausgesucht oder Software nicht optimal strukturiert. >Außerdem sollen mindestens 2-Frequenzen gleichzeitig gemessen werden >können. Wenn du einen schnellen uC eventuelle das Siganl direkt mit einem ADC einlesen und dann eine FFT machen.
Hallo Ein 10Hz-Signal hat eine Periodendauer von 100ms und ein 20kHz-Signal hat eine von 50us. Das ist schon klar. Es ist in der Anwendung so, dass alle 10us (oder eben 1,6us) ein komplettes Abbild aller I/O's gespeichert werden muss. Und wenn die Messung noch nicht beendet wäre dann würde ich halt den alten Messwert nochmal speichern. Zum falschen uC. Wenn es nach mir gegangen wäre hätte ich schon was größeres genommen (vielleicht sogar nen FPGA mit Softcore). Naja. Aber ich hab jetzt den LPC und an dem kann nicht mehr gerüttelt werden. Das Argument mit dem Einschwingen ist schon recht heftig. Ich werde wohl doch schauen, dass ich das in den LPC reinbringe. Danke VG Martin
Martin R. schrieb: > Es ist in der Anwendung so, dass alle 10us (oder eben 1,6us) ein > komplettes Abbild aller I/O's gespeichert werden muss. Und wenn die > Messung noch nicht beendet wäre dann würde ich halt den alten Messwert > nochmal speichern. Das hat aber nichts mit der Messung zu tun. Du nimmst einfach ne Variable, die den alten Meßwert behält, bis die nächste Messung fertig ist. Und die kannst Du dann sooft auslesen, wie Du lustig bist. Ob das nun sonderlich sinnvoll ist, die CPU mit 10000 mal den gleichen Wert auszugeben zu belasten, sei dahingestellt. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.