Search This Blog

Saturday, 16 November 2013

GPS Disciplined - Really?


After a great deal of fiddling, learning, scratching my head then fiddling some more, I have finished my GPS disciplined Frequency Standard:

This is a project by VE2ZAZ:

So, what's this all about then?

Basically we have an oven controlled crystal oscillator (OCXO) which can be fine tuned by applying a voltage to an adjustment pin. Typically this adjustment is only +/- a few Hz around the target frequency anyhow. The oscillator itself is the large metal box you can see in the image above - it has a sticker on it saying "Used". This box is actually the oven - and yes - it heats up to maintain the crystal inside at a steady temperature.

So, we have a PIC processor on the green PCB you can see and this basically monitors the output of the OCXO and compares that to a 1pps signal from the GPS receiver. Having a known 1pps signal means we can determine if the voltage on the OCXO needs to be increased, decreased or left as-is.

That's the bottom line of the whole thing.

Now, the firmware (read software) does some stuff with averages and a state machine to determine if the output is within certain accuracy parameters, but basically it's keeping the OCXO on track.

How accurate can this be?

Well, I have mine configured to make an adjustment every 20 Hex or 32 samples. Each sample is fixed at 16 seconds (expecting 16 million counts from the OCXO).

So my averaging period is 16 * 32 = 512 seconds (or about 8.5 minutes).

Therefore the best possible accuracy I can expect is 1 in (10MHz * 512s) = 2.0E-10 (ish)

So, it's more than adequate enough for my purposes. I need to leave this running for a while and monitor the output - there's a serial connection to a "dumb terminal" spitting out data as the unit trundles away to itself.

The output waveform looks like this, this is the 10MHz signal:

There's also another output switchable between 5 MHz and 1 MHz.

Initially I had problems with the 1pps signal not seeming to be at 1pps! The symptom was that the count recorded by the unit after each 16 second sampling period would suddenly be wildly out and every 1 in 4 would seem to be accurate. Will some great assistance via email, eventually this was found to be due to noise on the PSU lines to the main PCB. I've ended up adding some extra smoothing to the +8V line that feeds the main board and the OCXO driving op-amps. This plus some extra capacitance where the lines physically connect to the board seems to have solved the problem. I also ended up adding a simple RC low pass filter to the 1pps line where that enters the microprocessor, but I don't think that had any effect at all.

I've used the output from this to calibrate the counter I made recently:

This is Geddy Cat, he is by far the best cat in the world:

Good, egh?

No comments:

Post a Comment