pyadf435x
pyadf435x copied to clipboard
An open source software suite to control the ADF4351 board
pyadf435x
pyadf435x is a suite of software and firmware for controlling the Analog
Devices ADF435x series of wide-band RF synthesizers.
The software suite consists of the following components:
- adf435x - A python library that can control the ADF4350/1 via various hardware interface back-ends.
- adf435xctl - A command line tool to control the ADF4350/1 manually.
- fx2adf435xfw - A firmware for the Cypress FX2 that replaces the proprietary firmware for the EVAL-ADF4351 board.
- stm32adf435xfw - A similar firmware for the STM32F103.
It's also possible to use the Bus Pirate as the interface for the SPI
communications, simply using the adf435x.interfaces.BusPirate class.
adf435x
Installation
-
Install depedencies:
On Debian/Ubuntu:
$ sudo apt install python3-setuptools python3-usb -
Build the python module:
$ python3 setup.py build -
Install the python module:
$ sudo python3 setup.py install -
(Optional) Install udev rules:
$ sudo cp contrib/z60_adf435x.rules /etc/udev/rules.d/
Usage
See examples/ sub-directory.
adf435xctl
Requires adf435x to be installed.
Usage Examples
Sets the output frequency to 1000MHz:
./adf435xctl --freq=1000
fx2adf435xfw
The Cypress FX2 firmware project controls the synthesizer over SPI by bit-banging the FX2's GPIOs.
The firmware requires the following wiring:
| FX2 Pin | ADF4350/1 Pin |
|---|---|
| PA0 | LE |
| PA1 | CLK |
| PA2 | DAT |
Building
-
First init/update all the sub-modules within the git repository:
$ git submodule update --init -
Install AutoTools and the SDCC (Small Devices C Compiler).
On Debian/Ubuntu:
$ sudo apt install autoconf automake make sdcc -
Build the firmware:
$ ./autogen.sh $ ./configure $ makeYou will now have the firmware file
fx2adf435xfw.ihx
Usage
-
Install cycfx2prog.
On Debian/Ubuntu:
$ sudo apt install cycfx2prog -
Load the firware on to the Cypress FX2 with the following command:
$ cycfx2prog prg:./firmware/fx2/fx2adf435xfw.ihx -
Run the firmware:
$ cycfx2prog runThe device will no renumerate as with the VID/PID
0456:b40d, as an Analog Devices board.
stm32adf435xfw
The firmware requires the following wiring:
| STM32F103 Pin | ADF4350/1 Pin |
|---|---|
| PA4 | LE |
| PA5 | CLK |
| PA7 | DAT |
Building & Installation
-
First init/update all the sub-modules within the git repository:
$ git submodule update --init -
Install GNU Make, OpenOCD, and ARM builds of GCC compiler and Newlib.
On Debian/Ubuntu:
sudo apt install gcc-arm-none-eabi libnewlib-arm-none-eabi make openocd -
Build libopencm3:
$ cd firmware/stm32/libopencm3 $ make -
Build stm32f103adf435xfw:
$ cd .. $ make -
Run OpenOCD:
sudo openocd -f /usr/share/openocd/scripts/interface/stlink-v2.cfg -f /usr/share/openocd/scripts/target/stm32f1x.cfg -
Install the firmware:
telnet localhost 4444 > reset halt > flash write_image erase /path/to/stm32adf435xfw.bin 0x08000000 > reset