Show by Label

Monday, May 22, 2023

A new and improved GPSDO design V3

Based on my work with a very high precision and resolution reciprocal counter measuring my current GPSDO, it became apperant that I needed a much better GPSDO design to be used as the external clock for the counter.

I already had ideas to upgrade my current GPSDO a long time ago, just never got around to it.

With the required precision and accuracy for the reciprocal counter, I bit the bullit and designed a new GPSDO version that should accomodate both instruments.

Several of the baby-steps I took are described in the Reciprocal Counter Blog post, so please have a look there for more information.


GPSDO and Reciprocal Counter Version 3

Following are the schematics I have put together based on the work, tests and experiences so far for the Reciprocal Counter project, and my more than 2 year experience of using my current GPSDO.

This is actually another prototype to put all the circuits together, but is not the final board I will use. I'll explain the next steps I want to take below. They are depending on the succesful operation of this board.

Dual DAC and OCXO Circuit


I'll start with the most important circuit that has the best improvements based on the earlier version of the GPSDO.

This new design uses a special dual 8-bit PWM design that I found a some time ago. I already tested it during my reciprocal counter project, and I was impressed.

Details about this circuit can be found here:


After building and testing it, I found that I needed to add a buffer at the output because the output signal strength is too weak for the following Gain setting circuit, or even just driving an OCXO adjustment input.

The other improvement is with the reference voltage circuit, powering the 74HC14's used in the dual DAC circuit. I spend quite a bit of time taming this circuit and it is a lot better than the circuit I used in the previous GPSDO version.

The output of the buffered dual DAC circuit normally ranges from 0-4.096V, with the DAC steps going from 0-65535. This results in voltage steps of 62.5 micoVolt. This resolution is still too course and I use a set of resistors to reduce that further. I use a series resistor (R22) and a voltage divider created by R23 and R24. R23 and R24 are selected such that they will set the adjustment pin of the OCXO at the sweet-spot level. The series resistor R22 will reduce the effect of the DAC voltage swing from 0-4.096V to a few 100mV, in effect lowering the Volt/Step to much lower values.

In my case, using the CTI OCXO, setting the DAC to minimum results in a voltage at the adjustment pin of 2.26V, and at the maximum will result in 2.534V. So we go from a span of 0..4.096V to a span of 2.26..2.534V, or a mere 275mV. This is about a reduction of 14.5 times. This should result in about 420 picoVolt per DAC step and a Gain of 380 for the loop calculation.

Right now, by using my 6.5 digit DMM with a display of 10microVolt resolution, I can just about see these individual DAC steps.


What you see here are the individual steps and the longer term tuning of the OCXO frequency based on the GPS constellation.

I added a sweet-spot detection and burn-in feature around the RV1 trimmer. The assumption is that you set the J8 jumper on pos 1-2 so you can adjust the frequency of the OCXO to 10MHz, and then burn-in the OCXO for a while. This may need from days to weeks depending on the (mis)handling of the used OCXO's. They first need to settle in their new environment before you can really start to use them in the GPSDO setting.

The procedure should be to set RV1 at mid-point and select the R20 and R21 values such that the OCXO is close to 10MHz. The values I show here are for the CTI.

After you found a stable OCXO, you can work out the values for R18 and R19 by the setting of the trimmer in addition to R20 and R21. R17 can be selected during the tuning of the firmware with the OCXO in a working GPSDO setting, and that will determine the Gain for the main loop.

My assumption is that you don't keep the trimmer section in circuit (use J8) once you have determined the sweet sport for the value calculation of R17, R18 and R19. I found that the (cheap Chinese) trimmer have a very large temperature dependency and also can produce a jitter effect.

On this design, I really created the space for the Oscilloquartz OCXO, which is the one I'm planning to use for the main GPSDO. I also created placements for two other kinds of OCXO's like the Bliey and the CIT and IsoTemp kind of OCXO's. The latter have the same pinouts.

The sinewave output versions need a "squarer"circuit to improve the edge recognition for the follow-up circuits. I'm using the "tank" circuit that fellow EEVBLOG contributor "miti" propsed and I already used that in the previous version. It seems to work OK. If it produces output exceeding 5V, you need to use a clamping diode to a rail to protect U2F.

Power Section Circuit


Above is the power section for the various circuits. The idea is to separate the rails for the various noisy circuits as the Arduino Nano, the NEO and the OCXO's from the more sensitive parts.

I'm using LM317 regulators because they are an improvement over the typical LM7805 and LM7808 fixed voltage regulators. The 8Volt section for the Arduino Nano also powers the two 5V rails. One dedicated to the NEO and one for the logic circuits and the voltage reference.

Both LM317's need to be mounted on the side of the enclosure vor extra cooling. Especially during the warm-up period of the OCXO's they get too hot otherwise.


Controller Section Circuit



Above is the controller section, following the Lars Walenius design with a few of my additions. 

The two open squares in the diagram are KiCad's way of producing placeholders for hierarchical sheets. They lead to the two sheets shown above.

Although I experimented with a dual 74HC74 FF to replace the 74HC4046, that seemed to work well, but I decided against it. My assumption is that the 4046 has special analog input circuitry (that is called input conditioning circuit)  that you don't see on the data sheet, but I know and suspect is there. I don't want to miss out on that for the phase detection measurement. Also, the 74HC7046 that I ordered a very long time ago finally arrived. They are an improvement on the original by now very old design of the 4046 and I'm going to try them.

I'm only using one temperature sensor at the moment, because I found that using an additional one for the OCXO "oven" temperature has little added value. The ambient temperature is much more important because that has a rather large influence on some of the temperature critical components like the D2A circuit for the phase detector (D1, R11 and C16), and the dual DAC circuit components, in addition to the Gain setting resistors R17, R18 and R19. Much more about this issue will be in the next section.

The other addition is the isolated outputs for the 1PPS and 10MHz signals. I already added them to my earlier version, but it was time to add it to the same PCB. The electrical isolation is important because I found to my dismay that connecting BNC cables to other instruments kicked the GPSDO out of lock. This is due to the ground potential differences that you can have between floating or earth grounded instruments and the floating GPSDO. Be aware that the 1PPS output cannot use the transformer. I added it to have the possibility to add a second 10MHz output. For the 1PPS signal, you need to bridge the transformer with 1uF THT capacitors to get the required isolation.
The 1M/100nF combination that ties the two grounds of the transformer together are optional.

Further to the isolation issue, you also need to be aware of the potentials for the RS232 connections. I now use an isolated serial to USB adapter when I connect my GPSDO to my laptop. 

Both the NEO and the Nano have provisions for connecting a Raspberry Pi to these serial ports to monitor the logging, as I normaly do.

I also added a connector for a fan, just in case I'm going to use that again. The actual driver circuit will have to be on another PCB, like before. There was no place on the board, and I also didn't want this noisy circuit closeby.



And here is a 3D rendering of the top side of the PCB:


The PCB dimensions for this board are such that it will slide in the slot of my enclosure, the same one as I used before. It will not fill the whole enclosure because I want to use the same board for the GPSDO and the reciprocal counter. I kept the board at a length of 130mm so I have 20mm space to move it back and forth inside the enclosure. The width is 100mm.

For the GPSDO version, I want the two SMA adapters and the Lock indicator LED to stick through the front panel and I want front-panel access to the USB adapter of the Nano. 

For the counter version, the board will slide all the way to the back because the counter and display itself will be mounted on the front panel, and there is no need for front panel access of the 10MHz and the 1PPS. The Lock LED can be mounted on the front panel and connect with short leads to the board. 

The board will be fixed in either position through a post and screw in the mounting hole that will also connect the enclosure to the main GND of the board. Besides that, the two LM317 also need to be mounted on the side of the enclosure.

I'm considering to use the Oscilloquartz for the new GPSDO and for the counter I can choose between the Bliley that is currently in my old GPSDO, the IsoTemp or CTI OCXO's that I also have tried with the counter tests.


Next major improvement (update 29-May-2023)

The most critical element that influences a GPSDO is the temperature as I found with my first GPSDO. First you have the effect of the temperature of several parts, most notably all the parts that are driving the f-adjust pin of the OCXO, and the Phase Difference "pulse-to-voltage" circuit.

Second you have the ever changing room temperatures that in my case differ through the seasons. There are users that litteraly go through a burial process of their GPSDO in a bucket filled with sand and put it in the basement to reduce these effects. I tried my best by using a fan to try to keep the inside temperature constant. Unfortunately, that does not work well with the seaonal changes. The difference is too large.

There are two solutions I want to try. First, I'm going to use a mico capacitor for the Phase-diff circuit. Mica capacitors are very precise and stable and have extremely low temperature effects on the capacitance. Right now I'm still using the 1N5711 Schottky diode that Lars recommended, but the only benefir is the low capacitance of 2pF. Because this is only available in a THT package, I mount them upright, and that catches the breeze. I'm now switching to a BAV199 (2pF) or a BAV99 (1.5pF) type. They are dual diode packages in the SOT23 form. I will only use one diode of course.

Because these parts arte in the controlling loop, I hope that the temperature effects of these parts are minimal.

Much more temperature critical is the whole DAC circuit all the way to the f-control pin of the OCXO. To eliminate these effects, you can raise the temperature above the normal seasonal maximum and keep it constant.

A friend of mine, Bud, who is a real designer, came-up with a heater circuit for his voltage reference, which have exactly the same ussues.

Here is more information about his design and the process he went through.

https://hackaday.io/project/165139-precision-voltage-and-current-reference

I built that circuit and have been monitoring that for several months now. It works great, so I was planning on using that heater technique for the GPSDO.  

To heat-up the circuit, Bud uses a string of resistors and regulates the current through them to keep the temperature constant.

Based on his design, this is the circuit I am planning to use:



Basically, it is a set of strings of resistors that get current regulated by MOSFET's. The MOSFET's are driven by an Opamp that regulates against the set voltage compared to that of a temperature sensor.

The temperature sensor is a device with an output voltage of 10mV/degree C. I want to keep the temperature of the heater at 38 degrees, which is several degrees above the expected maximum temperature in my office, in the summer. The reference voltage is therefore set to 380mV.

During the cold start, the Opamp output will slam into the rail and may have troubles unhugging again, so the Zener diode should prevent that. With the 12V supply and the 68R resistor value, the total heat produced is just over 3W.

I've added a pin connected to the temp sensor so that the temperature can be monitored by either the sketch or a DMM.

The heater resistors will be distributed on the bottom side of the PCB:


The dual DAC circuit and Heater control will be on the top side:







This will be another experimental PCB just to try things out. I hope to use this circuit in place of the circuit on the main PCB and try out the temperature effects. On the next revision main board, the heater will also sit below the phase difference components.

The other contributing heat sources are of course the OCXO and also the voltage regulators.

To keep the heat inside the enclosure, it needs to be isolated on all sides, and the PCB will need to be mounted inside this insulated chamber. There are several additional steps I need to make to keep the heat inside, and I may have to use a small fan again to get rid of the access heat. Time will tell.

I've ordered some 6mm and 8mm Styrodur foam to be used as the insulation on the inside of the enclosure.


Stay tuned for more!


Paul


If you like what you see, please support me by buying me a coffee: https://www.buymeacoffee.com/M9ouLVXBdw

No comments:

Post a Comment