New improved performance!
GPS Disciplined Oscillator with 2 Clock/RF output channels (Built & Tested)
Get 2 RF/clock output channels independently set on any frequency from 100 HZ - 1028 MHZ (integer or fractional) locked to the GPS time-signal's accuracy and stability
The idea was to use a GPS receiver's time pulse output as a reference, for frequency stability and frequency accuracy, without needing a calibration or periodic adjustment. Then, to use this signal together with another oscillator's signal (of the on-board 50 MHZ TCXO's or any external TCXO or OCXO...) to take advantage of its low phase-noise and numerically manipulate with a highly-complex digital PLL chip like the Silicon Labs Si5342A-D, to phase lock any output frequency from KHZ to GHZ having the qualities of the stability and accuracy of the GPS signal and the low-phase noise of the TCXO's used, well or close enough. It may not be possible as simple and as general as written above, but it worths the try!
This project was made at first to accompany the SV1AFN's HF Up-Converter with the purpose to replace its 200 MHZ internal oscillator used as a Local Oscillator for the mixing circuit to obtain higher accuracy and stability but with the best phase noise, as needed for best HF receiving performance. Having a 2nd channel available, a clean 10 MHZ signal to synch test equipment around the lab using an external distribution amplifier is always welcome. Since then, many new applications found and the latest design has now an ARM-type micro-controller, the STM32L152RET6 which has a USB interface.
The user can download Silicon Labs "Clock Builder Pro" software, arrange all internal functions and produce a register file for the Si5342A-D chip. Next, using a software interface written in Python load this register file, send it to the micro-controller for configuring the Si5342A-D. Or, even store it in E2PROM for later use without a USB interface needed (for set and forget applications like an external LO for radios, converters, clock for ADCs, DACs etc).
By using a UART interface the MCU talks to the GPS receiver to set its time signal output for 10.000.000 HZ at 50% duty cycle instead of 1PPS. This is the "0 ppm reference" signal for the Si5342A-D. The GPS receiver produces the signal when it finds satellites or stops producing it when the satellites signal is lost. This signal is noisy and cannot be used at its own but it's frequency is very accurate and stable. As for an initial clean-up, it passes through a series tuned network and then it is applied to the Si5342A-D clock input. If for any reason, the user needs to change the 10 MHZ GPS output frequency to any other value, then the tuned network should be bypassed, by placing any large capacitance on the C52 footprint, which is not populated by default.
The TXCO used is a CONNOR WINFIELD D75J-050.0M, a less than +/- 1 ppm 50 MHZ 3.3V TCXO with good phase noise figures (like better than -120 dBc/Hz at 1 KHZ spacing). Any external TCXO or OCXO can be connected to pin 5 of the U5 PCB footprint if it is 3.3V or to pin 3 of U5ALT if it is a 1.8V type.
The board needs 5V DC at around 350 mA, the exact amount for the current consumption depends on the configuration of the two output interface types (LVDS, LVPECL, LVCMOS, CML, or HCSL), different termination loading and voltage levels.
If the GPS receiver looses fix the internal oscillator can be configured to produce the same or different frequency, of course with much less accuracy and stability because it will now be relied upon its internal oscillator. But an interesting feature of the Si5342 chip can be used and this is its "holdover mode": When the GPS receiver looses fix and configured not to output anything, i.e., stop producing the 10 MHZ signal, then the Si5342 by itself, detects the "loss-of-lock", LED LD1 lights, and switches to the "holdover" mode. The chip uses an averaged input clock frequency as its final holdover frequency to minimize the disturbance of the output clock phase and frequency when an input clock suddenly fails. The holdover circuit for the chip's DSPLL stores up to 120 seconds of historical frequency data while locked to a valid clock input. The final averaged holdover frequency value is calculated from a programmable window within the stored historical frequency data. Both the window size and the delay are programmable. The window size determines the amount of holdover frequency averaging. The delay value allows ignoring frequency data that may be corrupt just before the input clock failure. One may experiment and measure if this is the most accurate way to maintain the programmed output signals when the GPS receiver looses fix, or if it is better to configure the GPS receiver producing the 10 MHZ by its own internal reference oscillator when it losses the satellites signals. For this example, one can use the software interface to change the instructions sent over the UART to the GPS receiver. The interface allows modifying every single register's value if ever needed.
STABILITY & ACCURACY Measurements: Have not been conducted yet, generally the output signals accuracy and stability it is assumed to follow that of the GPS with some added wander depending on the TCXO used. I understand this is a huge issue but metrology-purist friends may be able to help suggesting a clever method. For now, it is enough to say that the GPSDO will follow the GPS time signal accuracy and stability and if there is any difference it will be documented here at a later time.
PHASE NOISE measurements: The 10 MHZ LVCMOS (not the best selection for best phase noise performance) 3.3V level, 33 Ohm loading, single-ended output is measured with a Tektronix RSA-306 Real Time Spectrum Analyzer.
Attention: The phase noise is not the same on any programmable output frequency. We have not tested and measured phase noise on every frequency but generally it gets worsen as the frequency increases. A lot of parameters which can be changed in the Clock Builder Pro software deteriorates or improves phase noise in every instance. Choosing fractional or integer is less significant than originaly thought, adjusting target loop bandwidth is very important. One should experiment with different values to optimize phase noise on any wanted output frequency.
Output channels configuration:
The GPSDO-2 board has 3 SMA connectors for the 2 output channels, J2 is OUT0 single ended and J2 and J3 are the OUT1 and OUT1INV (balanced). Equal length traces are connecting the two SMA connectors J4 and J5 on the PCB and users can benefit of this feature to drive balanced ADC/DAC clock inputs or anything else. The Clock Builder Pro software allows controlling the phase polarity and instead of 180, 0 degrees can be chosen. If a user needs the complementary output of OUT0, which is not routed on the PCB, then a small coax can be very carefully soldered on pin 19 of U4.
Everything you need to configure your GPSDO-2 is here, on this webpage. Just download the "Clock Builder Pro" application from Silicon Labs here, complete the parameters asked and save the register file produced (it actually contains all register values to be loaded into the chip). The input clock is the 10 MHZ time signal from the GPS receiver and 50 MHZ is the TXCO's frequency. When asked choose the input clock (10 MHZ) as the 0 ppm reference input and not the 50 MHZ. Arrange the two outputs termination and voltage levels and save the register file. Then download the software interface (lower on this page) to send this file via USB to the GPSDO-2. Select if you need to write to the E2PROM so the GPSDO-2 will remember all settings the next time it will get powered-on, wait around 12 seconds to flash the MCU and you are done. Enjoy sub MHZ to over 1 GHZ accurate, stable and clean output signals and find unlimited applications!
But if you prefer not bothering with the setup or tweaking with the registers, we can send it pre-programmed with the two frequencies you need. If 10 MHZ is of your preference for the single-ended channel, consider ordering a 10 MHZ band-pass filter here together so to convert the square output to sine. Still you will be able to change any single register by yourself using the software and the USB interface.
The GPSDO-2 comes inside its own aluminum enclosure together with a magnetic-base active GPS antenna with 3 m coax cable. The GPS receiver is so sensitive it can obtain a fix with the antenna facing the sky only partially, many times it is enough placing the antenna next to a window!
Software - Firmware
The ClockBuilderPro's registers file we load when shipping the GPSO-2. Rename the extension to .txt if missing after download. Out0 on 10 MHZ and Out1 on 200 MHZ with holdover, The GPS receiver is set to output 1 HZ when without a fix, 10 MHZ when it has a 3D-fix. When locked, you can remove GPS antenna to check holdover mode. The unit will get out of lock but it will still produce both output channels. Replace GPS antenna and it will lock again.
Here is the Clock Builders Pro project file if you would need to edit anything. The register configuration file above is exported from this project file.
Here are instructions how to export a ClockBuilderPro's register configuration file to a .txt file to be used by the software tool.
The Python software tool you need to write the ClockBuilderPro's register file to the GPSDO-2 unit and/or to upgrade to latest firmware if ever needed. Use the following in order:
Power GPSDO-2 with 5V DC at the SMA input. Insert USB cable, run Python Software tool exe. Choose COM Port, it should indicate "Connected" when correct COM port is chosen.
Then Load Registers file of your own (produced by the ClockBuildersPro Software) and press "Write to EEPROM". Then power-reset and you are ready.
The latest firmware of GPSDO-2 MCU. Rename the extension to .bin if missing after download. For firmware upgrades, open the top cover, insert 2 jumpers on JP3 and JP4, apply 5VDC, connect USB cable, run the Python tool, select the last COM port (no need to indicate "connected", and press firmware update.Chose this .bin file when prompted. When it shows "Verification OK", power reset. Then remove jumpers, power reset again, run the python tool, connect to COM port, Choose GPS settings and press "delete user". Choose Si5342 settings and press "delete user settings" and then load Registers file from ClockBuildersPro and press "program EEPROM". Power reset and you are done!
If for any reason you need to run UBLOX u-center software tool, first press "transparent mode" in the GPS settings menu, close the python tool window and then run u-center.
Weblink if the above fail to download (or do not work correctly):
ClockBuilder Pro Software is a Silicon Labs trademark
Video 1: The yellow trace is my Symmetricom X72 10 MHZ Rubidium frequency standard which triggers the oscilloscope. The blue trace shows the GPSDO's 1st output channel set at 10 MHZ while touching the 50 MHZ TCXO with my finger to produce some "wander"