[time-nuts] Home-brew GPSDO

Logan Cummings logan.cummings at gmail.com
Thu Mar 17 12:40:43 EDT 2016


Hi Nigel,

    Mostly just chiming in because I'm planning to do something very
similar, disciplining or tuning a VCO to a precise frequency based off GPS
PPS - with a Due (Atmel SAM3x8E).

    In my case the control voltage is much wider range, so I'm forced to
use an external DAC - I picked one that's I2C controllable - easy to
interface with the Due.

    As far as control loop improvements go, I haven't implemented them yet
but my plan was to combine the frequency counting you describe above, with
some form of sub-period phase offset measurement. After having no luck
trying to find some links to share, I think the terms to search for are TAC
(Time Amplitude Converter) and the digital version, Time Digital Converter
(TDC). The ones I was looking at implementing are essentially the ramp
interpolator described here:
https://en.wikipedia.org/wiki/Time-to-digital_converter

     I was planning on using the Due's ADC to measure the voltage on the
integrator capacitor, but hadn't decided yet about a "good" current source
vs. a series resistor on the output of an XOR or DFF phase comparator to
put charge on the capacitor.

     Hopefully someone else can chime in with some better links and circuit
descriptions. Fairly certain this has been discussed a bit on the list and
when I have some time I'll be searching the archives.

Cheers,
-Logan

On Wed, Mar 16, 2016 at 9:47 PM, Nigel Vander Houwen <
timenuts-nigelvh at nigelvh.com> wrote:

> Hello All,
>
> Thanks to the advice earlier, I’ve gotten my HP 10544A OCXO working well,
> and close enough in frequency that the EFC is useful. I’ve started work on
> putting together a home-brew GPSDO. In short, it’s an Arduino Due, and a
> u-blox MAX-7 module. (I may think about grabbing a LEA module in the
> future, but the data sheet reference to PPS accuracy looks about the same,
> so for now, the MAX-7 will work alright).
>
> The Arduino Due has some nice 32bit timer/counters on board, and I’m
> clocking one of them from the 10MHz output from the 10544A. The PPS output
> of the GPS goes into a hardware trigger pin, so I can trigger a capture of
> the counter value in hardware without the delay uncertainty of trying to
> capture it in an Interrupt Service Routine.
>
> I’m using one of the Due’s on board 12-bit DACs (Not PWM) to feed the EFC
> input of the 10544A. The Due’s DAC output is only 0-3.3V, which is a fair
> bit less range than the -5 to +5V of the EFC input. Since the EFC input is
> inverting, I’ve got the crystal coarsely set just slightly high in
> frequency, and the DAC operating from 0-3.3V will bring it down to where it
> should be.
>
> To put a VERY basic disciplining scheme in place, I’ve set it up so I’m
> capturing the clock cycles of the 32bit counter (clocked from the 10MHz),
> every second on the PPS trigger, adding them up over 420 seconds (a few
> seconds shy of the 32-bit counter overflowing), and then taking the
> average. If it’s high, voltage goes up, if it’s low, voltage goes down.
>
> I haven’t yet put in place, but I plan to:
> Reconfigure the u-blox module into stationary position mode, which should
> help with accuracy over the default mode
> Implement a survey routine to average some number of position samples on
> request/on power up?
> Implement different disciplining modes, at power on, give the oven time to
> warm up, when first disciplining, average over shorter intervals to hone in
> on the proper EFC level quicker, move to longer intervals for long term
> disciplining.
>
> I would like input on the control loop though. I can’t say I’ve done a lot
> of control loop theory, but I imagine folks have good ideas for better ways
> to discipline this crystal than just taking really long averages.
>
> I haven’t put labels on the case yet, but here’s an album with some photos
> of the build so far. I still need to add a buffer amplifier for the 10MHz
> output so as to not load down the crystal too hard, but otherwise I’m
> fairly satisfied with the build so far.
> http://images.digitalnigel.com/index.php/GPSDO-Build <
> http://images.digitalnigel.com/index.php/GPSDO-Build>
>
> Anyway, thanks again for the insight earlier regarding tuning the oven
> temperature, and I look forward to your thoughts regarding this build.
>
> Thanks,
> Nigel
> _______________________________________________
> time-nuts mailing list -- time-nuts at febo.com
> To unsubscribe, go to
> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.
>


More information about the time-nuts mailing list