cancel
Showing results for 
Search instead for 
Did you mean: 

[F767ZI] Determining Frequency of an analog Signal with digital Input Pins

Armin L.
Associate II
Posted on February 16, 2018 at 01:05

Hello!

On the NUCLEO-F767ZI I want to extract information from an analog signal that is frequency-modulated. The frequency range is 100...500 kHz. The signal is not quadrature, but sinusoidal with an amplitude of 5 V. I thought about feeding this signal to a digital input pin (five-volt tolerant) and creating an interrupt as soon as the input changes from LOW to HIGH (>= 3.3 V). In this interrupt I copy the clock cycle counter of a timer that is afterwards reset to count up from zero again... until the next change from LOW to HIGH occurs on the input pin.

Would that be a possible approach? I know that I have to somehow block the negative half-cycle of the sinusoidal voltage in order not to destroy the GPIO.

Are there other concerns I did not think about yet? Any hints or recommendations from you?

I do not want to use the ADCs because they only provide 2.4 MSPS which is a quite poor resolution regarding the frequency of the analog signal.

Thanks in advance!

#frequency-demodulation #frequency-modulation #frequency-detection #fm #digital-input
1 REPLY 1
AvaTar
Lead
Posted on February 16, 2018 at 08:31

IMHO the thing you ask about is Zero Crossing Detection.

Some devices use it to synchronize their actions to the mains (240V) zero crossing - think 'dimming'.

With appropriate adaption of the circuitry, it should work for your frequencies as well.

I am no hardware design guy, but you will surely find example schematics on the net.

Be aware the your hardware needs to deal properly with negative voltages.