10kHz to 225MHz VFO/RF Generator with Si5351 - Version 2

13 May 2023 Balmiki Mandal 0 µC - µP

10kHz to 225MHz VFO/RF Generator with Si5351 - Version 2

The 10kHz to 225MHz VFO/RF generator with Si5351 - Version 2 is a versatile, programmable frequency source capable of generating frequencies between 10kHz and 225MHz. This circuit uses the highly popular Si5351 chip which is used in a wide variety of applications ranging from RF generators, phase locked loop (PLL) synthesizers, and frequency counters. Using this version of the circuit, you can program your own custom frequency by adjusting the onboard potentiometers or with an Arduino Uno board.

Features

  • Generates output signals from 10kHz to 225MHz.
  • Adjustable frequency via onboard potentiometers.
  • Programmable frequency via Arduino Uno connected to I2C.
  • Onboard oscilloscope for monitoring signal output.

Requirements

  • A power source with current ratings of at least 1A.
  • A soldering iron and appropriate solder.
  • A 5V supply with capacity of at least 500mA.
  • Connectors, wires and other components required to build the circuit.
  • Arduino Uno board (optional).

Building the Circuit

The 10kHz to 225MHz VFO/RF generator with Si5351 - Version 2 is a simple circuit to build. Begin by downloading the schematic diagram and soldering the components onto the board as indicated. When soldering, it is important to double check that all connections are secure and solder joints are free from excess solder. Allow the soldering to cool down for a few minutes before testing the circuit.

Once the components have been soldered in place, connect the I2C port of the Arduino Uno board to the Si5351 chip. To program the frequency, follow the instructions provided in the documentation. Once the frequency has been programmed, connect the power source and turn the board on. The output signal should be displayed on the oscilloscope.

Using the Circuit

Once the 10kHz to 225MHz VFO/RF generator with Si5351 – Version 2 has been built and powered up, the circuit can be used to generate any frequency between 10kHz and 225MHz. For example, if you want to generate a signal of 10MHz, simply enter this value into the I2C port of the Arduino Uno board and the output signal should appear on the oscilloscope. You can also adjust the frequency manually by adjusting the potentiometers.

This version of the circuit allows for full customization of frequencies, making it ideal for developers who need a flexible and powerful frequency source for their projects. Furthermore, the onboard oscilloscope can be used to ensure that the signal has been generated correctly.

Here's a sample code for a 10kHz to 225MHz VFO/RF Generator with Si5351 - Version 2:

#include <Wire.h>
#include <Adafruit_Si5351.h>

#define Si5351_XTAL_FREQ 25000000UL

Adafruit_Si5351 si5351 = Adafruit_Si5351();

void setup() {
  si5351.begin(Si5351_XTAL_FREQ);
  si5351.set_clock(0, 10000000UL, SI5351_PLL_FIXED, SI5351_DIV_BY_4); // Set CLK0 to 10MHz
  si5351.set_clock(1, 10000000UL, SI5351_PLL_FIXED, SI5351_DIV_BY_4); // Set CLK1 to 10MHz
  si5351.set_clock(2, 10000000UL, SI5351_PLL_FIXED, SI5351_DIV_BY_4); // Set CLK2 to 10MHz
}

void loop() {
  // Set frequency to 14.2MHz
  si5351.set_freq(0, 14200000UL, SI5351_CLK0);
  
  // Wait for 1 second
  delay(1000);
  
  // Set frequency to 21MHz
  si5351.set_freq(0, 21000000UL, SI5351_CLK0);
  
  // Wait for 1 second
  delay(1000);
  
  // Set frequency to 100MHz
  si5351.set_freq(0, 100000000UL, SI5351_CLK0);
  
  // Wait for 1 second
  delay(1000);
  
  // Set frequency to 225MHz
  si5351.set_freq(0, 225000000UL, SI5351_CLK0);
  
  // Wait for 1 second
  delay(1000);
}

In this code, we are using the Adafruit Si5351 library to control the Si5351 module. The library provides an easy-to-use interface for setting the clock frequency.

In the setup() function, we initialize the Si5351 module and set the clock frequency of all three clocks to 10MHz. We are using the fixed PLL mode with a division factor of 4.

In the loop() function, we set the frequency of CLK0 to 14.2MHz, wait for 1 second, set the frequency to 21MHz, wait for 1 second, set the frequency to 100MHz, wait for 1 second, and finally set the frequency to 225MHz, wait for 1 second, and repeat.

Note that this is just a simple example and you may need to modify the code based on your specific requirements.

BY: Balmiki Mandal

Related Blogs

Post Comments.

Login to Post a Comment

No comments yet, Be the first to comment.