Solución 1) Podría usar un contador de frecuencia con un conteo muy grande. Por ejemplo, si muestrea más de 1 segundo, su contador de frecuencia acumularía 5 millones de conteos. Si la frecuencia fuera 100 Hz por encima de eso, su conteo sería 5,000,100.
Esa sería una solución fácil y creo que la mayoría de las MCU pueden manejar entradas de temporizador de 5 MHz, o puede usar un divisor IC como prescaler.
Solución 2) si no puede realizar largos períodos de muestreo, puede mezclarlo a una frecuencia más baja.
Ok, esta solución requiere una programación sofisticada pero es muy confiable y no se desvía como la solución analógica que está proponiendo.
Básicamente, utiliza un XOR para "mezclar" digitalmente su señal de entrada con un reloj de referencia que está cerca en frecuencia a su señal de entrada. Esto da como resultado una frecuencia de salida que es la diferencia entre las dos señales.
Esta señal resultante puede luego contar la frecuencia usando cualquier bloque de temporizador MCU decente.
Aquí hay una buena ilustración de lo que sucede cuando XOR dos ondas cuadradas con frecuencias ligeramente diferentes y filtra la salida:
( desde aquí )
Aquí hay un diagrama de sistema de una posible solución:
simular este circuito : esquema creado usando CircuitLab
- Use dos de los bloques del temporizador de su MCU para crear dos contadores de frecuencia.
- Use el primer contador de frecuencia para medir su frecuencia de señal en un grado aproximado. Baja resolución porque la frecuencia es muy alta.
- Establezca el generador de reloj (a través de I2C, SPI, lo que sea) en una frecuencia muy exacta un poco por debajo de la frecuencia de señal medida. Esta frecuencia es muy precisa.
- Mida la frecuencia de salida del mezclador XOR. Este contador puede medir una resolución más alta porque está en una frecuencia más baja. Incluso puede agregar bits de contador adicionales usando SW para extender la resolución del temporizador porque se está ejecutando más lento. Por lo tanto, podrá detectar cambios muy pequeños en la frecuencia porque el cambio pequeño ahora es un gran cambio en la frecuencia de salida del mezclador. (Esto es básicamente lo mismo que la demodulación de la señal de radio).
- La frecuencia de señal exacta de la señal de entrada ahora se puede calcular como la frecuencia del sintetizador de reloj más la frecuencia medida por el segundo contador.
- Realice un seguimiento de los cambios lentos en la frecuencia de la señal de entrada utilizando los pasos 2 y 3 anteriores.