SDR transceiver

Introduction

This is a port of the SDR transceiver application for the Red Pitaya board to the Eclypse Z7 board.

The SDR transceiver application for the Red Pitaya board is described at this link.

All programs and libraries that work with the SDR transceiver application for the Red Pitaya board should also work with this port.

This application requires Zmod Digitizer and Zmod AWG to be connected to the Eclypse Z7 board as follows:

Hardware

The SDR transceiver consists of two SDR receivers and of two SDR transmitters.

The implementation of the SDR receivers is quite straightforward:

The SDR transmitters consist of the similar blocks but arranged in an opposite order:

The tunable frequency range covers from 0 Hz to 122.88 MHz.

The I/Q data rate is configurable and five settings are available: 24, 48, 96, 192, 384, 768 and 1536 kSPS.

The basic blocks of the digital down-converters (DDC) and of the digital up-converters (DUC) are shown in the following diagram:

SDR transceiver

The projects/sdr_transceiver directory contains four Tcl files: block_design.tcl, trx.tcl, rx.tcl, tx.tcl. The code in these files instantiates, configures and interconnects all the needed IP cores.

Software

The projects/sdr_transceiver/server directory contains the source code of the TCP server (sdr-transceiver.c) that receives control commands and transmits/receives the I/Q data streams (up to 2 x 32 bit x 1536 kSPS = 91.6 Mbit/s) to/from the SDR programs.

The projects/sdr_transceiver/gnuradio directory contains an example of a flow graph configuration for GNU Radio Companion.

Getting started with GNU Radio

sudo apt-get install gnuradio
git clone https://github.com/pavel-demin/eclypse-z7-notes
cd eclypse-z7-notes/projects/sdr_transceiver/gnuradio
export GRC_BLOCKS_PATH=.
gnuradio-companion fm.grc

Getting started with SDR# and HDSDR

Building from source

The structure of the source code and of the development chain is described at this link.

Setting up the Vitis and Vivado environment:

source /opt/Xilinx/Vitis/2023.1/settings64.sh

Cloning the source code repository:

git clone https://github.com/pavel-demin/eclypse-z7-notes
cd eclypse-z7-notes

Building sdr_transceiver.bit:

make NAME=sdr_transceiver bit

Building SD card image zip file:

source helpers/build-all.sh