Hi, ich habe ein digitales Signal, dessen Länge ich gerne messen würde. Wir sprechen über Zeiträume von 10-40ms. Allerdings bei einer Ungenauigkeit von max 400ns (lieber die Hälfte oder weniger). Schließe ich das Signal direkt an einen GPIO eines Mikrocontrollers an und lege dann einen Interrupt auf die Flanke? Wie schnell sollte der Mikrocontroller getaktet sein? 400ns entsprechen ja schon 2,5 MHz. Sollte ich mir da etwas schnelles nehmen? Einen PIC oder xMega mit 32 MHz? Schön wäre etwas günstiges mit wenigen Beinchen. Der Mikrocontroller soll nur die Zeit messen und über I2C ausgeben. Oder gibt es da einen anderen, sinnvolleren Weg? Danke für eure Hilfe! Emil
Mit einem µC heisst dein Stichwort "input capture". Damit hast du die maximal mögliche Genauigkeit bei einem µC. Interrupt ist suboptimal, weil der eine gewisse variable Latenzzeit hat bis er aufgerufen wird und dann der Code erst noch register retten muss. Emil Bergmayer schrieb: > Oder gibt es da einen anderen, sinnvolleren Weg? Einen Frequenzzähler, ggf. mit einer entsprechend genauen Zeitbasis? Um eine entsprechend genaue Zeitbasis kommst du auch bei einem µC nicht herum wenn es genau werden soll.
:
Bearbeitet durch User
Selbst der kleinste AVR mit Input Capture Funktion kann das spielend. Bei 20 MHz Takt macht das 50ns Auflösung. Nimmt man als Taktquelle einen gute TCXO ist der auch auf 10ppm und weniger genau.
Udo Schmitt schrieb: > Mit einem µC heisst dein Stichwort "input capture". Ha! Vielen Dank! Das hat mich mit Google auf diese Seite gebracht: http://www.mikrocontroller.net/articles/High-Speed_capture_mit_ATmega_Timer und ich glaube darin wird alles geklärt, was ich wissen will :) Dir noch einen schönen Tag!
Mit Atmega: Beitrag "Stoppuhr – Geschwindigkeit – Pulsweite mit Atmega88" oder STM32: Beitrag "Frequenz- und Pulsweitenmessung mit STM32F407"
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.