¿Es posible medir la frecuencia de una señal analógica de entrada con el modo de captura de entrada de los temporizadores en STM32F4? Si no, ¿cuál es la alternativa? Gracias de antemano.
¿Es posible medir la frecuencia de una señal analógica de entrada con el modo de captura de entrada de los temporizadores en STM32F4? Si no, ¿cuál es la alternativa? Gracias de antemano.
Parece que estás intentando construir un contador de frecuencia . Puede lograr dicho dispositivo con el módulo temporizador en un microcontrolador. Tenga en cuenta que tendrá algunas limitaciones en cuanto a la velocidad de la señal que puede observar.
Necesitará primero condicionar la señal de entrada. Para saber lo que se requiere, primero necesitaría saber un poco más sobre su señal, pero asumiré que está tratando de medir la frecuencia de algo que es básicamente una onda sinusoidal / cuadrada, tal vez con algún desplazamiento de CC. Necesitamos pasar de esta señal analógica general a una onda cuadrada digital que represente los mismos bordes. Podemos hacer eso con el siguiente circuito comparador:
Configure su microcontrolador para que cuente hasta que vea un borde ascendente en la salida del comparador. Aumente la frecuencia del temporizador lo más alto posible para lograr la resolución de frecuencia que necesita. También querrá disparar una interrupción en un evento de captura para que pueda hacer algo con los nuevos datos.
Cuando se dispara la interrupción, tome el valor en el registro de captura y calcule la frecuencia de la señal de la siguiente manera:
$$ f_ {in} = \ frac {f_ {timer}} {count} $$
Es posible que desee promediar varias de estas lecturas.