[USRP-users] Configuring RX connection type on N210/TVRX2

Marcus D. Leech patchvonbraun at gmail.com
Fri Nov 15 11:53:00 EST 2019

On 11/15/2019 05:02 AM, Julian Ilinca via USRP-users wrote:
> Hello all,
> I have two questions concerning the RX channel configuration on an 
> TVRX2 daughter-board. I cannot seem to find any relevant information 
> in the example files or on the Internet. But first things first, the 
> TVRX2 is connected to a N210 motherboard and I am using the UHD C++ 
> API for configuring the device. Furthermore, I am trying to measure 
> the real (I) component of a VHF signal on both of the channels (RX1 
> and RX2) simultaneously.
> 1. The first question is related to IQ sampling:
> The daughter-board is set so that one channel retrieves the I 
> component and the other channel the Q. I retrieved this information 
> with the uhd_usrp_probe command. In the output under RX0 its says 
> connection type = Q and on RX1 connection type = I. What command do I 
> have to use to change connection type of RX0 from Q to I, so that I 
> could have two channels measuring the real component.
That isn't possible.  Signals are presented to the host as complex 
samples.  The TVRX2 *analog hardware* uses a so-called "low-IF" 
   and the N210 has a single 2-channel complex ADC.  Each of those two 
channels is *hard wired* to go to one of the ADC channels, and the
   DDC algorithms in the FPGA convert that to a complex base-band signal 
that is then filtered, downsampled, and sent to the host computer.

> 2. I'm a confused about the channel mapping convention used when using 
> the TVRX2. In order torecord from two channels I have set the 
> subdev_spec to "A:RX1 A:RX2", and it works fine. However, when I use 
> the "get_rx_num_channels()" function its return value is 1 instead of 2.
> In the manual entry for the function it says:
> "This is the number of USRPs times the number of RX channels per 
> board, where the number of RX channels per board is homogeneous among 
> all USRPs."
> To get streaming arguments correctly I have to use a vector where I 
> map the channel number s1 and 2 manually:
> >>std::vector<size_t> channel_nums;
> >>...
> >> channel_nums.push_back(0);
> >> channel_nums.push_back(1);
> >>...
> >>stream_args.channels = channel_nums;
> >>uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args);
> Now, how does the device recognize 2 channels after the 
> get_rx_stream()  function has been called, as it earlier on told me 
> there is only one channel, and how can I specifically configure the 
> properties of channel 1?
Well, you just created two channels within the stream. So, I'm guess 
that's where the number comes from, but I'll agree it's confusing if
   you're expecting it to be the actual hardware channels.

> Thanks already in advance for your support!
> Br. Julian
> _______________________________________________
> USRP-users mailing list
> USRP-users at lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20191115/6f66ccc4/attachment.html>

More information about the USRP-users mailing list