Moinsen Kollegen,
ich habe einen Sensor, der zwei Ausgänge hat, an denen eine Frequenz anliegt.
Erklärung:
- Ausgang 1: ist die Referenzfrequenz. Der Sensor besitzt keinen internen Quarzoszillator, deswegen muss der Drift, der bei der Temperaturänderung entsteht, korrigiert werden. Der Korrekturfaktor wird über Korrekturfaktor = *Referenzwert/tatsächlicher Wert berechnet.
-Ausgang 2: Hier ist die Frequenz, die den "Wert" repräsentiert. Um den richtigen Wert zu erhalten, muss der Wert von diesem Ausgang mit dem Drift, bzw. dem Korrekturfaktor verrechnen.
Jedoch werden nicht die Frequenzen gemessen, sondern die Periodendauer, bzw. der zeitliche Abstand zwischen zwei aufeinanderfolgenden fallenden Flanken.
Die MCU ist eine STM32M405RG, mit 168MHz.
Ich erfasse diese Zeiten über Input Capture. Als Timer stehen mir 16-bit und 32-bit Timer zur Verfügung, mit einer maximalen Frequenz zwischen von 84 bzw. 168Mhz, Prescaler kann ein Int zwischen 1 und 65536.
Jetzt die Frage: Wie soll ich ihn (=Timer) einstellen? Die Periodendauer am Ausgang 1 liegt zwischen 40 und 60ms und der *Referenzwert ist 52,4288ms. Ich kann den Timer so laufen lassen, dass er alle 60ms überläuft oder aber auch dass er alle 500ms überläuft. Über Auflösung des Timers steht im Datenblatt leider nichts drin
Danke Euch
ich habe einen Sensor, der zwei Ausgänge hat, an denen eine Frequenz anliegt.
Erklärung:
- Ausgang 1: ist die Referenzfrequenz. Der Sensor besitzt keinen internen Quarzoszillator, deswegen muss der Drift, der bei der Temperaturänderung entsteht, korrigiert werden. Der Korrekturfaktor wird über Korrekturfaktor = *Referenzwert/tatsächlicher Wert berechnet.
-Ausgang 2: Hier ist die Frequenz, die den "Wert" repräsentiert. Um den richtigen Wert zu erhalten, muss der Wert von diesem Ausgang mit dem Drift, bzw. dem Korrekturfaktor verrechnen.
Jedoch werden nicht die Frequenzen gemessen, sondern die Periodendauer, bzw. der zeitliche Abstand zwischen zwei aufeinanderfolgenden fallenden Flanken.
Die MCU ist eine STM32M405RG, mit 168MHz.
Ich erfasse diese Zeiten über Input Capture. Als Timer stehen mir 16-bit und 32-bit Timer zur Verfügung, mit einer maximalen Frequenz zwischen von 84 bzw. 168Mhz, Prescaler kann ein Int zwischen 1 und 65536.
Jetzt die Frage: Wie soll ich ihn (=Timer) einstellen? Die Periodendauer am Ausgang 1 liegt zwischen 40 und 60ms und der *Referenzwert ist 52,4288ms. Ich kann den Timer so laufen lassen, dass er alle 60ms überläuft oder aber auch dass er alle 500ms überläuft. Über Auflösung des Timers steht im Datenblatt leider nichts drin
Danke Euch