I was struggling to get any output from the device using the Jason Mildrum NT7S Etherkit library for the Arduino development environment, I know this code library works well as I have used it in the past, however the SI5351/B did not want to play.
After a full day of experimenting I managed to get the device to work, the good thing about the /B variant is that it not only has a total of 8 independent output channels it also supports an external clock/reference input, I have attached a sketch of the SI5351/B board pin-out and what you need to connect to get it up and running.
According to the Silicon Labs documentation, the /B variant of the SI5351 must have the following pins configured for successful operation:
VDD and 3.3V must be connected to a +3.3V regulated supply e.g. the 3V3 output pin on the micro-controller.
GND on the micro-controller.
SCL and SDA I2C pins to the micro-controller.
-------------------------------------------------------------
OEB - This is the output enable pin and must be held a logic low for the device to output a signal.
3.3V - N/C
OD, OB, OC and OA must be tied to logic high e.g the 3V3 rail.
*****DO NOT POWER THIS BOARD OR DRIVE THIS BOARD FROM A 5V MICRO-CONTROLLER, IT IS A 3V TOLERANT DEVICE *****
I have successfully tested this module with the following 3V3 micro-controllers:
- STM32F01 Bluepill
- Pro-Micro
- Arduino M0
- Arduino Due
Code: Select all
void setup()
{
// Start serial and initialize the Si5351
Serial.begin(57600);
//The constructor expects the crystal load capacitance, crystal frequency and any calibration "fudge factor"
//If you leave the crystal frequency at 0 the SI5351 class will assume a 25MHz crystal is being used.
_found = si5351.init(SI5351_CRYSTAL_LOAD_8PF, 27000000UL, 19800);
while(!_found )
{
Serial.println("Device not found, check connections...");
delay(1000);
}
// Set CLK0 to output 10.7 MHz
si5351.set_freq(1070000000ULL, SI5351_CLK0);
//Set the output power of Clock 0 to 8ma, into a 50R load this will give around +10dBM or around 2.1V PP
si5351.drive_strength(SI5351_CLK0,SI5351_DRIVE_8MA);
}
Pinout visual sketch: