Date: Thu, 2 Sep 2010 14:19:54 -0600
Actually we are using the USRP2 not for a SDR application, but we are
using it to test our physical layer asynchronous backet based
communication. For that I have to change the FPGA code and remove the
interpolation/decimation and replace it with a spreading scheme.
Assuming your spreading doesn't bring your bandwidth over around 25MHz, you
should be able to do the spreading operation on the host and transmit the
spread baseband data to the USRP2 via Gnuradio. The host typically does not
send unmodulated data to the USRP2; the host side, usually using Gnuradio,
performs the desired DSP operations on your raw information such as spreading,
shaping, and modulating, and sends the resulting complex waveform to the USRP2
as raw 16-bit samples. The USRP2 itself knows nothing about your original
that I need to know exactly what is the nature of data I am receiving at
the FPGA and what is its maximum rate or forget about Ethernet and get a
separate bus for me to pass the data to the FPGA .
The data you are receiving at the FPGA is whatever you send to it -- the
interpolation rate you pick determines the sample rate the USRP2 will run at.
The interpolator will handle upsampling the raw samples to match the data rate
the DACs run at. It's up to you (using Gnuradio) to encode your data into an
appropriate waveform for your application.
Assuming I want to use Ethernet, let's say I want to send the stream
'0100001', and I pick DBPSK as the modulation. can you please explain
what is the relation of the DBPSK modulated data and "GMII_RXD" input to
the FPGA or "sample" input to the dsp_core_tx? is that FPGA receives 8
bits per symbol sent over Ethernet?
Whatever raw samples you send into gnuradio get sent to the FPGA (I'm
simplifying here: see the link below for details). The USRP2 itself does not
know or care that you are using DBPSK or that you are sending '0100001'. It
sounds like you might have a misconception of exactly what the USRP2 is doing.
This FAQ is for the USRP1, but the overall description applies also to the
Also, do you have a ready to use Python code for USRP2 device which
generates for example a SIN wave at the transmitter and captures it at
A simple GRC flowgraph would perform this function for you. You can use a
signal source to feed a USRP2 sink, and then a USRP2 source to feed an FFT sink
(or whatever sink you like). The parameters for these blocks depend on what
daughterboards you are using for TX and RX and whether you are using the UHD
driver or not.