Calibrating a TCXO

ddstcxo

I'm looking at using the si5351 in a signal generator. It will use a TCXO for improved stability, but I'd still like to calibrate it occasionally. To that end, one of the clock outputs will be set to 10MHz. When calibrating, I will connect an external reference source [probably GPS based].

Is there a simple, easy way to compare a [TCXO based] 10MHz clock to a reference? I started off hoping to just use an XOR gate & low pass filter, but that would only give the difference, not tell me if my clock was fast or slow.

My research into potential circuits has me confused. I have ended up with notes on: counters, reciprocal counters, integrating reciprocal counters, etc. Great for a high precision frequency counter, overkill for a calibration circuit.

Background: DDS generator [AD9851], frequency step 1/24 Hz, clock = 178,956,970.667 Hz.

Driven by Arduino, but that can change if necessary.

Best Answer

Overkill for calibration?? If you are going to do calibration, you might as well do it as well as you get for free with basic components.

With a GPS receiver, the obvious output to use is the 1PPS (one pulse per second) output. If you count the 10MHz output from your clock chip against the GPS 1 second gate time, then you will have 0.1ppm count resolution. If the Arduino can't count an external 10MHz on an external input, capturing the count on another, then I'm sure there are other devices that can, or use less than 10MHz.

Don't forget, for calibration purposes, you don't need to count to 10M. If the accuracy of your clock is (say) .1% (I haven't looked up the data sheet, you do the sums for other numbers) then your count should be 10M +/- 10k counts. Using a 16 bit counter, allowing it to roll round when it gets to 65536, will give you an unambiguous range of +/- 27k when counting 10M in one second (hint, it overflows 152 times on the way there).

Related Topic