I just read the article about your GPSDO monitoring thing, and you mention several times that a reciprocal frequency counter is complex or expensive.
I do not agree with this. A reciprocal frequency counter is quite easy to implement in nearly any microcontroller.
- Put the input signal though some (adjustable) divider, for example a 74HC4040 ripple counter with an 74HC151 MUX.
- Select a suitable MUX setting for your "approximate measurement time".
- Create a free running counter in your uC (Higher clock is better, preferably count with F_CPU.
- On every period (either rising or falling flank, but be consequent) of the input, capture the timer value in a capture register.
- Also count overflows of your internal timer.
Now you have all information you need to calculate the input frequency to a quite high degree. There are some conditions that need a bit of careful programming. For example if the timer capture is done near an overflow, then it may be difficult to determine the exact amount of internal overflows of the timer in the frequency calculation. One way to get around this is to use two timers in your uC and connect both of them to the input signal, and then make sure there is an offset between those two timers.
A ripple counter has a quite significant delay, but it is not relevant as long as the delay is constant.
I just read the article about your GPSDO monitoring thing, and you mention several times that a reciprocal frequency counter is complex or expensive.
I do not agree with this. A reciprocal frequency counter is quite easy to implement in nearly any microcontroller.
Now you have all information you need to calculate the input frequency to a quite high degree. There are some conditions that need a bit of careful programming. For example if the timer capture is done near an overflow, then it may be difficult to determine the exact amount of internal overflows of the timer in the frequency calculation. One way to get around this is to use two timers in your uC and connect both of them to the input signal, and then make sure there is an offset between those two timers.
A ripple counter has a quite significant delay, but it is not relevant as long as the delay is constant.