Hi Jorge,
I don't see any indication that you are calling the Connect() function to
connect the RFNoC blocks in the FPGA.
Rob

On Mon, Nov 9, 2020 at 1:35 PM Jorge Arroyo Giganto via USRP-users <
usrp-users@lists.ettus.com> wrote:

> Hi all,
>
> After testing a loopback in GNU Radio with a custom block (the gain
> example from the Getting Started with RFNoC guide), I managed to get the
> samples going from the host to the "RFNoC domain" and back to the host,
> without involving the radio cores at all. My flowgraph was Signal Source
> (Host) -> RFNoC: DmaFIFO -> RFNoC: gain -> QT GUI Freq Sink (Host), and
> everything worked fine, so I know that what I'm trying to do is possible.
>
> I have also made examples in UHD with C++ transmitting (Host -> TX Radio)
> and receiving (RX Radio -> Host) using the custom RFNoC block in the graph,
> by modifying the tx_waveforms and rfnoc_rx_to_file examples, and everything
> worked fine as well, I checked that all of the examples had a resulting
> signal that looked like it was expected.
>
> Now, I would like to replicate in UHD with C++ something similar to what I
> have in GNU Radio, a loopback using the RFNoC custom block but without
> involving the radio cores, basically: Host -> RFNoC -> Host. Right now my
> approach is to have a graph looking like Host TX -> DmaFIFO -> Gain Custom
> -> Host RX, I am configuring the tx and rx streamers this way:
>
> uhd::device_addr_t tx_streamer_args;
> uhd::stream_args_t tx_stream_args("fc32", "sc16");
> tx_streamer_args["block_id"] = dmafifo_blockid;
> tx_streamer_args["block_port"] = "0";
> tx_stream_args.args = tx_streamer_args;
> tx_stream_args.args["spp"] = boost::lexical_cast<std::string>(spp);
> //spp=364
> uhd::tx_streamer::sptr tx_stream = usrp3->get_tx_stream(tx_stream_args);
>
> ----
>
> uhd::device_addr_t rx_streamer_args;
> uhd::stream_args_t rx_stream_args("fc32", "sc16");
> rx_streamer_args["block_id"] = gain_blockid;
> rx_streamer_args["block_port"] = "0";
> rx_stream_args.args["spp"] = boost::lexical_cast<std::string>(spp);
> rx_stream_args.args = rx_streamer_args;
> uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(rx_stream_args);
>
> I'm creating a thread that continuously sends (send()) samples to the
> DmaFIFO, and then I try to do the recv() until I get something, but I
> always get a timeout. It's like if the samples aren't flowing through the
> blocks, or like if I'm not doing the recv() right. Also, I'm getting a
> strange warning ([INFO] [RFNOC] No upstream blocks.) that I don't
> understand quite well in this context, does it have anything to do with the
> fact that I'm not using the radio cores? I have also tried to put a FIFO
> after the Gain block but I get pretty much the same result.
>
> I would appreciate any help or recommendations on how to achieve in C++
> this idea of Host TX -> RFNoC -> Host RX, is there something I am missing
> or should consider?
>
> I am using UHD-3.15.LTS on a X310, and GNU Radio 3.7. Everything is
> running on Ubuntu 16.04.
>
> Thanks in advance,
>
> Jorge
>
>
> _______________________________________________
> USRP-users mailing list
> USRP-users@lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to