Wideband SDR transceiver

Introduction

This version of the Red Pitaya SDR transceiver may be useful for wideband applications.

Hardware

The structure of this version is very similar to the SDR transceiver described at this link. The two main differences are:

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

Wideband SDR transceiver

The projects/sdr_transceiver_wide 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_wide/server directory contains the source code of the TCP server (sdr-transceiver-wide.c) that receives control commands and transmits/receives the I/Q data streams (up to 2 x 32 bit x 2500 kSPS = 152 Mbit/s) to/from the SDR programs.

The projects/sdr_transceiver_wide/gnuradio directory contains GNU Radio blocks and a few flow graph configurations for GNU Radio Companion.

The projects/sdr_transceiver_wide/gnuradio directory contains GNU Radio blocks and an example flow graph configuration for GNU Radio Companion.

Getting started

sudo apt-get install gnuradio python-numpy python-gtk2
git clone https://github.com/pavel-demin/red-pitaya-notes
cd red-pitaya-notes/projects/sdr_transceiver_wide/gnuradio
export GRC_BLOCKS_PATH=.
gnuradio-companion trx_wide_template.grc

Building from source

The installation of the development machine is described at this link.

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

Setting up the Vivado environment:

source /opt/Xilinx/Vivado/2016.4/settings64.sh

Cloning the source code repository:

git clone https://github.com/pavel-demin/red-pitaya-notes
cd red-pitaya-notes

Building sdr_transceiver_wide.bit:

make NAME=sdr_transceiver_wide bit

Building sdr-transceiver:

arm-linux-gnueabihf-gcc -static -O3 -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard projects/sdr_transceiver_wide/server/sdr-transceiver-wide.c -o sdr-transceiver-wide -lm -lpthread

Building SD card image zip file:

source helpers/build-all.sh