I'm requierd to make a GPSDO as a project, my resources are flexable and i have access for an Arduino UNO, some Spartan FPGA device, and an OCXO.(which i currently do not own but will have in the near future.). I will prefer to use either the Arduino or FPGA, and there might be an option to use both but only if necessary. I need to make the GPSDO learn its long-term and short-term deviations and errors and have a Hold-over function for when there is no GPS reception so it can correct itself without the 1PPS. It is more of a learning project but it should also be as high-quality as i can make it.
The main thing I am having trouble with is deciding on the suitable measuring/correcting method and algorithm, as there are more then a few GPSDO implementations on the internet. Basicly, right now I'm trying to look for as many different methods i can find and think of.
I've seen 2 methods i thought could work, one is using a 1PPS from a GPS reciever, and connecting it to either the Ardiuno or the FPGA to measure the GPSDO output frequency (which should be at 10MHz) using a rising edge every second from the 1PPS and calculating the difference between the measurment and the wanted output, using a DAC to correct it through the OCXO. While this method is very simple, there is an obvious accuracy problem with the frequency measuring part, and i can't seem to find a way to fix it without measuring it for a longer time (which will be very inefficient), i thought about some methods using the Arduino timers but i don't think i should count on it on the long-term.
The second method is using a PLL's phase detector and an A/D, and connect it through an Arduino and a DAC to the OCXO's VCO terminal. What I'm having trouble with is understand how the phase detector will act with a 1PPS, (which is basicly a very short pulse), and a regular frequency, and how to understand the deviation from its output.
I would appreciate it very much if anybuddy could either suggest how to improve the methods i spoke of, or suggest any other methods.
*I have seen a thread on GPSDO that was posted not too long ago but my situation is a bit different as i have an additional need of learning the exact deviations of the frequency, and if possible the 1PPS jitter's effect aswell.