[time-nuts] Ublox neo-7M GPS

SAIDJACK at aol.com SAIDJACK at aol.com
Thu Aug 21 16:54:17 EDT 2014

>>  Except for a few magic target frequencies, the output  will have 
occasional (or frequent) missing or extra
>> cycles.  The output will be clean if you are  dividing by a power of 2.  
(By switching from 10 MHz to 8 
>>MHz, you have changed from frequent to  occasional.)
Not true that dividing by two cleans it up. If you change the cycle time  
from time to time as you would have to do even at 8MHz since the TCXO is  
free-running to GPS and then divide this by two you still get the non-standard  
cycle times, but these will now simply be twice as long on average.
The divider will not magically remove the huge cycle to cycle jitter  
whenever the unit does a phase adjustment. Only a PLL with a very long time  
constant compared to the cycle time (e.g. 100ms versus 100ns) can clean up the  
phase jitter.
Also, the number of adjustment cycles at 8MHz now depends on the frequency  
error of the TCXO versus UTC. Taking a heat gun and cold spray to the unit 
would  show that easily.
However at 8MHz with a 48MHz crystal you only need to add/shorten the cycle 
 time to compensate for the error of the crystal versus UTC. This is  
similar to the sawtooth error we are all familiar with.
At 10MHz you have to add cycle adjustments to both compensate for the  
frequency error of the TCXO as well as the N/M divider to generate 10MHz out of  
Wether you have 10,000's of phase adjustments per second or just a few  
doesn't change the fact that you are changing the cycle to cycle time by 
massive  degrees/percentages/nanoseconds.
The question is: does the hardware/software that calculates when to  
increase/shorten the cycle work with error-diffusion that keeps track of  the 
overall phase error accrued, or does it simply try to "get close  enough" by 
statistical averaging.
In the former case, the 10MHz phase over long periods of measurement would  
stay in phase with the UTC 1PPS phase. In the later case the 10MHz phase 
would  drift over time versus UTC which is really bad of course.
Which way does the uBlox hardware compute the error? I don't know, and the  
documentation I have seen does not add any insight.

More information about the time-nuts mailing list