[time-nuts] First success with very simple, very low cost GPSDO
albertson.chris at gmail.com
Fri Apr 11 01:06:37 EDT 2014
On Thu, Apr 10, 2014 at 6:47 PM, Charles Steinmetz <csteinmetz at yandex.com>wrote:
Here is my assumption: You are a b=eginner at this precision time hobby
and lack a good reference oscillator so you decide to build this very
simple GPSDO as you first good frequency reference. This is the intended
> You originally described a system that counts to 5M every second. Tom and
> others pointed out that you do not need the complete 5M count, all you need
> is the remainder of a modulo count. The question then is, how much of a
> remainder do you need to be sure that it spans all anticipated errors in
> both the PPS and the oscillator?
Yes this right. I'm sure that under limited conditions I can get by
looking only at the remainder. It is harder than was said because the
overflows per second rate is a non-interger but there are till only two
"flavors" of seconds: Those with N overflows and those with N+1 overflows.
> Tom opined that 8 bits should be sufficient, based on some realistic
> assumptions regarding the anticipated errors in PPS placement and
> oscillator drift. (Note that a 256 cycles per second error is 51 PPM at 5
> MHz.) Brent said that he found 8 bits was not sufficient to track his OCXO
> from cold, so he went to 16 bits. I questioned whether trying to track the
> OCXO from cold was a worthwhile exercise.
No, not from "cold" but the warmed up OCXO with a arbitrary voltage on it's
EFC pin. (I assume you can not guess the best EFC every time)
> So: If you can't count on anything, then you need to count every cycle.
> (But wait -- if you can't count on anything, you can't count on your PPS
> being accurate, either.) In the real world, you should be able to trust
> that any oscillator that is chosen for a GPSDO will free-run within 1 PPM
> when it is warmed up, and that your PPS will always be within 1 PPM, as
> well. This determines how large your remainder needs to be.
But how do you let it "free run" Do you disconnect the EFC pin using a
relay to open the connection to the DAC? Or do you just output a mid-range
value, whatever voltage that might be.
> I agree with Tom that 8 bits should be plenty (with the caveat pointed out
> by Brent, that 8 bits may not be enough to track the OCXO from cold). So,
> my suggestion was to wait until you CAN trust that the oscillator error is
> within your error budget before starting to discipline.
In the final developed system I would place a temperature sensor on
directly on the OCXO.
> As far as where to start the DAC, I'd be inclined to determine what EFC
> voltage puts the warmed-up oscillator within 1 PPM and store the
> corresponding DAC word for readout at boot time. (I'm assuming here that
> any aspiring time nut has or can beg a counter good to 1PPM before building
> the GPSDO. If not, see below.) To account for long-term oscillator drift,
> you can update the DAC word in NV memory with the long-term average during
> locked operation.
So you are borrowing a 1PPM counter and using NV memory to avoid counting
overflows and a half dozen lines of code.
Or to say it another way. If I leave those line of code in place the
Arduino IS a 1ppm counter. In fact I had an LCD connected to the Arduino
and I diplayed the found every second. I placed the LCD near m=by HP
counter and the matched. I thought to myself "this $8 device is as good
as a 10MHz HP counter.
Maybe I leave in the overflow counting at first then once we get to locked
state I switch to looking only at the last 8 bits of the timer. This
allows the GPSDO to bootstrap itself with not need for other test equipment.
> As far as disciplining the oscillator from cold (which I do not recommend
> for the reasons I discussed previously), you could do the same thing,
> either manually at construction/alignment time, or by counting the full 5M
> immediately at startup and zeroing the oscillator with a fast loop. (This
> would also apply to the warmed-up DAC count referred to in the paragraph
> next above, if you do not have independent means to ascertain when the OCXO
> is on frequency. In either case, you could make the "count every cycle"
> mode a manually-invoked calibration subroutine and use the more efficient
> and robust modulo count for normal operation.)
I think this is the conclusion I made above. The fast lock count every
cycle mode works for any crystal, even a very poor one. I can use it until
I deter the steady state then switch to a different mode.
I need to figure out how to best use the TIC capacitor voltage too.
> Best regards,
> time-nuts mailing list -- time-nuts at febo.com
> To unsubscribe, go to https://www.febo.com/cgi-bin/
> and follow the instructions there.
Redondo Beach, California
More information about the time-nuts