[USRP-users] How to use RFNoC framework with LFRX daughter board?

Martin Braun martin.braun at ettus.com
Mon Oct 23 17:35:30 EDT 2017


The AB and BA frontend configurations are not supported with RFNOC (or
UHD 3.10) on the X-Series. In a nutshell, it's because the original
drivers were registering phony frontends to simulate switching between
them, but they all go to the same connectors. The RFNoC architecture
doesn't let us easily inject hacks like this.

This feature is on the list of things to fix, but more like 2018
timeframe before it gets addressed.

-- Martin

On 09/20/2017 11:46 PM, L TP via USRP-users wrote:
> Hi Derek,
> 
> I've tried using LFRX daughter board on X310 USRP with old UHD version
> (none RFNoC version). My app was configure for LFRX is "subdev = A:AB"
> (slot A), it is OK and I could see signals on spectrum viewer.
> 
> With RFNoC version, user can select A or B slot and antenna only, so it
> doesn't has any signal on spectrum viewer.
> 
> Could you help me to configure for LFRX daughter board on X3xx with
> RFNoC version, please?
> 
> Thanks in advance.
> Best regards,
> Phong
> 
> On Tue, Sep 19, 2017 at 5:34 AM, Derek Kozel <derek.kozel at ettus.com
> <mailto:derek.kozel at ettus.com>> wrote:
> 
>     Hello Phong,
> 
>     It is useful to keep the mailing list included in your responses so
>     more people can respond with advice. Sorry for the long delay in
>     finding this message.
> 
>     You have not actually told me what does not work. From the
>     uhd_usrp_probe we can see that the daughtercard is detected and
>     available for use. Are you trying to route one channel of each LFRX
>     to a separate DDC using RFNoC? That is currently not supported I
>     believe and would have to look deeper to confirm that. It looks like
>     you are thinking of working around that by using
>     the splitstream block, that is a good approach.
> 
>     I hope either you have already solved your issue or that I can still
>     be of assistance. Let me know if you have any more questions or can
>     tell me more about what is not working.
> 
>     Regards,
>     Derek
> 
>     On Wed, Aug 30, 2017 at 8:30 PM, L TP <phonglt03 at gmail.com
>     <mailto:phonglt03 at gmail.com>> wrote:
> 
>         Dear Derek,
> 
>         Sorry for late response. I attached UBX and LFRX daughter boards
>         on X310, UBX board is work well but LFRX doesn't work.
>         The outputs from "uhd_usrp_probe" command are listed below.
>         Thanks for your help.
> 
>         linux; GNU C++ version 4.8.4; Boost_105400;
>         UHD_003.010.000.rfnoc-0-unknown
> 
>         -- X300 initialization sequence...
>         -- Determining maximum frame size... 8000 bytes.
>         -- Setup basic communication...
>         -- Loading values from EEPROM...
>         -- Setup RF frontend clocking...
>         -- Radio 1x clock:200
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:00>02:30)...OK
>         -- Port 48: Found NoC-Block with ID F1F0D00000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/dma_fifo.xml
>         -- Setting up NoC-Shell Control for port #1 (SID: 00:01>02:31)...OK
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/dma_fifo.xml
>         -- [RFNoC Factory] Using controller key 'DmaFIFO' and block name
>         'DmaFIFO'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/dma_fifo.xml
>         -- Found valid blockdef
>         -- NOC ID: 0xF1F0D00000000000  Block ID: 0/DmaFIFO_0
>         -- [0/DmaFIFO_0] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/DmaFIFO_0] block_ctrl_base::_clear()
>         -- [0/DmaFIFO_0] block_ctrl_base::_clear()
>         -- [0/DmaFIFO_0] Adding port definition at
>         xbar/DmaFIFO_0/ports/in/0: type = '' pkt_size = '0' vlen = '0'
>         -- [0/DmaFIFO_0] Adding port definition at
>         xbar/DmaFIFO_0/ports/in/1: type = '' pkt_size = '0' vlen = '0'
>         -- [0/DmaFIFO_0] Adding port definition at
>         xbar/DmaFIFO_0/ports/out/0: type = '' pkt_size = '0' vlen = '0'
>         -- [0/DmaFIFO_0] Adding port definition at
>         xbar/DmaFIFO_0/ports/out/1: type = '' pkt_size = '0' vlen = '0'
>         -- [RFNoC DMA FIFO] Running BIST for FIFO 0... pass (Throughput:
>         1174.8MB/s)
>         -- [NocScript] Executing and asserting code: EQUAL($base_addr,
>         0) OR IS_PWR_OF_2($base_addr)
>         -- [NocScript] Executing and asserting code: IS_PWR_OF_2($depth)
>         -- [RFNoC DMA FIFO] Running BIST for FIFO 1... pass (Throughput:
>         1179.3MB/s)
>         -- [NocScript] Executing and asserting code: EQUAL($base_addr,
>         0) OR IS_PWR_OF_2($base_addr)
>         -- [NocScript] Executing and asserting code: IS_PWR_OF_2($depth)
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:02>02:40)...OK
>         -- Port 64: Found NoC-Block with ID 12AD100000000001.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/radio_x300.xml
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/radio_x300.xml
>         -- [RFNoC Factory] Using controller key 'X300Radio' and block
>         name 'Radio'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/radio_x300.xml
>         -- Found valid blockdef
>         -- NOC ID: 0x12AD100000000001  Block ID: 0/Radio_0
>         -- [0/Radio_0] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/Radio_0] block_ctrl_base::_clear()
>         -- [0/Radio_0] Adding port definition at
>         xbar/Radio_0/ports/in/0: type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [0/Radio_0] Adding port definition at
>         xbar/Radio_0/ports/out/0: type = 'sc16' pkt_size = '0' vlen = '0'
>         -- ---NUM RX CHANNEL.1
>         -- ---NUM TX CHANNEL.1
>         -- [RFNoC Radio] Performing register loopback test... pass
>         -- [0/Radio_0] radio_ctrl_impl::_update_spp(): Requested spp: 364
>         -- [0/Radio_0] radio_ctrl_impl::_update_spp(): Setting spp to: 364
>         -- [0/Radio_0] x300_radio_ctrl_impl::ctor()
>         -- [0/Radio_0] radio_ctrl_impl::_update_spp(): Requested spp: 1996
>         -- [0/Radio_0] radio_ctrl_impl::_update_spp(): Setting spp to: 1996
>         -- Performing timer loopback test... pass
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:03>02:50)...OK
>         -- Port 80: Found NoC-Block with ID 12AD100000000001.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/radio_x300.xml
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/radio_x300.xml
>         -- [RFNoC Factory] Using controller key 'X300Radio' and block
>         name 'Radio'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/radio_x300.xml
>         -- Found valid blockdef
>         -- NOC ID: 0x12AD100000000001  Block ID: 0/Radio_1
>         -- [0/Radio_1] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/Radio_1] block_ctrl_base::_clear()
>         -- [0/Radio_1] Adding port definition at
>         xbar/Radio_1/ports/in/0: type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [0/Radio_1] Adding port definition at
>         xbar/Radio_1/ports/out/0: type = 'sc16' pkt_size = '0' vlen = '0'
>         -- ---NUM RX CHANNEL.1
>         -- ---NUM TX CHANNEL.1
>         -- [RFNoC Radio] Performing register loopback test... pass
>         -- [0/Radio_1] radio_ctrl_impl::_update_spp(): Requested spp: 364
>         -- [0/Radio_1] radio_ctrl_impl::_update_spp(): Setting spp to: 364
>         -- [0/Radio_1] x300_radio_ctrl_impl::ctor()
>         -- [0/Radio_1] radio_ctrl_impl::_update_spp(): Requested spp: 1996
>         -- [0/Radio_1] radio_ctrl_impl::_update_spp(): Setting spp to: 1996
>         -- Performing timer loopback test... pass
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:04>02:60)...OK
>         -- Port 96: Found NoC-Block with ID DDC0000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] Using controller key 'DDC' and block name 'DDC'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- Found valid blockdef
>         -- NOC ID: 0xDDC0000000000000  Block ID: 0/DDC_0
>         -- [0/DDC_0] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/DDC_0] block_ctrl_base::_clear()
>         -- [0/DDC_0] Adding port definition at xbar/DDC_0/ports/in/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [0/DDC_0] Adding port definition at xbar/DDC_0/ports/out/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [NocScript] Executing and asserting code: GE($input_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($fullscale, 0.0)
>         -- [NocScript] Executing and asserting code: GE($demod_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_CTRL", $demod_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_0] sr_write(DEMOD_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($demod_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_RATE", $demod_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_0] sr_write(DEMOD_RATE, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($decode_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DECODE_CTRL", $decode_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_0] sr_write(DECODE_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($sample_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("SAMPLES_RATE", $sample_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_0] sr_write(SAMPLES_RATE, 00000001) ==>
>         --   [0/DDC_0] sr_write(CORDIC_FREQ, 00000000) ==>
>         --   [0/DDC_0] sr_write(DECIM_WORD, 00000001) ==>
>         --   [0/DDC_0] sr_write(N, 00000001) ==>
>         --   [0/DDC_0] sr_write(M, 00000001) ==>
>         --   [0/DDC_0] sr_write(SCALE_IQ, 00004DAB) ==>
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         --   [0/DDC_0] sr_write(N, 00000001) ==>
>         --   [0/DDC_0] sr_write(M, 00000001) ==>
>         --   [0/DDC_0] sr_write(CONFIG, 00000001) ==>
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:05>02:70)...OK
>         -- Port 112: Found NoC-Block with ID DDC0000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] Using controller key 'DDC' and block name 'DDC'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- Found valid blockdef
>         -- NOC ID: 0xDDC0000000000000  Block ID: 0/DDC_1
>         -- [0/DDC_1] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/DDC_1] block_ctrl_base::_clear()
>         -- [0/DDC_1] Adding port definition at xbar/DDC_1/ports/in/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [0/DDC_1] Adding port definition at xbar/DDC_1/ports/out/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [NocScript] Executing and asserting code: GE($input_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($fullscale, 0.0)
>         -- [NocScript] Executing and asserting code: GE($demod_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_CTRL", $demod_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_1] sr_write(DEMOD_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($demod_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_RATE", $demod_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_1] sr_write(DEMOD_RATE, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($decode_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DECODE_CTRL", $decode_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_1] sr_write(DECODE_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($sample_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("SAMPLES_RATE", $sample_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_1] sr_write(SAMPLES_RATE, 00000001) ==>
>         --   [0/DDC_1] sr_write(CORDIC_FREQ, 00000000) ==>
>         --   [0/DDC_1] sr_write(DECIM_WORD, 00000001) ==>
>         --   [0/DDC_1] sr_write(N, 00000001) ==>
>         --   [0/DDC_1] sr_write(M, 00000001) ==>
>         --   [0/DDC_1] sr_write(SCALE_IQ, 00004DAB) ==>
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         --   [0/DDC_1] sr_write(N, 00000001) ==>
>         --   [0/DDC_1] sr_write(M, 00000001) ==>
>         --   [0/DDC_1] sr_write(CONFIG, 00000001) ==>
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:06>02:80)...OK
>         -- Port 128: Found NoC-Block with ID DDC0000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] Using controller key 'DDC' and block name 'DDC'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- Found valid blockdef
>         -- NOC ID: 0xDDC0000000000000  Block ID: 0/DDC_2
>         -- [0/DDC_2] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/DDC_2] block_ctrl_base::_clear()
>         -- [0/DDC_2] Adding port definition at xbar/DDC_2/ports/in/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [0/DDC_2] Adding port definition at xbar/DDC_2/ports/out/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [NocScript] Executing and asserting code: GE($input_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($fullscale, 0.0)
>         -- [NocScript] Executing and asserting code: GE($demod_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_CTRL", $demod_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_2] sr_write(DEMOD_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($demod_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_RATE", $demod_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_2] sr_write(DEMOD_RATE, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($decode_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DECODE_CTRL", $decode_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_2] sr_write(DECODE_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($sample_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("SAMPLES_RATE", $sample_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_2] sr_write(SAMPLES_RATE, 00000001) ==>
>         --   [0/DDC_2] sr_write(CORDIC_FREQ, 00000000) ==>
>         --   [0/DDC_2] sr_write(DECIM_WORD, 00000001) ==>
>         --   [0/DDC_2] sr_write(N, 00000001) ==>
>         --   [0/DDC_2] sr_write(M, 00000001) ==>
>         --   [0/DDC_2] sr_write(SCALE_IQ, 00004DAB) ==>
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         --   [0/DDC_2] sr_write(N, 00000001) ==>
>         --   [0/DDC_2] sr_write(M, 00000001) ==>
>         --   [0/DDC_2] sr_write(CONFIG, 00000001) ==>
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:07>02:90)...OK
>         -- Port 144: Found NoC-Block with ID DDC0000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] Using controller key 'DDC' and block name 'DDC'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- Found valid blockdef
>         -- NOC ID: 0xDDC0000000000000  Block ID: 0/DDC_3
>         -- [0/DDC_3] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/DDC_3] block_ctrl_base::_clear()
>         -- [0/DDC_3] Adding port definition at xbar/DDC_3/ports/in/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [0/DDC_3] Adding port definition at xbar/DDC_3/ports/out/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [NocScript] Executing and asserting code: GE($input_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($fullscale, 0.0)
>         -- [NocScript] Executing and asserting code: GE($demod_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_CTRL", $demod_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_3] sr_write(DEMOD_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($demod_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_RATE", $demod_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_3] sr_write(DEMOD_RATE, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($decode_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DECODE_CTRL", $decode_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_3] sr_write(DECODE_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($sample_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("SAMPLES_RATE", $sample_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_3] sr_write(SAMPLES_RATE, 00000001) ==>
>         --   [0/DDC_3] sr_write(CORDIC_FREQ, 00000000) ==>
>         --   [0/DDC_3] sr_write(DECIM_WORD, 00000001) ==>
>         --   [0/DDC_3] sr_write(N, 00000001) ==>
>         --   [0/DDC_3] sr_write(M, 00000001) ==>
>         --   [0/DDC_3] sr_write(SCALE_IQ, 00004DAB) ==>
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         --   [0/DDC_3] sr_write(N, 00000001) ==>
>         --   [0/DDC_3] sr_write(M, 00000001) ==>
>         --   [0/DDC_3] sr_write(CONFIG, 00000001) ==>
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:08>02:a0)...OK
>         -- Port 160: Found NoC-Block with ID DDC0000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] Using controller key 'DDC' and block name 'DDC'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- Found valid blockdef
>         -- NOC ID: 0xDDC0000000000000  Block ID: 0/DDC_4
>         -- [0/DDC_4] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/DDC_4] block_ctrl_base::_clear()
>         -- [0/DDC_4] Adding port definition at xbar/DDC_4/ports/in/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [0/DDC_4] Adding port definition at xbar/DDC_4/ports/out/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [NocScript] Executing and asserting code: GE($input_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($fullscale, 0.0)
>         -- [NocScript] Executing and asserting code: GE($demod_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_CTRL", $demod_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_4] sr_write(DEMOD_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($demod_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_RATE", $demod_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_4] sr_write(DEMOD_RATE, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($decode_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DECODE_CTRL", $decode_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_4] sr_write(DECODE_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($sample_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("SAMPLES_RATE", $sample_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_4] sr_write(SAMPLES_RATE, 00000001) ==>
>         --   [0/DDC_4] sr_write(CORDIC_FREQ, 00000000) ==>
>         --   [0/DDC_4] sr_write(DECIM_WORD, 00000001) ==>
>         --   [0/DDC_4] sr_write(N, 00000001) ==>
>         --   [0/DDC_4] sr_write(M, 00000001) ==>
>         --   [0/DDC_4] sr_write(SCALE_IQ, 00004DAB) ==>
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         --   [0/DDC_4] sr_write(N, 00000001) ==>
>         --   [0/DDC_4] sr_write(M, 00000001) ==>
>         --   [0/DDC_4] sr_write(CONFIG, 00000001) ==>
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:09>02:b0)...OK
>         -- Port 176: Found NoC-Block with ID DDC0000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- [RFNoC Factory] Using controller key 'DDC' and block name 'DDC'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/ddc.xml
>         -- Found valid blockdef
>         -- NOC ID: 0xDDC0000000000000  Block ID: 0/DDC_5
>         -- [0/DDC_5] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/DDC_5] block_ctrl_base::_clear()
>         -- [0/DDC_5] Adding port definition at xbar/DDC_5/ports/in/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [0/DDC_5] Adding port definition at xbar/DDC_5/ports/out/0:
>         type = 'sc16' pkt_size = '0' vlen = '0'
>         -- [NocScript] Executing and asserting code: GE($input_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         -- [NocScript] Executing and asserting code: GE($fullscale, 0.0)
>         -- [NocScript] Executing and asserting code: GE($demod_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_CTRL", $demod_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_5] sr_write(DEMOD_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($demod_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DEMOD_RATE", $demod_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_5] sr_write(DEMOD_RATE, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($decode_ctrl, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("DECODE_CTRL", $decode_ctrl)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_5] sr_write(DECODE_CTRL, 00000001) ==>
>         -- [NocScript] Executing and asserting code: GE($sample_rate, 0)
>         -- [NocScript] Executing and asserting code:
>         SR_WRITE("SAMPLES_RATE", $sample_rate)
>         -- [NocScript] Executing SR_WRITE()
>         --   [0/DDC_5] sr_write(SAMPLES_RATE, 00000001) ==>
>         --   [0/DDC_5] sr_write(CORDIC_FREQ, 00000000) ==>
>         --   [0/DDC_5] sr_write(DECIM_WORD, 00000001) ==>
>         --   [0/DDC_5] sr_write(N, 00000001) ==>
>         --   [0/DDC_5] sr_write(M, 00000001) ==>
>         --   [0/DDC_5] sr_write(SCALE_IQ, 00004DAB) ==>
>         -- [NocScript] Executing and asserting code: GE($output_rate, 0.0)
>         --   [0/DDC_5] sr_write(N, 00000001) ==>
>         --   [0/DDC_5] sr_write(M, 00000001) ==>
>         --   [0/DDC_5] sr_write(CONFIG, 00000001) ==>
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:0a>02:c0)...OK
>         -- Port 192: Found NoC-Block with ID 5757000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- Setting up NoC-Shell Control for port #1 (SID: 00:0b>02:c1)...OK
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- [RFNoC Factory] Using controller key 'Block' and block name
>         'SplitStream'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- Found valid blockdef
>         -- NOC ID: 0x5757000000000000  Block ID: 0/SplitStream_0
>         -- [0/SplitStream_0] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/SplitStream_0] block_ctrl_base::_clear()
>         -- [0/SplitStream_0] block_ctrl_base::_clear()
>         -- [0/SplitStream_0] Adding port definition at
>         xbar/SplitStream_0/ports/in/0: type = '' pkt_size = '0' vlen = '0'
>         -- [0/SplitStream_0] Adding port definition at
>         xbar/SplitStream_0/ports/out/0: type = '' pkt_size = '0' vlen = '0'
>         -- [0/SplitStream_0] Adding port definition at
>         xbar/SplitStream_0/ports/out/1: type = '' pkt_size = '0' vlen = '0'
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:0c>02:d0)...OK
>         -- Port 208: Found NoC-Block with ID 5757000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- Setting up NoC-Shell Control for port #1 (SID: 00:0d>02:d1)...OK
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- [RFNoC Factory] Using controller key 'Block' and block name
>         'SplitStream'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- Found valid blockdef
>         -- NOC ID: 0x5757000000000000  Block ID: 0/SplitStream_1
>         -- [0/SplitStream_1] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/SplitStream_1] block_ctrl_base::_clear()
>         -- [0/SplitStream_1] block_ctrl_base::_clear()
>         -- [0/SplitStream_1] Adding port definition at
>         xbar/SplitStream_1/ports/in/0: type = '' pkt_size = '0' vlen = '0'
>         -- [0/SplitStream_1] Adding port definition at
>         xbar/SplitStream_1/ports/out/0: type = '' pkt_size = '0' vlen = '0'
>         -- [0/SplitStream_1] Adding port definition at
>         xbar/SplitStream_1/ports/out/1: type = '' pkt_size = '0' vlen = '0'
>         -- [RFNOC] ------- Block Setup -----------
>         -- Setting up NoC-Shell Control for port #0 (SID: 00:0e>02:e0)...OK
>         -- Port 224: Found NoC-Block with ID 5757000000000000.
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- Setting up NoC-Shell Control for port #1 (SID: 00:0f>02:e1)...OK
>         -- [RFNoC Factory] block_ctrl_base::make()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- [RFNoC Factory] Using controller key 'Block' and block name
>         'SplitStream'
>         -- block_ctrl_base()
>         -- base_path = "/usr/local/share/uhd/rfnoc"
>         -- Reading XML file:
>         /usr/local/share/uhd/rfnoc/blocks/splitstream.xml
>         -- Found valid blockdef
>         -- NOC ID: 0x5757000000000000  Block ID: 0/SplitStream_2
>         -- [0/SplitStream_2] block_ctrl_base::clear()
>         -- node_ctrl_base::clear()
>         -- [0/SplitStream_2] block_ctrl_base::_clear()
>         -- [0/SplitStream_2] block_ctrl_base::_clear()
>         -- [0/SplitStream_2] Adding port definition at
>         xbar/SplitStream_2/ports/in/0: type = '' pkt_size = '0' vlen = '0'
>         -- [0/SplitStream_2] Adding port definition at
>         xbar/SplitStream_2/ports/out/0: type = '' pkt_size = '0' vlen = '0'
>         -- [0/SplitStream_2] Adding port definition at
>         xbar/SplitStream_2/ports/out/1: type = '' pkt_size = '0' vlen = '0'
>         -- ========== Full list of RFNoC blocks: ============
>         -- * 0/DmaFIFO_0
>         -- * 0/Radio_0
>         -- * 0/Radio_1
>         -- * 0/DDC_0
>         -- * 0/DDC_1
>         -- * 0/DDC_2
>         -- * 0/DDC_3
>         -- * 0/DDC_4
>         -- * 0/DDC_5
>         -- * 0/SplitStream_0
>         -- * 0/SplitStream_1
>         -- * 0/SplitStream_2
>           _____________________________________________________
>          /
>         |       Device: X-Series Device
>         |     _____________________________________________________
>         |    /
>         |   |       Mboard: X310
>         |   |   revision: 8
>         |   |   revision_compat: 7
>         |   |   product: 30818
>         |   |   mac-addr0: 00:80:2f:25:71:c7
>         |   |   mac-addr1: 00:80:2f:25:71:c8
>         |   |   gateway: 192.168.10.1
>         |   |   ip-addr0: 192.168.10.2
>         |   |   subnet0: 255.255.255.0
>         |   |   ip-addr1: 192.168.20.2
>         |   |   subnet1: 255.255.255.0
>         |   |   ip-addr2: 192.168.30.2
>         |   |   subnet2: 255.255.255.0
>         |   |   ip-addr3: 192.168.40.2
>         |   |   subnet3: 255.255.255.0
>         |   |   serial: 30DDAF4
>         |   |   FW Version: 4.0
>         |   |   FPGA Version: 1000.0
>         |   |   RFNoC capable: Yes
>         |   |  
>         |   |   Time sources:  internal, external, gpsdo
>         |   |   Clock sources: internal, external, gpsdo
>         |   |   Sensors: ref_locked
>         |   |     _____________________________________________________
>         |   |    /
>         |   |   |       RX Dboard: A
>         |   |   |   ID: UBX-160 v1 (0x007a)
>         |   |   |   Serial: 30ED03D
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       RX Frontend: 0
>         |   |   |   |   Name: UBX RX
>         |   |   |   |   Antennas: TX/RX, RX2, CAL
>         |   |   |   |   Sensors: lo_locked
>         |   |   |   |   Freq range: 10.000 to 6000.000 MHz
>         |   |   |   |   Gain range PGA0: 0.0 to 31.5 step 0.5 dB
>         |   |   |   |   Bandwidth range: 160000000.0 to 160000000.0 step
>         0.0 Hz
>         |   |   |   |   Connection Type: IQ
>         |   |   |   |   Uses LO offset: No
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       RX Codec: A
>         |   |   |   |   Name: ads62p48
>         |   |   |   |   Gain range digital: 0.0 to 6.0 step 0.5 dB
>         |   |     _____________________________________________________
>         |   |    /
>         |   |   |       RX Dboard: B
>         |   |   |   ID: LF RX (0x000f)
>         |   |   |   Serial: 30A4ACC
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       RX Frontend: AB
>         |   |   |   |   Name: LFRX (AB)
>         |   |   |   |   Antennas:
>         |   |   |   |   Sensors:
>         |   |   |   |   Freq range: -32.000 to 32.000 MHz
>         |   |   |   |   Gain Elements: None
>         |   |   |   |   Bandwidth range: 64000000.0 to 64000000.0 step
>         0.0 Hz
>         |   |   |   |   Connection Type: IQ
>         |   |   |   |   Uses LO offset: No
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       RX Frontend: BA
>         |   |   |   |   Name: LFRX (BA)
>         |   |   |   |   Antennas:
>         |   |   |   |   Sensors:
>         |   |   |   |   Freq range: -32.000 to 32.000 MHz
>         |   |   |   |   Gain Elements: None
>         |   |   |   |   Bandwidth range: 64000000.0 to 64000000.0 step
>         0.0 Hz
>         |   |   |   |   Connection Type: QI
>         |   |   |   |   Uses LO offset: No
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       RX Frontend: A
>         |   |   |   |   Name: LFRX (A)
>         |   |   |   |   Antennas:
>         |   |   |   |   Sensors:
>         |   |   |   |   Freq range: -32.000 to 32.000 MHz
>         |   |   |   |   Gain Elements: None
>         |   |   |   |   Bandwidth range: 32000000.0 to 32000000.0 step
>         0.0 Hz
>         |   |   |   |   Connection Type: I
>         |   |   |   |   Uses LO offset: No
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       RX Frontend: B
>         |   |   |   |   Name: LFRX (B)
>         |   |   |   |   Antennas:
>         |   |   |   |   Sensors:
>         |   |   |   |   Freq range: -32.000 to 32.000 MHz
>         |   |   |   |   Gain Elements: None
>         |   |   |   |   Bandwidth range: 32000000.0 to 32000000.0 step
>         0.0 Hz
>         |   |   |   |   Connection Type: Q
>         |   |   |   |   Uses LO offset: No
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       RX Codec: B
>         |   |   |   |   Name: ads62p48
>         |   |   |   |   Gain range digital: 0.0 to 6.0 step 0.5 dB
>         |   |     _____________________________________________________
>         |   |    /
>         |   |   |       TX Dboard: A
>         |   |   |   ID: UBX-160 v1 (0x0079)
>         |   |   |   Serial: 30ED03D
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       TX Frontend: 0
>         |   |   |   |   Name: UBX TX
>         |   |   |   |   Antennas: TX/RX, CAL
>         |   |   |   |   Sensors: lo_locked
>         |   |   |   |   Freq range: 10.000 to 6000.000 MHz
>         |   |   |   |   Gain range PGA0: 0.0 to 31.5 step 0.5 dB
>         |   |   |   |   Bandwidth range: 160000000.0 to 160000000.0 step
>         0.0 Hz
>         |   |   |   |   Connection Type: QI
>         |   |   |   |   Uses LO offset: No
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       TX Codec: A
>         |   |   |   |   Name: ad9146
>         |   |   |   |   Gain Elements: None
>         |   |     _____________________________________________________
>         |   |    /
>         |   |   |       TX Dboard: B
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       TX Frontend: 0
>         |   |   |   |   Name: Unknown (0xffff) - 0
>         |   |   |   |   Antennas:
>         |   |   |   |   Sensors:
>         |   |   |   |   Freq range: 0.000 to 0.000 MHz
>         |   |   |   |   Gain Elements: None
>         |   |   |   |   Bandwidth range: 0.0 to 0.0 step 0.0 Hz
>         |   |   |   |   Connection Type: IQ
>         |   |   |   |   Uses LO offset: No
>         |   |   |     _____________________________________________________
>         |   |   |    /
>         |   |   |   |       TX Codec: B
>         |   |   |   |   Name: ad9146
>         |   |   |   |   Gain Elements: None
>         |   |     _____________________________________________________
>         |   |    /
>         |   |   |       RFNoC blocks on this device:
>         |   |   |  
>         |   |   |   * DmaFIFO_0
>         |   |   |   * Radio_0
>         |   |   |   * Radio_1
>         |   |   |   * DDC_0
>         |   |   |   * DDC_1
>         |   |   |   * DDC_2
>         |   |   |   * DDC_3
>         |   |   |   * DDC_4
>         |   |   |   * DDC_5
>         |   |   |   * SplitStream_0
>         |   |   |   * SplitStream_1
>         |   |   |   * SplitStream_2
> 
> 
>         On Wed, Aug 30, 2017 at 6:52 PM, Derek Kozel
>         <derek.kozel at ettus.com <mailto:derek.kozel at ettus.com>> wrote:
> 
>             Hello Phong,
> 
>             I had asked if you could paste the full output, there is
>             useful information at the top and it is easier to see text
>             than an image.
> 
>             In this case the LFRX daughterboard antennas are visible.
>             You will have to tell us more about your problem and
>             application.
> 
>             Regards,
>             Derek
> 
>             On Wed, Aug 30, 2017 at 12:37 PM, L TP <phonglt03 at gmail.com
>             <mailto:phonglt03 at gmail.com>> wrote:
> 
>                 Dear Derek,
> 
>                 Thanks for your response.
>                 I've attached the results from uhd_usrp_probe command.
>                 Please help me.
> 
>                 Thanks in advance.
> 
>                 With best regards,
>                 Phong
>                 image1.JPG
> 
>                 Sent from my iPhone
> 
>                 On Aug 30, 2017, at 5:25 PM, Derek Kozel
>                 <derek.kozel at ettus.com <mailto:derek.kozel at ettus.com>>
>                 wrote:
> 
>>                 Hello,
>>
>>                 Can you please paste a copy of the full output,
>>                 including the command, for uhd_usrp_probe? That will
>>                 include a lot of information which we can use to offer
>>                 advice.
>>
>>                 Thanks,
>>                 Derek
>>
>>                 On Wed, Aug 30, 2017 at 11:21 AM, L TP via USRP-users
>>                 <usrp-users at lists.ettus.com
>>                 <mailto:usrp-users at lists.ettus.com>> wrote:
>>
>>
>>                     Hi List,
>>                     I'm trying to use X310 and LFRX daughter board on
>>                     RFNoC frame work.
>>                     I attached UBX and LFRX boards on X310 and run
>>                     command "uhd_usrp_probe" and found that the app
>>                     didn't detect antenna of LFRX, so my app can't
>>                     show signal from it.
>>
>>                     Could you help me, please?
>>
>>                     _______________________________________________
>>                     USRP-users mailing list
>>                     USRP-users at lists.ettus.com
>>                     <mailto:USRP-users at lists.ettus.com>
>>                     http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>                     <http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com>
>>
>>
> 
> 
> 
> 
> 
> 
> _______________________________________________
> USRP-users mailing list
> USRP-users at lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
> 





More information about the USRP-users mailing list