SI5351C I²C breakout board with external 10-100 MHz reference Input
There’s a lot of variants of the SI5351A and B series breakout boards, but no C-series which for me is the most interesting of all three. The reason is that the SI5351C has an input for an external 10 to 100 MHz reference signal so that you can use a GPSDO, atomic clock or any other lab reference instead of the onboard 27 MHz crystal. The board has eight separate outputs, which can be programmed to output any clock between non-integer-related frequencies from 2.5 kHz to 200 MHz. So you have the choice to either use the onboard low phase noise SMD crystal, or an external lab reference signal as the basis for generating the eight different clock outputs. Perfect for replacing the pesky oddball drifting crystal at 28.8MHz in an RTL-SDR or maybe make your Ham Radio equipment spot on frequency.
The SI5351C Board

Calibration result after one-hour warmup at 24 Cº
The board I’ve designed has level shifting built-in, so you can use 3.3 Volt or 5 Volts without problems when programming the clock generator with I²C. I run all the boards for an hour after being tested and then calibration of the onboard crystal, using a Rubidium atomic clock, slaved to a GPSDO as a reference. The 27 MHz crystal that is used is very stable, and you’ll get decimal precision when using the included calibration value. The DC converter that I’ve used on the board has extremely low noise, thus improving the accuracy of the onboard crystal.
External Reference 10-100 MHz
For programming any frequency between 2.5 kHz to 200 MHz with 0 PPM, you can use the SMA input for an external reference that is between 10 to 100 MHz. Then you get an extremely accurate clock signal out from all the 8 SMA outputs. With a connected GPSDO you now have all the clocks synchronized against the reference, which makes the output clocks as exact as your reference. And today you can get a GPSDO or a Rubidium atomic clock for under $200 on eBay.
Programming
I’ve used the excellent Arduino library Etherkit SI5351 to program the SI5351C breakout board.
To initialize the card, all you have to do is to specify which reference you want to use. So if you’re using the onboard 27 MHz crystal, here’s an example how to it up to output 24 MHz on channel 0.
[cc lang=”C”]
#include “si5351.h”
#include “Wire.h”
Si5351 si5351;
void setup() {
si5351.init(SI5351_CRYSTAL_LOAD_8PF, 27000000UL, -4775); // You can initialize the library with your calibration value.// Set CLK0 to output 24 MHz
si5351.set_freq(2400000000ULL, SI5351_CLK0);
si5351.set_freq(1250000000ULL, SI5351_CLK2); // Set CLK2 to 12.5 MHz. Leaving a gap between two outputs is good practise.
}
[/cc]
You have two decimal places when setting the frequency for the output, but integers when setting the local oscillator frequency.
Now for the fun part. If you connect a lab reference to the Ext. SMA connector, you can select to use that instead of the onboard crystal for even better performance.
[cc lang=”C”]
#include “si5351.h”
#include “Wire.h”
Si5351 si5351;
void setup() {
// Initialize the Si5351 to use a 10 MHz clock input on CLKIN
si5351.init(SI5351_CRYSTAL_LOAD_0PF, 10000000UL, 0);
// Set PLLA and PLLB to use the signal on CLKIN instead of the XTAL
si5351.set_pll_input(SI5351_PLLA, SI5351_PLL_INPUT_CLKIN);
si5351.set_pll_input(SI5351_PLLB, SI5351_PLL_INPUT_CLKIN);
// Set CLK0 to output 24 MHz
si5351.set_freq(2400000000ULL, SI5351_CLK0);
}
[/cc]
In this case, I’m setting up the reference from a 10 MHz external reference from an GPSDO. Very easy. You can read more on the Etherkit SI5351 Library here. Now all the eight outputs have 0 PPM output from 2.5 kHz to 200 MHz if you have a good reference source connected.
The specifications of the breakout board
Input voltage: 3.7 to 5.5 Volts
Onboard crystal: Low phase noise 27 MHz crystal
Power: Ultralow noise 9 µVrms ADP151 DC converter
Inputs: External lab reference, 10 up to 100 MHz
Outputs: 8 channels of clocks programmable to individual frequencies with zero PPM offset if you use the external reference.
If your interested in a finished card that is tested and calibrated, send an email to jacken@jacken.se (note that the board is fully populated, but does not include SMA connectors, because it’s cheaper to order them from eBay, than have me send them from Sweden)
This board is Open Source Hardware so you can download it here and make your own. The SI5351C is extremely small, so you need an SMD oven or SMD rework station for soldering.