Electronics > Projects, Designs, and Technical Stuff

Budget GPSDO - complete

**trobbins**:

Ok I see that level shift now - my initial thoughts were blinkered to the transient disturbances.

I can see that the control voltage level change could result from a change in the U5 regulated rail, and/or the VDD rail, and/or the gnd points.

The driving change is increased U7 supply current on the VDD supply and its return. That could be due to the VDD trace resistance from U3 to U7 causing a voltage change on U4 (if the PWM value was sensitive to device supply voltage). That influence could be checked by cutting the VDD trace near U7 and rerouting U7 directly to U3, then there is just the load regulation of U3 at play.

It seems difficult to know where to start carving up the gnd plane without some indications of where there may be ground current influences. I'd suggest that static voltage changes in the gnd plane could be assessed by retrofitting direct additional wire links, eg. from U3 to U7, and U3 to J7/4, and U3 to U4/14, such that the gauge of an added link diverts or suppresses gnd related voltage drops that show a net benefit in the frequency ppm deviation with 50 ohm load steps.

If available from the pcb maker, a simple way to suppress static voltage drops in the gnd plane is to increase the copper thickness spec for that plane.

**thinkfat**:

Increasing the copper thickness sounds like a pretty drastic method to me. I'd first try to increase decoupling, adding capacitors close to the critical circuits, maybe adding a choke.

**MIS42N**:

Further investigation of the reason the errors were halved when the averaging period doubled. A bit of stupidity (typical). The previous algorithm was designed to steer the 1pps so it arrived in the interval 0 to 25ns. As described earlier, this allowed the system to settle anywhere in that 25ns window so tended to wander in that window. My simplistic solution was to add 1 to all +ve deviations so 0-25ns became 1, 25-50ns became 2 etc, with -ve deviations -25to0ns is -1, -50to-25ns is -2 etc. This did force the system to try to settle on the transition from -ve to +ve. What I didn't realise was this gave too much weight to the 0to25ns and the -25to0ns intervals, resulting in corrections which were too large. This can be seen on the graphs, the voltage becomes a sawtooth overshooting every time.

When the measurement period was doubled, the overshoot was the same. But the algorithm now had twice as long to fix it, so the correction was halved.

The perfect solution to this is to measure the arrival time exactly rather than to the nearest 25ns. But this adds more hardware, against the principal of this build. Also it may test the power of an 8 bit processor to deal with the larger numbers involved.

So the algorithm is changed yet again. The solution was to add weight to deviations greater than ±25ns. The actual solution was double the number and add 1. So 0-25ns is still 1, 25-50ns becomes 3, 50-75ns becomes 5 etc, with -ve deviations -25to0ns is still -1, -50to-25ns is -3 etc. Calculations of corrections uses close to 32 bit precision, and shifts (divide by multiples of 2) the final result. It was a simple matter to add 1 to this to remove the effect of doubling the raw deviations.

So does it work. Yes it does. The GPSDO was off for a different reason before changing the software, so it has been running less than a day. Even so, sawtooth is gone and many corrections are less than 0.01 ppb. That's very satisfying. It seems temperature is now the biggest disturbing factor. Always something to think about.

I'll post another graph when I've got more data.

**MIS42N**:

Here's the results of further testing with the u-blox LEA-M8T. Each bar on the lower graph is the adjustment after 1024 seconds of averaging so there's about 2 days of data. As can be seen there's a definite up and down wander to this which I originally put down to some error in the disciplining algorithm. Between X=105 to 140 I tried two modifications to the algorithm. Both seemed to make the situation worse, and as I couldn't see a flaw in the algorithm, the original was reinstated around 140.

Then I looked at the pattern displaced by 84 on the X axis, and it seems to repeat. 84 bars is about a day. Lightbulb moment, this is variations in the 1PPS. It makes sense, when the M8T was surveyed in, it came up with a standard deviation of position of 10 metres. The antenna is in a poor location and it is likely sometimes the calculations are done on a reflected signal. ±10 meters equates to ±30ns in arrival time.

Best way to prove it is put the antenna in a better position. Maybe in a few day's time.

Even so, happy with this. Some room for improvement but isn't there always.

**trobbins**:

I quickly started up your GPSDO earlier today to test and adjust the high stability OCXO option 001 on a HP3325B, which was 0.1Hz high for 10MHz. It certainly makes the adjustment process easy, especially as I only needed to reach the 0.01 ppb level on the GPSDO for this application.

My other 'budget' based adjustment on the HP3325B was to null the Analog Phase Interpolation 3kHz spur using a PC soundcard and REW spectrum analyser software, rather than use a full-blown spectrum analyser from that vintage.

Navigation

[0] Message Index

[*] Previous page

Go to full version