On 12/31/2011 08:15 AM, Charles P. Steinmetz wrote:
I know the thread began with a request for a "simple" DIY GPSDO, and
this may not be quite as simple as some might like. However, PPS
discipline is generally the simplest and most universal scheme from the
standpoint of interfacing to whatever GPS engine one has available. The
PRS10 has a clever system for PPS disclipine, using time-tagging for
phase detection, that mitigates the usual shortcomings of PPS discipline
and should be suitable for PIC/FPGA implementation.
As implemented by SRS, the discipline parameters are more than
sufficiently adjustable for any need. For a homebrew version, the VCO
would be the quartz VCXO or Rb of your choice. The pre-filter (which is
selectable in the PRS10) would be a great help in dealing with the
jitter in a GPS PPS signal. PPS locking is discussed at pp. 14-18 of the
2003 and 2005 manuals. (The manuals and Rev. H schematic are readily
available on the web.)
The feedback is really just the PPS counter 0-9999999 modeled, and any
interpolation can be added without loss of generality. The time-tagging
is thus just sampling the state of the counter, and optionally add
interpolator value.
You also want to have a quick-align that will reset the counter to
quickly jump into phase, before entering normal loop. That will save you
a lot of lock-in time as the phase will be in line... and worst-case
phase error can be half a second, so worst-case will 5 milion cycles
needs to be skewed, and doing that on the oscillator isn't very
time-efficient and causes for one hell of a initial phase error.
The pre-filtering exponential averager and PI-regulator is very cheap to
implement in a PIC, AVR or whatever. Just leave enough bits in there.
I think a simple CPLD or FPGA will pull it off. You need 24 bit for
counting, 24 bit for time-stamp and a few more for logic. You can
compress the range for the time-stamp, as you only need to know "too
high", "too low" and a fairly small in-range value range. If you allow
for +/- 10 us error you only need 200 values... so there is only 8 bits.
Cheers,
Magnus
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.