JackenHack

  • About
  • Computers
    • Macintosh
    • iOS
    • Raspberry Pi
    • Linux
  • Electronics
  • Projects
Home » SI5351C I2C-Programmable Clock Generator breakout board

SI5351C I2C-Programmable Clock Generator breakout board

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

Image of frequency counter from calibrated SI5351C module

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.

Portrait of Jack Zimmermann I'm a Swedish computer old timer hacking away on computers since 1979. I'm a total Apple and Linux gear head. Right now, I'm really into electronics. [Read More]

Recent Posts

  • Atom Editor Platformio Hangs at startup endless restart – fixed
  • Hackintosh AMD Shutdown Problem with Fenvi FV-T919
  • Hackintosh Water Cooling Fan Problem
  • MiSTer FPGA Getting Arcade Cores To Use mra Files
  • Quartus Prime FPGA USB-Blaster Problems On Ubuntu 18.04

Categories

Ads

Copyright Jack Zimmermann © 2003–2021 Login
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Non-necessary

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.

SAVE & ACCEPT