Software Defined Radio (SDR) project by Eric Brombaugh:
iceRadio
This is a test prototype for experimenting with Software Defined Radio (SDR). It is composed of several boards that are described in detail elsewhere on this site:Combined with suitable firmware and FPGA design, these boards comprise a receiver capable of capturing 20kHz of signal from DC to over 1GHz, demodulating it with a variety of formats and driving high-quality audio.
- VHF Tuner – 20MHz – 1200MHz VHF/UHF downconverter.
- RXADC Board – 40MSPS 14-bit ADC for capturing HF-band RF signals.
- STM32F303 and ice5 Board – MCU and FPGA which implement the digital receiver.
- I2S DAC PMOD – Used for stereo audio output of demodulated signals.
Tuner
RF input from the antenna can optionally be tuned down from VHF/UHF frequncies to an IF frequency in the HF range before passing to the ADC.ADC
Raw HF or downconverted VHF at an IF of 5MHz is digitized to 14-bit resolution. The maximum input signal allowed without exceeing the range of the ADC puts the 0dBfs point of this system at -10dBm in 50 ohms. The ADC runs at 40MSPS with a resolution of 10 bits, providing approximately 60dB of dynamic range and 20MHz of bandwidth which places the quantization noise floor at about -70dBm.FPGA
From the ADC, data passes into the FPGA. This is an iCE5LP4k part which provides 20 4kb RAM blocks and 4 16×16 MAC blocks which are essential for the DSP required for the downconversion. In the FPGA the ADC data is pre-processed to a sample rate appropriate for the MCU. Figure 2 below shows the primary components of the FPGA design.
The C and Verilog source code is available on GitHub:
emeb/iceRadio
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.