I was reading on this list for quite a while, but still have some questions I'd 
like to ask. Please forgive me my perhaps silly questions since I am a newbie 
to the timenuts world :-)

So I have built my own GPSDO. I used a low phase noise OCXO from AXTAL, a 
LEA-M8T module and a small STM32F303 microcontroller.
Since this was my very first attempt in this topic, my approach was quite 
basic: I used the OCXO as clock source for a free-running counter and the 
rising edge of the 1PPS signal was used to sample the counter. I then 
subtracted the last sampled value from the most recent one and thus had a 
measure of the OCXO's frequency. Since the counter is free-running, any 
frequency error should, at some point, accumulate such that there is 1 count 
difference (at least I think so). If there are more than 10e6 counts, my OCXO 
is too fast, and if there are less than 10e6 counts I know the OCXO is too 
slow. So depending on these two conditions, the value of a DAC is increased or 
decreased. In theory, a GPSDO with this scheme should basically "lock" at some 
time, however I expected that the performance wouldn't be amazingly good (but I 
wanted to see where I can get).
Next step, I tested the GPSDO. For this purpose I got an Oscilloquartz STAR4, 
and I let both GPSDOs run and warm up for about a week before I did some 
measurements. In my own design, I also implemented a 1PPS output (just by 
dividing the 10MHz clock with timer), and I used the 1PPS of my GPSDO and the 
STAR4 together with a HP 5335A time interval counter.
It was a bit disappointing to see that there is, even after a week of warmup, 
still some drift visible. My own GPSDO (for sure it's not the STAR4 :-)) 
appears to drift about 10ns in 10min, and I have the impression that this is 
way too much. So I didn't even try to do some Allan Deviation measurements, I 
bet it would be a nightmare. (I also made a timelapse video of the two OCXO 
signals displayed on a 'scope. Nothing beautiful :-/ )
Instead I would like to make a 2nd version. This time I would like to implement 
a PLL. The reason is also that I want the 1PPS to be aligned to UTC, as 
commercial GPSDOs seem to do this.
And this is now the point where I need some advice! :-)
I think I will still divide the 10 MHz down to a 1PPS signal, and then phase 
lock that to the 1PPS from the GPS module. One could do this e.g. with a 
phase/frequency detector with two D-flipflops, e.g. like this one:

https://electronics.stackexchange.com/questions/301402/phase-frequency-detector-in-pll

The signals UP and DN could then be used to steer the OCXO. A counter could be 
incremented whenever an impulse comes from the UP signal, and the very same 
counter could be decremented if there is an impulse from the DN signal. However 
I think this is way too basic, I need a proper loop filter. But what do I do 
with the phase detector signals and how to interface them with a proper loop 
filter, say an FIR or even IIR filter? the STAR4 GPSDO has an adjustable loop 
filter time constant, default 200s. I want something similar, but it is 
currently not yet clear how to interface a digital filter with a phase detector.
Later I would also like to add the sawtooth correction, but so far I have not 
yet found out how to do that - I couldn't find out in the uBlox manual where I 
can find info about the 1PPS timing.

Thanks for any interesting inputs!

Many thanks
Tobias
HB9FSX


_______________________________________________
time-nuts mailing list -- [email protected]
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.

Reply via email to