[time-nuts] Designing and building an OCXO and GPSDO
lists at philpem.me.uk
Sun Aug 10 17:45:13 EDT 2008
I've been following the mailing list for a few weeks using Pipermail (the
web-based archive) and I figured now was a good time to jump in (so to speak).
I'm working on a GPS-disciplined oscillator, based on a Trimble SVeeSix GPS
receiver, and a homebrew OCXO. I've got a pair of 10MHz 50-degree-C oven
crystals, and have a pretty good idea how to handle the temperature regulation.
What I'm planning to do is mount the crystal on a copper plate with two
power transistors, using heatsink compound between the copper and
transistors/crystal case, and fit a temperature sensor to the top side of the
crystal case. I'm planning to use a copper bracket to hold the sensor onto the
crystal, and in turn mount the crystal to the copper base.
As far as temperature regulation goes, I'm going to use a PIC
microcontroller (one of the 8-pin chips with an A/D converter) to monitor the
temperature of the crystal, and use a PID loop to control the two power
transistors to maintain a temperature of 50C +/- 2 Celsius (the accuracy spec
of the temperature sensor). I also have other higher-accuracy sensors (Dallas
DS18S20 and DS18B20) that I can calibrate with; these are accurate to around
half a degree Celsius with a resolution of 0.5C.
The whole thing is going to be mounted in a metal box lined with 1/2in
thick polystyrene, with all external connections made via Molex KK connectors
and standard hookup wire. If there's any advantage to doing so, I might use
RG174 cable for the oscillator output, but otherwise I'll stick to the KKs and
maybe twist the OUT/GND wires together.
What I'm stuck on is the oscillator itself. The crystals are standard
parallel-resonant parts, with a load capacitance of 30 picofarads. I've got a
few varicap diodes (varactors) that I'm planning to use to allow external
trimming of the frequency, on top of what the ~20pf "coarse" preset will
allow. So on one side of the crystal I'll have a 33pf capacitor, and on the
other a 20pf load capacitor, the varicap and a low-value DC-blocking capacitor
for said varicap.
The standard oscillator circuit for TTL seems to be a pair of 74HC04
inverters and a few passives, or a transistor version that outputs a
sine-wave. Are there any particular types of oscillator that are more suitable
for high-accuracy timing?
What I'd like to do is use this oscillator to calibrate frequency counters
and check the calibration on oscilloscopes and similar. Being able to lock
function generators (a mix of custom DDS sine generators based on Analog
Devices DDS chips and FPGA-based complex-signal DDSes) against the oscillator
would be very useful as well. Should I be going for a 1V sine output and then
convert this to TTL in the generators (which are easy to retrofit with adapter
boards) or output TTL from the reference and leave it at that?
What design parameters should I be optimising for, and how?
Given that a standard crystal is good to roughly 100ppm, and most
commercial OCXOs are specified to be within 1x10^-9 or better, I'm aiming for
around 1ppm to start with. Is even this realistic for a homebrew device?
There seems to be quite a bit of difference between just building a 4MHz
oscillator to run a PIC MCU to building an accurate frequency reference source...
As far as parts are concerned, I'm planning to use either a BB153 or BB148
varicap, a Microchip TC1047AVNBTR temperature sensor, a National Semiconductor
LM4040CIM3-4.1 voltage reference for the PIC's A/D, two BD139 power
transistors and a PIC12F683 microcontroller.
lists at philpem.me.uk
More information about the time-nuts