Arduino Library for the ADF4351 Wideband Frequency Synthesizer chip
This library supports the ADF4351 Chip from Analog Devices on Arduinos. The chip is a wideband (35 MHz to 4.4 GHz ) Phase-Locked Loop (PLL) and Voltage Controlled Oscillator (VCO), covering a very wide range frequency range under digital control. Just add an external PLL loop filter, Reference frequency source and a power supply for a very useful frequency generator for applications as a Local Oscillator or Sweep Generator.
The chip generates the frequency using a programmable Fractional-N and Integer-N Phase-Locked Loop (PLL) and Voltage Controlled Oscillator (VCO) with an external loop filter and frequency reference. The chip is controlled by a SPI interface, which is controlled by a microcontroller such as the Arduino.
The library provides an SPI control interface for the ADF4351, and also provides functions to calculate and set the frequency, which greatly simplifies the integration of this chip into a design. The calculations are done using the excellent Big Number Arduino Library by Nick Gammon, as the integter calculations require great than 32bit integers that are not available on the Arduino. The library also exposes all of the PLL variables, such as FRAC, Mod and INT, so they examined as needed.
For projects, you should consider using the SV1AFN ADF4351 PLL Synthesizer Module, a low cost PCB module built and designed by Makis Katsouris, SV1AFN. This board provides a loop filter, as well as providing most of the chip control pins, SPI inteface and RF input/output ports. This library was developed using this board.
A low phase noise stable oscillator is required for this module. Typically, an Ovenized Crystal Oscillator (OCXO) in the 10 MHz to 100 MHz range is used.
A project using this library for a wideband signal generator project siggen4351.
- Frequency Range: 35 MHz to 4.4 GHz
- Output Level: -4 dBm to 5 dBm (in 3 dB steps)
- In-Band Phase Noise: -100 dBc/Hz (3 kHz from 2.1 Ghz carrier)
- PLL Modes: Fraction-N and Integer-N (set automatically)
- Step Frequency: 1 kHz to 100 MHz
- Signal On/Off control
The library is documented in the docs directory, and was created using Doxygen. An example program using the library is provided in the source directory example4351.ino.
Please note that you should install the provided BigNumber library in your Arduino library directory. This library was modified from the one provided by Nick Gammon in order to allow conversion of unsigned long types into BigNumber format, so the stock library will not work with code.
Copy the src/
directory to your Arduino sketchbook directory (named the directory example4351
), and install the libraries in your Arduino library directory. You can also install the adf4351 files separatly as a library.
- ADF4351 Product Page Analog Devices
- SV1AFN ADF4351 Board by Makis Katsouris, SV1AFN
- Big Number Arduino Library by Nick Gammon