EJ, that's a good question; on an E320, the entire image loader takes a seconds or two of wall time, and I think it should be the same order of magnitude for E310. However, you should be able to cut that time down dramatically when loading an image as part of a larger application. Let me get back to you on how exactly; if you want an answer now, I think you'll need to pull some of the functionality in mpmd_image_loader.cpp into your application.
Brent On Fri, Jun 28, 2019, 6:19 PM EJ Kreinar <ejkrei...@gmail.com> wrote: > Hi Brent, > > What's the ballpark programming time using uhd_image_loader on the e310? > > I currently swap in/out fpga images using the args parameter on the e310 > since the fpga size is pretty small. In some cases the application > introspects the required fpga resources, and dynamically chooses the > correct bitstream at runtime... Just wondering if there's a way I can use a > similar workflow with uhd_image_loader on the MPM architecture... > > EJ > > On Fri, Jun 28, 2019, 9:07 PM Brent Stapleton via USRP-users < > usrp-users@lists.ettus.com> wrote: > >> The 3.15 pre-release updates the E310 to use MPM (as you know), and >> brings it more in line with other MPM devices. You'll have to use the >> `uhd_image_loader` to update the FPGA image; device args are not used by >> the UHD session to load the FPGA image. The E310 will still load the FPGA >> image at the beginning of the session (and load an idle image when there is >> no active UHD session), but that image is not determined by the session. >> You shouldn't need to touch it manually (we recommend using >> uhd_image_loader), but the image is stored on the filesystem at >> /lib/firmware/e310_sg1.bin. >> >> Brent >> >> On Fri, Jun 28, 2019 at 5:27 PM d.des via USRP-users < >> usrp-users@lists.ettus.com> wrote: >> >>> Marcus Leach wrote: >>> >What happens if you specify an fpga image that doesn't actually >>> >exist? >>> >Does it error out? >>> >>> >>> It ignores the bad file, even though the args seem to be making it >>> pretty far into the process. I still can't find where uhd loads the >>> .bit file. >>> >>> I'm using the version on the referenced SD image from Ettus's site, not >>> bit-baking the latest from meta-ettus. >>> >>> Here's the result for the pre-compiled uhd that was on the SD image at >>> debug log level 0: The results are similar on >>> >>> root@ni-e31x-309C7C2F:~# uhd_usrp_probe -- >>> args="fpga=filethatdoesntexist" >>> [INFO] [UHD] linux; GNU C++ version 7.3.0; Boost_106600; >>> UHD_3.15.0.git-0-g6563c537 >>> [DEBUG] [MPMD] Discovering MPM devices on port 49600 >>> [DEBUG] [MPMD] Discovering MPM devices on port 49600 >>> [TRACE] [UDP] Creating udp transport for 10.1.1.255 49600 >>> [TRACE] [UDP] Creating udp transport for 127.255.255.255 49600 >>> [TRACE] [UDP] Creating udp transport for 10.1.1.255 50000 >>> [TRACE] [UHD] Device hash: 2130689100 >>> [DEBUG] [PREFS] Loaded system config file /etc/uhd/uhd.conf >>> [DEBUG] [PREFS] Loaded user config file /home/root/.uhd/uhd.conf >>> [DEBUG] [PREFS] Loaded system config file /etc/uhd/uhd.conf >>> [DEBUG] [PREFS] Loaded user config file /home/root/.uhd/uhd.conf >>> [DEBUG] [PREFS] Loaded system config file /etc/uhd/uhd.conf >>> [DEBUG] [PREFS] Loaded user config file /home/root/.uhd/uhd.conf >>> [INFO] [MPMD] Initializing 1 device(s) in parallel with args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist >>> [DEBUG] [MPMD] Claiming mboard 0 >>> [DEBUG] [MPMD] Device args: >>> `mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed= >>> False,fpga=filethatdoesntexist'. RPC address: 127.0.0.1 >>> [TRACE] [MPMD] Initializing mboard, connecting to RPC server address: >>> 127.0.0.1 mboard args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist number of crossbars: 1 >>> [INFO] [MPM.PeriphManager] Found 1 daughterboard(s). >>> [TRACE] [MPMD] MPM reports device info: >>> claimed=True,connection=local,description=E300-Series >>> Device,eeprom_version=,fpga=,fpga_version=1.0,fpga_version_hash=f52a643 >>> .clean,mpm_version=1.2,name=ni-e31x- >>> 309C7C2F,pid=30674,product=e310_sg1,rev=4,rpc_connection=local,serial=3 >>> 09C7C2,type=e3xx >>> [TRACE] [MPMD] MPM reports dboard info for slot 0: >>> eeprom_version=n/a,pid=272,rev=3,serial=309991A >>> [TRACE] [MPMD] Checking MPM compat number. Expected: 1.2 Actual: 1.2 >>> [DEBUG] [MPMD] Initializing mboard 0 >>> [DEBUG] [MPMD] Found 3 motherboard sensors. >>> [DEBUG] [MPMD] Found 2 updateable motherboard components. >>> [TRACE] [MPMD] Enumerating RFNoC blocks for xbar 0. Total blocks: 3 >>> Base port: 1 Local address: 2 >>> [TRACE] [MPMD] Creating new transport to mboard: 0 SID: 00:00>02:10 >>> User-defined xport args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist >>> [TRACE] [MPMD] make_transport(): Creating new transport of type: CTRL >>> [TRACE] [MPMD] make_transport(): request_xport() gave us 1 option(s). >>> [TRACE] [MPMD] Making (muxed) stream with num 0 >>> [TRACE] [MPMD] xport info: send_sid==00:00>02:10 recv_sid==02:10>00:00 >>> endianness==LE recv_buff_size==10880 send_buff_size==10880 >>> [DEBUG] [DEVICE3] Port 0x10: Found NoC-Block with ID 12AD100000003310. >>> [DEBUG] [RFNOC] Reading XML file >>> /usr/share/uhd/rfnoc/blocks/radio_e31x.xml for NOC ID >>> 0x12AD100000003310 >>> [TRACE] [MPMD] Creating new transport to mboard: 0 SID: 00:00>02:11 >>> User-defined xport args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist >>> [TRACE] [MPMD] make_transport(): Creating new transport of type: CTRL >>> [TRACE] [MPMD] make_transport(): request_xport() gave us 1 option(s). >>> [TRACE] [MPMD] Making (muxed) stream with num 1 >>> [TRACE] [MPMD] xport info: send_sid==00:01>02:11 recv_sid==02:11>00:01 >>> endianness==LE recv_buff_size==10880 send_buff_size==10880 >>> [TRACE] [RFNOC] [RFNoC Factory] block_ctrl_base::make() >>> [DEBUG] [RFNOC] Reading XML file >>> /usr/share/uhd/rfnoc/blocks/radio_e31x.xml for NOC ID >>> 0x12AD100000003310 >>> [TRACE] [RFNOC] [RFNoC Factory] Using controller key 'E31XRadio' and >>> block name 'Radio' >>> [DEBUG] [RFNOC] Reading XML file >>> /usr/share/uhd/rfnoc/blocks/radio_e31x.xml for NOC ID >>> 0x12AD100000003310 >>> [INFO] [0/Radio_0] Initializing block control (NOC ID: >>> 0x12AD100000003310) >>> [DEBUG] [0/Radio_0] Checking compat number for FPGA component >>> `noc_shell': Expecting 5.1, actual: 5.1. >>> [TRACE] [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/0: >>> type = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/1: >>> type = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/0: >>> type = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/1: >>> type = 'sc16' pkt_size = '0' vlen = '0' >>> [DEBUG] [0/Radio_0] Register loopback test passed >>> [DEBUG] [0/Radio_0] Register loopback test passed >>> [TRACE] [RFNOC] radio_ctrl_impl::_update_spp(): Requested spp: 508 >>> [TRACE] [RFNOC] radio_ctrl_impl::_update_spp(): Setting spp to: 508 >>> [DEBUG] [0/Radio_0] Setting default spp to 2044 >>> [TRACE] [RFNOC] radio_ctrl_impl::_update_spp(): Requested spp: 2044 >>> [TRACE] [RFNOC] radio_ctrl_impl::_update_spp(): Setting spp to: 2044 >>> [TRACE] [MPMD] Creating new transport to mboard: 0 SID: 00:00>02:20 >>> User-defined xport args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist >>> [TRACE] [MPMD] make_transport(): Creating new transport of type: CTRL >>> [TRACE] [MPMD] make_transport(): request_xport() gave us 1 option(s). >>> [TRACE] [MPMD] Making (muxed) stream with num 2 >>> [TRACE] [MPMD] xport info: send_sid==00:02>02:20 recv_sid==02:20>00:02 >>> endianness==LE recv_buff_size==10880 send_buff_size==10880 >>> [DEBUG] [DEVICE3] Port 0x20: Found NoC-Block with ID DDC0000000000000. >>> [DEBUG] [RFNOC] Reading XML file /usr/share/uhd/rfnoc/blocks/ddc.xml >>> for NOC ID 0xDDC0000000000000 >>> [TRACE] [MPMD] Creating new transport to mboard: 0 SID: 00:00>02:21 >>> User-defined xport args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist >>> [TRACE] [MPMD] make_transport(): Creating new transport of type: CTRL >>> [TRACE] [MPMD] make_transport(): request_xport() gave us 1 option(s). >>> [TRACE] [MPMD] Making (muxed) stream with num 3 >>> [TRACE] [MPMD] xport info: send_sid==00:03>02:21 recv_sid==02:21>00:03 >>> endianness==LE recv_buff_size==10880 send_buff_size==10880 >>> [TRACE] [RFNOC] [RFNoC Factory] block_ctrl_base::make() >>> [DEBUG] [RFNOC] Reading XML file /usr/share/uhd/rfnoc/blocks/ddc.xml >>> for NOC ID 0xDDC0000000000000 >>> [TRACE] [RFNOC] [RFNoC Factory] Using controller key 'DDC' and block >>> name 'DDC' >>> [DEBUG] [RFNOC] Reading XML file /usr/share/uhd/rfnoc/blocks/ddc.xml >>> for NOC ID 0xDDC0000000000000 >>> [INFO] [0/DDC_0] Initializing block control (NOC ID: >>> 0xDDC0000000000000) >>> [DEBUG] [0/DDC_0] Checking compat number for FPGA component >>> `noc_shell': Expecting 5.1, actual: 5.1. >>> [INFO] [MPM.PeriphManager] init() called with device args >>> `fpga=filethatdoesntexist,mgmt_addr=127.0.0.1,product=e310_sg1'. >>> [TRACE] [0/DDC_0] Adding port definition at xbar/DDC_0/ports/in/0: type >>> = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/DDC_0] Adding port definition at xbar/DDC_0/ports/in/1: type >>> = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/DDC_0] Adding port definition at xbar/DDC_0/ports/out/0: >>> type = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/DDC_0] Adding port definition at xbar/DDC_0/ports/out/1: >>> type = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($input_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($output_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($fullscale, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($input_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($output_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($fullscale, 0.0) >>> [DEBUG] [0/DDC_0] Loading DDC with 1 halfbands and max CIC decimation >>> 16 >>> [DEBUG] [DDC] Checking compat number for FPGA component `DDC': >>> Expecting 2.0, actual: 2.0. >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($output_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($output_rate, 0.0) >>> [TRACE] [MPMD] Creating new transport to mboard: 0 SID: 00:00>02:30 >>> User-defined xport args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist >>> >>> ---note: args=fpga= points to non-existant files, and there are no .bit >>> files anywhere on the sd card >>> >>> [TRACE] [MPMD] make_transport(): Creating new transport of type: CTRL >>> [TRACE] [MPMD] make_transport(): request_xport() gave us 1 option(s). >>> [TRACE] [MPMD] Making (muxed) stream with num 4 >>> [TRACE] [MPMD] xport info: send_sid==00:04>02:30 recv_sid==02:30>00:04 >>> endianness==LE recv_buff_size==10880 send_buff_size==10880 >>> [DEBUG] [DEVICE3] Port 0x30: Found NoC-Block with ID D0C0000000000002. >>> [DEBUG] [RFNOC] Reading XML file /usr/share/uhd/rfnoc/blocks/duc.xml >>> for NOC ID 0xD0C0000000000002 >>> [TRACE] [MPMD] Creating new transport to mboard: 0 SID: 00:00>02:31 >>> User-defined xport args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist >>> [TRACE] [MPMD] make_transport(): Creating new transport of type: CTRL >>> [TRACE] [MPMD] make_transport(): request_xport() gave us 1 option(s). >>> [TRACE] [MPMD] Making (muxed) stream with num 5 >>> [TRACE] [MPMD] xport info: send_sid==00:05>02:31 recv_sid==02:31>00:05 >>> endianness==LE recv_buff_size==10880 send_buff_size==10880 >>> [TRACE] [RFNOC] [RFNoC Factory] block_ctrl_base::make() >>> [DEBUG] [RFNOC] Reading XML file /usr/share/uhd/rfnoc/blocks/duc.xml >>> for NOC ID 0xD0C0000000000002 >>> [TRACE] [RFNOC] [RFNoC Factory] Using controller key 'DUC' and block >>> name 'DUC' >>> [DEBUG] [RFNOC] Reading XML file /usr/share/uhd/rfnoc/blocks/duc.xml >>> for NOC ID 0xD0C0000000000002 >>> [INFO] [0/DUC_0] Initializing block control (NOC ID: >>> 0xD0C0000000000002) >>> [DEBUG] [0/DUC_0] Checking compat number for FPGA component >>> `noc_shell': Expecting 5.1, actual: 5.1. >>> [TRACE] [0/DUC_0] Adding port definition at xbar/DUC_0/ports/in/0: type >>> = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/DUC_0] Adding port definition at xbar/DUC_0/ports/in/1: type >>> = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/DUC_0] Adding port definition at xbar/DUC_0/ports/out/0: >>> type = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [0/DUC_0] Adding port definition at xbar/DUC_0/ports/out/1: >>> type = 'sc16' pkt_size = '0' vlen = '0' >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($input_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($output_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($fullscale, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($input_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($output_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($fullscale, 0.0) >>> [DEBUG] [0/DUC_0] Loading DUC with 1 halfbands and max CIC >>> interpolation 8 >>> [DEBUG] [DUC] Checking compat number for FPGA component `DUC': >>> Expecting 2.0, actual: 2.0. >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($input_rate, 0.0) >>> [TRACE] [RFNOC] [NocScript] Executing and asserting code: >>> GE($input_rate, 0.0) >>> [DEBUG] [MPMD] Adding RPC access to block: 0/Radio_0 Block args: >>> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=309C7C2,claimed=F >>> alse,fpga=filethatdoesntexist >>> [INFO] [0/Radio_0] RX freq = 2.4e+09 >>> [INFO] [0/Radio_0] RX band = 6 >>> [INFO] [0/Radio_0] RX SW1 = 5 >>> [INFO] [0/Radio_0] RX SWC = 0 >>> [INFO] [0/Radio_0] RX SWB = 1 >>> [INFO] [0/Radio_0] RX VCRX_SW = 1 >>> [INFO] [0/Radio_0] RX VCTXRX_SW = 0 >>> [INFO] [0/Radio_0] RX freq = 2.4e+09 >>> [INFO] [0/Radio_0] RX band = 6 >>> [INFO] [0/Radio_0] RX SW1 = 5 >>> [INFO] [0/Radio_0] RX SWC = 0 >>> [INFO] [0/Radio_0] RX SWB = 1 >>> [INFO] [0/Radio_0] RX VCRX_SW = 1 >>> [INFO] [0/Radio_0] RX VCTXRX_SW = 0 >>> [INFO] [0/Radio_0] RX freq = 2.4e+09 >>> [INFO] [0/Radio_0] RX band = 6 >>> [INFO] [0/Radio_0] RX SW1 = 5 >>> [INFO] [0/Radio_0] RX SWC = 0 >>> [INFO] [0/Radio_0] RX SWB = 1 >>> [INFO] [0/Radio_0] RX VCRX_SW = 1 >>> [INFO] [0/Radio_0] RX VCTXRX_SW = 0 >>> [INFO] [0/Radio_0] RX freq = 2.4e+09 >>> [INFO] [0/Radio_0] RX band = 6 >>> [INFO] [0/Radio_0] RX SW1 = 5 >>> [INFO] [0/Radio_0] RX SWC = 0 >>> [INFO] [0/Radio_0] RX SWB = 1 >>> [INFO] [0/Radio_0] RX VCRX_SW = 1 >>> [INFO] [0/Radio_0] RX VCTXRX_SW = 0 >>> [INFO] [0/Radio_0] RX freq = 2.4e+09 >>> [INFO] [0/Radio_0] RX band = 6 >>> [INFO] [0/Radio_0] RX SW1 = 5 >>> [INFO] [0/Radio_0] RX SWC = 0 >>> [INFO] [0/Radio_0] RX SWB = 1 >>> [INFO] [0/Radio_0] RX VCRX_SW = 1 >>> [INFO] [0/Radio_0] RX VCTXRX_SW = 0 >>> [INFO] [0/Radio_0] RX freq = 2.4e+09 >>> [INFO] [0/Radio_0] RX band = 6 >>> [INFO] [0/Radio_0] RX SW1 = 5 >>> [INFO] [0/Radio_0] RX SWC = 0 >>> [INFO] [0/Radio_0] RX SWB = 1 >>> [INFO] [0/Radio_0] RX VCRX_SW = 1 >>> [INFO] [0/Radio_0] RX VCTXRX_SW = 0 >>> [DEBUG] [0/Radio_0] Master Clock Rate is: 16 MHz. >>> [DEBUG] [0/Radio_0] Asking for clock rate 16 MHz >>> >>> [DEBUG] [0/Radio_0] Actual clock rate 16 MHz >>> >>> [DEBUG] [CORES] Performing timer loopback test... >>> [DEBUG] [CORES] Timer loopback test passed. >>> [DEBUG] [0/Radio_0] Asking for clock rate 30.72 MHz >>> >>> [DEBUG] [0/Radio_0] Actual clock rate 30.72 MHz >>> >>> [DEBUG] [CORES] Performing timer loopback test... >>> [DEBUG] [CORES] Timer loopback test passed. >>> [INFO] [0/Radio_0] Performing CODEC loopback test... >>> [INFO] [0/Radio_0] CODEC loopback test passed >>> [DEBUG] [0/Radio_0] Asking for clock rate 16 MHz >>> >>> [DEBUG] [0/Radio_0] Actual clock rate 16 MHz >>> >>> [DEBUG] [CORES] Performing timer loopback test... >>> [DEBUG] [CORES] Timer loopback test passed. >>> [DEBUG] [0/Radio_0] Asking for clock rate 30.72 MHz >>> >>> [DEBUG] [0/Radio_0] Actual clock rate 30.72 MHz >>> >>> [DEBUG] [CORES] Performing timer loopback test... >>> [DEBUG] [CORES] Timer loopback test passed. >>> [INFO] [0/Radio_0] Performing CODEC loopback test... >>> [INFO] [0/Radio_0] CODEC loopback test passed >>> [DEBUG] [0/Radio_0] Asking for clock rate 16 MHz >>> >>> [DEBUG] [0/Radio_0] Actual clock rate 16 MHz >>> >>> [DEBUG] [CORES] Performing timer loopback test... >>> [DEBUG] [CORES] Timer loopback test passed. >>> _____________________________________________________ >>> / >>> | Device: E300-Series Device >>> | _____________________________________________________ >>> | / >>> | | Mboard: ni-e31x-309C7C2F >>> | | mpm_version: 3.15.0.git-g6563c537 >>> | | pid: 30674 >>> | | product: e310_sg1 >>> | | rev: 4 >>> | | rpc_connection: local >>> | | serial: 309C7C2 >>> | | type: e3xx >>> | | MPM Version: 1.2 >>> | | FPGA Version: 1.0 >>> | | FPGA git hash: f52a643.clean >>> | | RFNoC capable: Yes >>> | | >>> | | Time sources: internal, external, gpsdo >>> | | Clock sources: internal >>> | | Sensors: ref_locked, temp_fpga, temp_mb >>> | | _____________________________________________________ >>> | | / >>> | | | RX Dboard: A >>> | | | _____________________________________________________ >>> | | | / >>> | | | | RX Frontend: 0 >>> | | | | Name: E3xx >>> | | | | Antennas: RX2, TX/RX >>> | | | | Sensors: lo_locked, rssi, lo_lock, ad9361_temperature >>> | | | | Freq range: 70.000 to 6000.000 MHz >>> | | | | Gain range PGA: 0.0 to 76.0 step 1.0 dB >>> | | | | Bandwidth range: 20000000.0 to 40000000.0 step 0.0 Hz >>> | | | | Connection Type: IQ >>> | | | | Uses LO offset: No >>> | | | _____________________________________________________ >>> | | | / >>> | | | | RX Frontend: 1 >>> | | | | Name: E3xx >>> | | | | Antennas: RX2, TX/RX >>> | | | | Sensors: lo_locked, rssi, lo_lock, ad9361_temperature >>> | | | | Freq range: 70.000 to 6000.000 MHz >>> | | | | Gain range PGA: 0.0 to 76.0 step 1.0 dB >>> | | | | Bandwidth range: 20000000.0 to 40000000.0 step 0.0 Hz >>> | | | | Connection Type: IQ >>> | | | | Uses LO offset: No >>> | | | _____________________________________________________ >>> | | | / >>> | | | | RX Codec: A >>> | | | | Name: AD9361 Dual ADC >>> | | | | Gain Elements: None >>> | | _____________________________________________________ >>> | | / >>> | | | TX Dboard: A >>> | | | _____________________________________________________ >>> | | | / >>> | | | | TX Frontend: 0 >>> | | | | Name: E3xx >>> | | | | Antennas: TX/RX >>> | | | | Sensors: lo_locked, ad9361_temperature >>> | | | | Freq range: 47.000 to 6000.000 MHz >>> | | | | Gain range PGA: 0.0 to 89.8 step 0.2 dB >>> | | | | Bandwidth range: 20000000.0 to 40000000.0 step 0.0 Hz >>> | | | | Connection Type: IQ >>> | | | | Uses LO offset: No >>> | | | _____________________________________________________ >>> | | | / >>> | | | | TX Frontend: 1 >>> | | | | Name: E3xx >>> | | | | Antennas: TX/RX >>> | | | | Sensors: lo_locked, ad9361_temperature >>> | | | | Freq range: 47.000 to 6000.000 MHz >>> | | | | Gain range PGA: 0.0 to 89.8 step 0.2 dB >>> | | | | Bandwidth range: 20000000.0 to 40000000.0 step 0.0 Hz >>> | | | | Connection Type: IQ >>> | | | | Uses LO offset: No >>> | | | _____________________________________________________ >>> | | | / >>> | | | | TX Codec: A >>> | | | | Name: AD9361 Dual DAC >>> | | | | Gain Elements: None >>> | | _____________________________________________________ >>> | | / >>> | | | RFNoC blocks on this device: >>> | | | >>> | | | * Radio_0 >>> | | | * DDC_0 >>> | | | * DUC_0 >>> >>> >>> >>> >>> _______________________________________________ >>> 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 >> >
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com