Sophie

Sophie

distrib > Mageia > 5 > i586 > by-pkgid > eb4b034508697cc17e7c9cfffe7f772b > files > 850

uhd-doc-3.7.2-3.mga5.noarch.rpm

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
<title>UHD - X3x0 Series Device Manual</title>
<style type="text/css">

body{
font-family:Arial, Helvetica, sans-serif;
font-size:11pt;
color:black;
background-color:white;
width:90%;
margin:0 auto 0 auto;
}

div.document div.contents{
border:1px solid #333333;
padding:10px 30px 10px 10px;
margin-left:50px;
color:inherit;
background-color:#FCFCFC;
display:inline-block;
}

div.document p.topic-title{
font-weight:bold;
}

div.document a:link, div.document a:visited{
color:#236B8E;
background-color:inherit;
text-decoration:none;
}

div.document a:hover{
color:#4985D6;
background-color:inherit;
text-decoration:none;
}

div.document h1.title{
font-size:150%;
border-left:1px solid #333333;
border-bottom:1px solid #333333;
text-align:left;
padding:10px 0px 10px 10px;
margin:10px 5px 20px 5px;
color:#333333;
background-color:inherit;
}

div.document h2.subtitle, div.section h1{
margin-top:50px;
border-bottom:1px solid #333333;
font-size:140%;
text-align:center;
padding:20px 0px 10px 0px;
color:#333333;
background-color:inherit;
}

div.section h2{
font-size:110%;
text-align:left;
padding:15px 0px 5px 0px;
text-decoration:underline;
color:#333333;
background-color:inherit;
}

div.document pre.literal-block{
border:1px inset #333333;
padding:5px;
margin:10px 5px 10px 5px;
color:inherit;
background-color:#FCFCFC;
font-size:90%;
}

div.document table{
padding:5px;
font-size:95%;
}

div.document th{
padding:3px 7px 3px 7px;
border:1px solid #333333;
text-align:center;
color:inherit;
background-color:#ECECEC;
}

div.document tr{
}

div.document td{
padding:3px 7px 3px 7px;
border:1px solid #333333;
text-align:center;
color:inherit;
background-color:#FCFCFC;
}

div.footer{
margin:50px auto 30px auto;
text-align:center;
font-size:85%;
}

</style>
</head>
<body>
<div class="document" id="uhd-x3x0-series-device-manual">
<h1 class="title">UHD - X3x0 Series Device Manual</h1>

<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of Contents</p>
<ul class="simple">
<li><a class="reference internal" href="#comparative-features-list" id="id5">Comparative features list</a></li>
<li><a class="reference internal" href="#getting-started" id="id6">Getting started</a><ul>
<li><a class="reference internal" href="#assembling-the-x300-x310-kit" id="id7">Assembling the X300/X310 kit</a></li>
<li><a class="reference internal" href="#network-connectivity" id="id8">Network Connectivity</a></li>
<li><a class="reference internal" href="#updating-the-fpga-image" id="id9">Updating the FPGA Image</a></li>
</ul>
</li>
<li><a class="reference internal" href="#hardware-setup" id="id10">Hardware Setup</a><ul>
<li><a class="reference internal" href="#gigabit-ethernet-1-gige" id="id11">Gigabit Ethernet (1 GigE)</a><ul>
<li><a class="reference internal" href="#installing-the-usrp-x300-x310" id="id12">Installing the USRP X300/X310</a></li>
</ul>
</li>
<li><a class="reference internal" href="#ten-gigabit-ethernet-10-gige" id="id13">Ten Gigabit Ethernet (10 GigE)</a><ul>
<li><a class="reference internal" href="#installing-the-host-ethernet-interface" id="id14">Installing the Host Ethernet Interface</a></li>
<li><a class="reference internal" href="#id1" id="id15">Installing the USRP X300/X310</a></li>
</ul>
</li>
<li><a class="reference internal" href="#pci-express-desktop" id="id16">PCI Express (Desktop)</a><ul>
<li><a class="reference internal" href="#installing-the-pci-express-interface-kit" id="id17">Installing the PCI Express Interface Kit</a></li>
<li><a class="reference internal" href="#id2" id="id18">Installing the USRP X300/X310</a></li>
<li><a class="reference internal" href="#troubleshooting" id="id19">Troubleshooting</a></li>
</ul>
</li>
<li><a class="reference internal" href="#pci-express-laptop" id="id20">PCI Express (Laptop)</a><ul>
<li><a class="reference internal" href="#installing-the-pci-express-card" id="id21">Installing the PCI Express Card</a></li>
<li><a class="reference internal" href="#id3" id="id22">Installing the USRP X300/X310</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#on-board-jtag-programmer" id="id23">On-Board JTAG Programmer</a></li>
<li><a class="reference internal" href="#load-fpga-images-onto-the-device" id="id24">Load FPGA Images onto the Device</a><ul>
<li><a class="reference internal" href="#fpga-image-flavors" id="id25">FPGA Image Flavors</a></li>
<li><a class="reference internal" href="#use-pci-express-to-load-fpga-images" id="id26">Use PCI Express to load FPGA images</a></li>
<li><a class="reference internal" href="#use-jtag-to-load-fpga-images" id="id27">Use JTAG to load FPGA images</a></li>
</ul>
</li>
<li><a class="reference internal" href="#load-the-images-onto-the-on-board-flash" id="id28">Load the Images onto the On-board Flash</a><ul>
<li><a class="reference internal" href="#use-the-burner-tool-over-ethernet" id="id29">Use the burner tool over Ethernet</a></li>
<li><a class="reference internal" href="#use-the-burner-tool-over-pci-express" id="id30">Use the burner tool over PCI Express</a></li>
<li><a class="reference internal" href="#device-recovery-and-bricking" id="id31">Device recovery and bricking</a></li>
</ul>
</li>
<li><a class="reference internal" href="#setup-networking" id="id32">Setup Networking</a><ul>
<li><a class="reference internal" href="#setup-the-host-interface" id="id33">Setup the host interface</a></li>
<li><a class="reference internal" href="#multiple-devices-per-host" id="id34">Multiple devices per host</a></li>
<li><a class="reference internal" href="#change-the-usrp-s-ip-address" id="id35">Change the USRP's IP address</a></li>
</ul>
</li>
<li><a class="reference internal" href="#addressing-the-device" id="id36">Addressing the Device</a><ul>
<li><a class="reference internal" href="#single-device-configuration" id="id37">Single device configuration</a></li>
<li><a class="reference internal" href="#multiple-device-configuration" id="id38">Multiple device configuration</a></li>
</ul>
</li>
<li><a class="reference internal" href="#communication-problems" id="id39">Communication Problems</a><ul>
<li><a class="reference internal" href="#runtimeerror-no-control-response" id="id40">RuntimeError: no control response</a></li>
<li><a class="reference internal" href="#firewall-issues" id="id41">Firewall issues</a></li>
<li><a class="reference internal" href="#ping-the-device" id="id42">Ping the device</a></li>
<li><a class="reference internal" href="#usrp-device-not-enumerated-linux" id="id43">USRP device not enumerated (Linux)</a></li>
<li><a class="reference internal" href="#usrp-device-not-enumerated-windows" id="id44">USRP device not enumerated (Windows)</a></li>
<li><a class="reference internal" href="#monitor-the-host-network-traffic" id="id45">Monitor the host network traffic</a></li>
<li><a class="reference internal" href="#observe-ethernet-port-leds" id="id46">Observe Ethernet port LEDs</a></li>
</ul>
</li>
<li><a class="reference internal" href="#hardware-notes" id="id47">Hardware Notes</a><ul>
<li><a class="reference internal" href="#front-panel" id="id48">Front Panel</a></li>
<li><a class="reference internal" href="#rear-panel" id="id49">Rear Panel</a></li>
<li><a class="reference internal" href="#ref-clock-10-mhz" id="id50">Ref Clock - 10 MHz</a></li>
<li><a class="reference internal" href="#pps-pulse-per-second" id="id51">PPS - Pulse Per Second</a></li>
<li><a class="reference internal" href="#internal-gpsdo" id="id52">Internal GPSDO</a></li>
<li><a class="reference internal" href="#front-panel-gpio" id="id53">Front Panel GPIO</a><ul>
<li><a class="reference internal" href="#connector" id="id54">Connector</a></li>
<li><a class="reference internal" href="#pin-mapping" id="id55">Pin Mapping</a></li>
</ul>
</li>
<li><a class="reference internal" href="#debugging-custom-fpga-designs-with-xilinx-chipscope" id="id56">Debugging custom FPGA designs with Xilinx Chipscope</a></li>
</ul>
</li>
<li><a class="reference internal" href="#miscellaneous" id="id57">Miscellaneous</a><ul>
<li><a class="reference internal" href="#multiple-rx-channels" id="id58">Multiple RX channels</a></li>
<li><a class="reference internal" href="#available-sensors" id="id59">Available Sensors</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="comparative-features-list">
<h1>Comparative features list</h1>
<dl class="docutils">
<dt><strong>Hardware Capabilities:</strong></dt>
<dd><ul class="first last simple">
<li>2 transceiver card slots (can do 2x2 MIMO out of the box)</li>
<li>Dual SFP+ Transceivers (can be used with 1 GigE, 10 GigE)</li>
<li>PCI Express over cable (MXI) gen1 x4</li>
<li>External PPS input &amp; output</li>
<li>External 10 MHz input &amp; output</li>
<li>Expandable via 2nd SFP+ interface</li>
<li>Supported master clock rates: 200 MHz, 184.32 MHz</li>
<li>External GPIO Connector with UHD API control</li>
<li>External USB Connection for built-in JTAG debugger</li>
<li>Internal GPSDO option</li>
<li>Kintex-7 FPGA (X310: XC7K410T, X300: XC7K325T)</li>
</ul>
</dd>
<dt><strong>FPGA Capabilities:</strong></dt>
<dd><ul class="first last simple">
<li>2 RX DDC chains in FPGA</li>
<li>2 TX DUC chain in FPGA</li>
<li>Timed commands in FPGA</li>
<li>Timed sampling in FPGA</li>
<li>16-bit and 8-bit sample modes (sc8 and sc16)</li>
<li>Up to 120 MHz of RF bandwidth with 16-bit samples</li>
</ul>
</dd>
</dl>
</div>
<div class="section" id="getting-started">
<h1>Getting started</h1>
<p>This will run you through the first steps relevant to get your USRP X300/X310
up and running. Here, we assume you will connect your USRP using Gigabit Ethernet (1GigE),
as this interface is readily available in most computers. For 10 Gigabit Ethernet (10GigE) or
PCI Express (PCIe), see the corresponding sections in this manual page.</p>
<div class="section" id="assembling-the-x300-x310-kit">
<h2>Assembling the X300/X310 kit</h2>
<p>Before you can start using your USRP, you might have to assemble the hardware,
if this has not yet happened. Make sure you are grounded (e.g. by touching a radiator)
in order not to damage sensitive electronics through static discharge!</p>
<ol class="arabic simple">
<li>Unscrew the top of your X300/X310 (there are 2 screws which can be easily loosened
using a small Phillips screwdriver).</li>
<li>Insert the daughterboards by inserting them into the slots and optionally screwing
them onto the motherboard.</li>
<li>Connect the RF connectors on the daughterboards to the front panel. In order to avoid
confusion, make sure the internal connections match the labels on the front panel (i.e.
TX/RX is connected to TX/RX).</li>
<li>If you have purchased an internal GPSDO, follow the instructions on
<a class="reference external" href="./gpsdo_x3x0.html">the internal GPSDO manual page</a> to insert the GPSDO. Note that you
will need an external GPS antenna connected to the rear GPS ANT connector in order to
make use of GPS, although your USRP will still be usable without.</li>
<li>Connect the 1 GigE SFP+ transceiver into the Ethernet port 0 and connect the X300/X310 with
your computer.</li>
<li>Connect the power supply and switch on the USRP.</li>
</ol>
</div>
<div class="section" id="network-connectivity">
<h2>Network Connectivity</h2>
<p>The next step is to make sure your computer can talk to the USRP. An otherwise
unconfigured USRP device will have the IP address 192.168.10.2 when using
1GigE.  It is recommended to directly connect your USRP to the computer at
first, and to set the IP address on your machine to 192.168.10.1.</p>
<p>See the <a class="reference external" href="./usrp_x3x0_config.html">system configuration manual</a> on details how
to change your machine's IP address.</p>
<p><strong>Note</strong>: If you are running an automatic IP configuration service such as
Network Manager, make sure it is either deactivated or configured to not manage
the network interface! This can, in extreme cases, lead to you bricking the
USRP!</p>
<p>If your network configuration is correct, running <tt class="docutils literal">uhd_find_devices</tt> will find your USRP
and print some information about it. You will also be able to ping the USRP by running:</p>
<pre class="literal-block">
ping 192.168.10.2
</pre>
<p>on the command line. At this point, you should also run:</p>
<pre class="literal-block">
uhd_usrp_probe --args addr=192.168.10.2
</pre>
<p>to make sure all of your components (daughterboards, GPSDO) are correctly detected and usable.</p>
</div>
<div class="section" id="updating-the-fpga-image">
<h2>Updating the FPGA Image</h2>
<p>If the output from <tt class="docutils literal">uhd_find_devices</tt> and <tt class="docutils literal">uhd_usrp_probe</tt> didn't show any
warnings, you can skip this step. However, if there were errors regarding the
FPGA version compatibility number (compat number), you will have to upate the
FPGA image before you can start using your USRP.</p>
<ol class="arabic">
<li><p class="first">Download the current UHD images. You can use the <tt class="docutils literal">uhd_images_downloader</tt> script provided
with UHD (see also <a class="reference internal" href="#fpga-image-flavors">FPGA Image Flavors</a>).</p>
</li>
<li><p class="first">Use the <tt class="docutils literal">usrp_x3xx_fpga_burner</tt> utility to update the FPGA image. On the command line, run:</p>
<pre class="literal-block">
usrp_x3xx_fpga_burner --addr=192.168.10.2 --type=HGS
</pre>
</li>
</ol>
<blockquote>
<p>If you have installed the images to a non-standard location, you might need to run (change the filename according to your device):</p>
<pre class="literal-block">
usrp_x3xx_fpga_burner --addr=192.168.10.2 --fpga-path &lt;path_to_images&gt;/usrp_x310_fpga_HGS.bit
</pre>
<p>The process of updating the FPGA image will take several minutes. Make sure the process of flashing the image does not get interrupted.</p>
</blockquote>
<p>See <a class="reference internal" href="#load-the-images-onto-the-on-board-flash">Load the Images onto the On-board Flash</a> for more details.</p>
<p>When your FPGA image is up to date, power-cycle the device and re-run
<tt class="docutils literal">uhd_usrp_probe</tt>. There should be no errors at this point, and all components
should be correctly detected. Your USRP is now ready for development!</p>
</div>
</div>
<div class="section" id="hardware-setup">
<h1>Hardware Setup</h1>
<div class="section" id="gigabit-ethernet-1-gige">
<h2>Gigabit Ethernet (1 GigE)</h2>
<div class="section" id="installing-the-usrp-x300-x310">
<h3>Installing the USRP X300/X310</h3>
<ul class="simple">
<li>Prior to installing the module, the host PC can remain powered on.</li>
<li>Plug a 1 Gigabit SFP Transceiver into Ethernet Port 0 on the USRP X300/X310 device.</li>
<li>Use the Ethernet cable to connect the SFP+ transciever on the device to the host computer. For maximum throughput, Ettus Research recommends that you connect each device to its own dedicated Gigabit Ethernet interface on the host computer.</li>
<li>Connect the AC/DC power supply to the device and plug the supply into a wall outlet.</li>
<li>The OS will automatically recognize the device (e.g. when running uhd_find_devices).</li>
</ul>
</div>
</div>
<div class="section" id="ten-gigabit-ethernet-10-gige">
<h2>Ten Gigabit Ethernet (10 GigE)</h2>
<div class="section" id="installing-the-host-ethernet-interface">
<h3>Installing the Host Ethernet Interface</h3>
<p>Ettus Research recommends the Intel Ethernet Converged Network Adapter X520-DA2 interface for communication with the USRP X300/X310 device.
Installation instructions for this interface are available on the official Intel website.</p>
</div>
<div class="section" id="id1">
<h3>Installing the USRP X300/X310</h3>
<ul class="simple">
<li>Prior to installing the module, the host PC can remain powered on.</li>
<li>Use a 10 Gigabit SFP+ cable to connect Ethernet Port 1 on the USRP X300/X310 device to the host computer. For maximum throughput, Ettus Research recommends that you connect the device to its own dedicated Ten Gigabit, Ettus Research recommended Ethernet interface on the host computer.</li>
<li>Connect the AC/DC power supply to the device and plug the supply into a wall outlet.</li>
<li>The OS will automatically recognize the device (e.g. when running uhd_find_devices).</li>
</ul>
<p>The LEDs on the front panel can be useful in debugging hardware and software issues (see Section &quot;Front Panel&quot;)</p>
</div>
</div>
<div class="section" id="pci-express-desktop">
<h2>PCI Express (Desktop)</h2>
<p><em>Important Note: The USRP X-Series provides PCIe connectivity over MXI cable.
We will use the 'MXI' nomenclature for the rest of this manual.</em></p>
<div class="section" id="installing-the-pci-express-interface-kit">
<h3>Installing the PCI Express Interface Kit</h3>
<p>Follow the instructions listed in the <a class="reference external" href="http://www.ni.com/pdf/manuals/371976c.pdf">Set Up Your MXI-Express x4 System</a>
document to setup the NI PCIe-8371 module.</p>
</div>
<div class="section" id="id2">
<h3>Installing the USRP X300/X310</h3>
<ul class="simple">
<li>Prior to installing the module, make sure that the PC is powered off.</li>
<li>Using a MXI-Express Cable connect the USRP X300/X310 to the NI PCIe-8371.</li>
<li>Connect the AC/DC power supply to the device and plug the supply into a wall outlet.</li>
<li>Power on the USRP X300/X310 device using the power switch located in the bottom-right corner of the front panel.</li>
<li>Power on the PC (The OS automatically recognizes the new device)</li>
</ul>
<p>NOTE: The USRP device is not hot-pluggable over PCI Express. Any connection changes with only be detected by your
computer after a successful reboot.</p>
</div>
<div class="section" id="troubleshooting">
<h3>Troubleshooting</h3>
<p>Two possible failure modes are your computer not booting when connected to your
USRP device through MXI-Express, and Windows not properly discovering your
devices (for example, there is a yellow exclamation point on a PCI to PCI
bridge in Windows Device Manager, despite drivers for all devices being
installed). These situations often are due to programming errors in PCI Express
device configuration of the BIOS. To use this software, you need a MXI-Express
device that supports Mode 1 operation.
Refer to <a class="reference external" href="http://download.ni.com/support/softlib//PXI/MXIe%20Compatibility%20Software/1.5.0/readme.html#SupportedHardware">NI MXI-Express BIOS Compatibility Software Readme</a>
for more information.</p>
<p>The BIOS Compatibility Software can be downloaded for Windows from the <a class="reference external" href="http://www.ni.com/download/mxi-express-bios-compatibility-software-1.5/3764/en/">MXI-Express BIOS Compatibility Software</a> page</p>
</div>
</div>
<div class="section" id="pci-express-laptop">
<h2>PCI Express (Laptop)</h2>
<p><em>Important Note: The USRP X-Series provides PCIe connectivity over MXI cable.
We will use the 'MXI' nomenclature for the rest of this manual.</em></p>
<div class="section" id="installing-the-pci-express-card">
<h3>Installing the PCI Express Card</h3>
<p>Follow the instructions listed in the “Installing an NI ExpressCard-8360 Host Card” section of the
<a class="reference external" href="http://www.ni.com/pdf/manuals/373259d.pdf#page=10">Set Up Your MXI-Express x1 System</a>
document to setup the NI ExpressCard-8360B module.</p>
</div>
<div class="section" id="id3">
<h3>Installing the USRP X300/X310</h3>
<p>Because a laptop computer is not grounded, follow this procedure to safely connect a laptop
computer to your USRP device.</p>
<ul class="simple">
<li>Connect the AC/DC power supply to the device and plug the supply into a wall outlet. Ensure that the USRP device is powered off.</li>
<li>Touch the NI ExpressCard-8360B and a metal part of the USRP device simultaneously. Do not install the NI ExpressCard-8360B into the laptop computer yet.</li>
<li>Connect the cable to the NI ExpressCard-8360B and USRP.</li>
<li>Plug the NI ExpressCard-8360B into an available ExpressCard slot. If your laptop computer is already running (or hibernating, suspended, etc) when you install an NI ExpressCard-8360B, you must reboot to detect the USRP. Otherwise, the USRP is detected when you start your computer.</li>
</ul>
<p>NOTE: The USRP device is not hot-pluggable over PCI Express. Any connection changes will only be detected by your computer after a successful reboot.</p>
</div>
</div>
</div>
<div class="section" id="on-board-jtag-programmer">
<h1>On-Board JTAG Programmer</h1>
<p>The USRP X3x0 includes an on-board JTAG programmer, built into the motherboard.
To connect to this JTAG device, simply connect your computer to the USB JTAG
port on the front of the X3x0 device. You may now use the JTAG programmer in
the same way you would use any other, including:</p>
<ul class="simple">
<li><a class="reference external" href="http://www.xilinx.com/support/download/index.htm">Xilinx Programming Tools (ISE, iMPACT)</a></li>
<li><a class="reference external" href="http://www.xilinx.com/tools/cspro.htm">Xilinx Chipscope</a></li>
<li><a class="reference external" href="https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&amp;Prod=ADEPT2">Digilent ADEPT</a></li>
</ul>
<p>In order to use the JTAG programmer with the Xilinx tools, the Digilent drivers and plugin have to be installed first.
Although recent versions of ISE ship with the driver, it has to still be manually installed.</p>
<p>Note: Sometimes the ISE shipped versions are newer than the ones available via Digilent's website. It is therefore advisable to
use the ISE provided plugin and drivers.</p>
<p>To install first locate your ISE installation path (default is /opt/Xilinx/&lt;Version&gt;).</p>
<p><strong>LINUX</strong></p>
<pre class="literal-block">
sudo &lt;ise install path&gt;/ISE_DS/common/bin/lin64/digilent/install_digilent.sh
</pre>
<p>Afterwards either reboot or force udev to reload its rules by:</p>
<pre class="literal-block">
sudo udevadm control --reload
</pre>
<p>The USRP-X series device should now be usable with all the tools mentioned above.</p>
</div>
<div class="section" id="load-fpga-images-onto-the-device">
<h1>Load FPGA Images onto the Device</h1>
<p>The USRP-X Series device ships with a bitstream pre-programmed in the flash,
which is automatically loaded onto the FPGA during device power-up. However,
a new FPGA image can be configured over the PCI Express interface or the
on-board USB-JTAG programmer. This process can be seen as a &quot;one-time load&quot;, in
that if you power-cycle the device, it will not retain the FPGA image.</p>
<p>Please note that this process is <em>different</em> than replacing the FPGA image
stored in the flash, which will then be automatically loaded the next time the
device is reset.</p>
<div class="section" id="fpga-image-flavors">
<h2>FPGA Image Flavors</h2>
<p>The USRP-X Series devices contains two SFP+ ports for the two Ethernet channels.
Because the SFP+ ports support both 1 Gigabit (SFP) and 10 Gigabit (SFP+)
transceivers, several FPGA images are shipped with UHD to determine the
behavior of the above interfaces.</p>
<table border="1" class="docutils">
<colgroup>
<col width="30%" />
<col width="35%" />
<col width="35%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">FPGA Image Flavor</th>
<th class="head">SFP+ Port 0 Interface</th>
<th class="head">SFP+ Port 1 Interface</th>
</tr>
</thead>
<tbody valign="top">
<tr><td>HGS (Default)</td>
<td>1 Gigabit Ethernet</td>
<td>10 Gigabit Ethernet</td>
</tr>
<tr><td>XGS</td>
<td>10 Gigabit Ethernet</td>
<td>10 Gigabit Ethernet</td>
</tr>
</tbody>
</table>
<p>FPGA images are shipped in 2 formats:</p>
<ul class="simple">
<li><strong>LVBITX</strong>: LabVIEW FPGA configuration bitstream format (for use over PCI Express and Ethernet)</li>
<li><strong>BIT</strong>: Xilinx configuration bitstream format (for use over Ethernet and JTAG)</li>
</ul>
<p>To get the latest images, simply use the uhd_images_downloader script:</p>
<p><strong>UNIX:</strong></p>
<pre class="literal-block">
sudo uhd_images_downloader
</pre>
<p><strong>Windows:</strong></p>
<pre class="literal-block">
&lt;path_to_python.exe&gt; &lt;install-path&gt;/bin/uhd_images_downloader.py
</pre>
</div>
<div class="section" id="use-pci-express-to-load-fpga-images">
<h2>Use PCI Express to load FPGA images</h2>
<p>UHD requires a valid LabVIEW FPGA configuration bitstream file (LVBITX) to use the USRP-X Series
device over the PCI Express bus. LabVIEW FPGA is <strong>NOT</strong> required to use UHD with a USRP-X Series device.
Because FPGA configuration is a part of normal operation over PCI Express, there is no setup required
before running UHD.</p>
<p>The <strong>fpga</strong> tag can be set in the optional device args passed to indicate the FPGA image flavor to UHD.
If the above tag is specified, UHD will attempt to load the FPGA image with the requested flavor from the
UHD images directory. If the tag is not specified, UHD will automatically detect the flavor of the image
and attempt to load the corresponding configuration bitstream onto the device. Note that if UHD detects
that the requested image is already loaded onto the FPGA then it will not reload it.</p>
</div>
<div class="section" id="use-jtag-to-load-fpga-images">
<h2>Use JTAG to load FPGA images</h2>
<p>The USRP-X Series device features an on-board USB-JTAG programmer that can be accessed on the front-panel
of the device. The iMPACT tool in the <a class="reference external" href="http://www.xilinx.com/support/download/index.htm">Xilinx Programming Tools</a> package can be used to load an image over
the JTAG interface. This can be useful for unbricking devices.</p>
<p>If you have iMPACT installed, you can use the impact_jtag_programmer.sh tool to install images. Make sure your X3x0 is powered on and connected to your computer using the front panel USB JTAG connector (USB 2.0 is fine for this). Then run the tool:</p>
<pre class="literal-block">
&lt;path_to_uhd_tools&gt;/impact_jtag_programmer.sh --fpga-path=&lt;fpga_image_path&gt;
</pre>
</div>
</div>
<div class="section" id="load-the-images-onto-the-on-board-flash">
<h1>Load the Images onto the On-board Flash</h1>
<p>To change the FPGA image stored in the on-board flash, the USRP-X Series device
can be reprogrammed over the network or PCI Express. Once you have programmed an
image into the flash, that image will be automatically loaded on the FPGA
during the device boot-up sequence.</p>
<p><strong>Note:</strong>
Different hardware revisions require different FPGA images.
Determine the revision number from the sticker on the rear of the device.
If you are manually specifying an FPGA path, the utility will not try to
detect your device information, and you will need to use this number to
select which image to burn.</p>
<p><strong>Note:</strong>
The burner utility will default to using the appropriate BIT file if no custom
FPGA image path is specified, but it is compatible with BIN, BIT, and LVBITX
images.</p>
<div class="section" id="use-the-burner-tool-over-ethernet">
<h2>Use the burner tool over Ethernet</h2>
<pre class="literal-block">
Automatic FPGA path, detect image type:
usrp_x3xx_fpga_burner --addr=&lt;IP address&gt;

Automatic FPGA path, select image type:
usrp_x3xx_fpga_burner --addr=&lt;IP address&gt; --type=&lt;HGS or XGS&gt;

Manual FPGA path:
usrp_x3xx_fpga_burner --addr=&lt;IP address&gt; --fpga-path=&lt;path to FPGA image&gt;
</pre>
</div>
<div class="section" id="use-the-burner-tool-over-pci-express">
<h2>Use the burner tool over PCI Express</h2>
<pre class="literal-block">
Automatic FPGA path, detect image type:
usrp_x3xx_fpga_burner --resource=&lt;NI-RIO resource&gt;

Automatic FPGA path, select image type:
usrp_x3xx_fpga_burner --resource=&lt;NI-RIO resource&gt; --type=&lt;HGS or XGS&gt;

Manual FPGA path:
usrp_x3xx_fpga_burner --resource=&lt;NI-RIO resource&gt; --fpga-path=&lt;path to FPGA image&gt;
</pre>
</div>
<div class="section" id="device-recovery-and-bricking">
<h2>Device recovery and bricking</h2>
<p>It is possible to put the device into an unusable state by loading bad images (&quot;bricking&quot;).
Fortunately, the USRP-X Series device can be loaded with a good image temporarily using the USB-JTAG interface.
Once booted into the safe image, the user can once again load images onto the device over Ethernet or PCI Express.</p>
</div>
</div>
<div class="section" id="setup-networking">
<h1>Setup Networking</h1>
<p>The USRP-X Series only supports Gigabit and Ten Gigabit Ethernet and will not work with a 10/100 Mbps interface.</p>
<p><strong>Please note that 10 Gigabit Ethernet defines the protocol, not necessary the
medium. For example, you may use 10GigE over optical with optical SFP+
transceiver modules.</strong></p>
<div class="section" id="setup-the-host-interface">
<h2>Setup the host interface</h2>
<p>The USRP-X Series communicates at the IP/UDP layer over the Gigabit and Ten Gigabit Ethernet.
The default IP address for the USRP X300/X310 device depends on the Ethernet Port and interface used.
You must configure the host Ethernet interface with a static IP address on the same subnet as the connected
device to enable communication, as shown in the following table:</p>
<table border="1" class="docutils">
<colgroup>
<col width="15%" />
<col width="25%" />
<col width="16%" />
<col width="16%" />
<col width="15%" />
<col width="15%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">&nbsp;Ethernet
Interface</th>
<th class="head">USRP
Ethernet Port</th>
<th class="head">&nbsp;Default USRP
IP Address</th>
<th class="head">&nbsp;Host Static
IP Address</th>
<th class="head">Host Static
Subnet Mask</th>
<th class="head">Address
EEPROM key</th>
</tr>
</thead>
<tbody valign="top">
<tr><td>Gigabit</td>
<td>Port 0 (HGS Image)</td>
<td>192.168.10.2</td>
<td>192.168.10.1</td>
<td>255.255.255.0</td>
<td><tt class="docutils literal"><span class="pre">ip-addr0</span></tt></td>
</tr>
<tr><td>Ten Gigabit</td>
<td>Port 0 (XGS Image)</td>
<td>192.168.30.2</td>
<td>192.168.30.1</td>
<td>255.255.255.0</td>
<td><tt class="docutils literal"><span class="pre">ip-addr2</span></tt></td>
</tr>
<tr><td>Ten Gigabit</td>
<td>Port 1 (HGS/XGS Image)</td>
<td>192.168.40.2</td>
<td>192.168.40.1</td>
<td>255.255.255.0</td>
<td><tt class="docutils literal"><span class="pre">ip-addr3</span></tt></td>
</tr>
</tbody>
</table>
<p>As you can see, the X300/X310 actually stores different IP addresses, which all address the device differently: Each combination of Ethernet port and interface type (i.e., Gigabit or Ten Gigabit) has its own IP address. As an example, when addressing the device through 1 Gigabit Ethernet on its first port (Port 0), the relevant IP address is the one stored in the EEPROM with key <tt class="docutils literal"><span class="pre">ip-addr0</span></tt>, or 192.168.10.2 by default.</p>
<p>See the <a class="reference external" href="./usrp_x3x0_config.html">system configuration manual</a> on details
how to change your machine's IP address and MTU size to work well with the X300.</p>
</div>
<div class="section" id="multiple-devices-per-host">
<h2>Multiple devices per host</h2>
<p>For maximum throughput, one Ethernet interface per USRP is recommended,
although multiple devices may be connected via an Ethernet switch.
In any case, each Ethernet interface should have its own subnet,
and the corresponding USRP device should be assigned an address in that subnet.
Example:</p>
<p><strong>Configuration for USRP-X Series device 0:</strong></p>
<ul class="simple">
<li>Ethernet interface IPv4 address: <strong>192.168.10.1</strong></li>
<li>Ethernet interface subnet mask: <strong>255.255.255.0</strong></li>
<li>USRP-X Series device IPv4 address: <strong>192.168.10.2</strong></li>
</ul>
<p><strong>Configuration for USRP-X Series device 1:</strong></p>
<ul class="simple">
<li>Ethernet interface IPv4 address: <strong>192.168.110.1</strong></li>
<li>Ethernet interface subnet mask: <strong>255.255.255.0</strong></li>
<li>USRP-X Series device IPv4 address: <strong>192.168.110.2</strong></li>
</ul>
</div>
<div class="section" id="change-the-usrp-s-ip-address">
<h2>Change the USRP's IP address</h2>
<p>You may need to change the USRP's IP address for several reasons:</p>
<ul class="simple">
<li>to satisfy your particular network configuration</li>
<li>to use multiple USRP-X Series devices on the same host computer</li>
<li>to set a known IP address into USRP (in case you forgot)</li>
</ul>
<p>To change the USRP's IP address,
you must know the current address of the USRP,
and the network must be setup properly as described above.
You must also know which IP address of the X300 you want to change, as identified by their address EEPROM key (e.g. <tt class="docutils literal"><span class="pre">ip-addr0</span></tt>, see the table above).
Run the following commands:</p>
<p><strong>UNIX:</strong></p>
<pre class="literal-block">
cd &lt;install-path&gt;/lib/uhd/utils
./usrp_burn_mb_eeprom --args=&lt;optional device args&gt; --key=ip-addr0 --val=192.168.10.3
</pre>
<p><strong>Windows:</strong></p>
<pre class="literal-block">
cd &lt;install-path&gt;\lib\uhd\utils
usrp_burn_mb_eeprom.exe --args=&lt;optional device args&gt; --key=ip-addr0 --val=192.168.10.3
</pre>
</div>
</div>
<div class="section" id="addressing-the-device">
<h1>Addressing the Device</h1>
<div class="section" id="single-device-configuration">
<h2>Single device configuration</h2>
<p>In a single-device configuration,
the USRP device must have a unique IPv4 address on the host computer.
The USRP can be identified through its IPv4 address, resolvable hostname, NI-RIO resource name or by other means.
See the application notes on <a class="reference external" href="./identification.html">device identification</a>.
Use this addressing scheme with the <strong>multi_usrp</strong> interface (not a typo!).</p>
<p>Example device address string representation for a USRP-X Series device with IPv4 address <strong>192.168.10.2</strong>:</p>
<pre class="literal-block">
addr=192.168.10.2
</pre>
<p>Example device address string representation for a USRP-X Series device with RIO resource name <strong>RIO0</strong> over PCI Express:</p>
<pre class="literal-block">
resource=RIO0
</pre>
</div>
<div class="section" id="multiple-device-configuration">
<h2>Multiple device configuration</h2>
<p>In a multi-device configuration,
each USRP device must have a unique IPv4 address on the host computer.
The device address parameter keys must be suffixed with the device index.
Each parameter key should be of the format &lt;key&gt;&lt;index&gt;.
Use this addressing scheme with the <strong>multi_usrp</strong> interface.</p>
<ul class="simple">
<li>The order in which devices are indexed corresponds to the indexing of the transmit and receive channels.</li>
<li>The key indexing provides the same granularity of device identification as in the single device case.</li>
</ul>
<p>Example device address string representation for 2 USRPs with IPv4 addresses <strong>192.168.10.2</strong> and <strong>192.168.20.2</strong>:</p>
<pre class="literal-block">
addr0=192.168.10.2, addr1=192.168.20.2
</pre>
</div>
</div>
<div class="section" id="communication-problems">
<h1>Communication Problems</h1>
<p>When setting up a development machine for the first time,
you may have various difficulties communicating with the USRP device.
The following tips are designed to help narrow down and diagnose the problem.</p>
<div class="section" id="runtimeerror-no-control-response">
<h2>RuntimeError: no control response</h2>
<p>This is a common error that occurs when you have set the subnet of your network
interface to a different subnet than the network interface of the USRP device.  For
example, if your network interface is set to <strong>192.168.20.1</strong>, and the USRP device is
<strong>192.168.10.2</strong> (note the difference in the third numbers of the IP addresses), you
will likely see a 'no control response' error message.</p>
<p>Fixing this is simple - just set the your host PC's IP address to the same
subnet as that of your USRP device. Instructions for setting your IP address are in the
previous section of this documentation.</p>
</div>
<div class="section" id="firewall-issues">
<h2>Firewall issues</h2>
<p>When the IP address is not specified,
the device discovery broadcasts UDP packets from each Ethernet interface.
Many firewalls will block the replies to these broadcast packets.
If disabling your system's firewall
or specifying the IP address yields a discovered device,
then your firewall may be blocking replies to UDP broadcast packets.
If this is the case, we recommend that you disable the firewall
or create a rule to allow all incoming packets with UDP source port <strong>49152</strong>.</p>
</div>
<div class="section" id="ping-the-device">
<h2>Ping the device</h2>
<p>The USRP device will reply to ICMP echo requests (&quot;ping&quot;).
A successful ping response means that the device has booted properly
and that it is using the expected IP address.</p>
<pre class="literal-block">
ping 192.168.10.2
</pre>
</div>
<div class="section" id="usrp-device-not-enumerated-linux">
<h2>USRP device not enumerated (Linux)</h2>
<p>UHD requires the RIO device manager service to be running in order to
communicate with an X-Series USRP over PCIe.  This service is installed as
a part of the USRP RIO (or NI-USRP) installer. On Linux, the service is not
started at system boot time, and is left to the user to control. To start it,
run the following command:</p>
<pre class="literal-block">
sudo niusrprio_pcie start
</pre>
<p>If the device still does not enumerate after starting the device manager, make sure that the host computer
has successfully detected it. You can do so by running the following command:</p>
<pre class="literal-block">
lspci -k -d 1093:c4c4
</pre>
<p>A device similar to the following should be detected:</p>
<pre class="literal-block">
$ lspci -k -d 1093:c4c4
04:00.0 Signal processing controller: National Instruments ...
        Subsystem: National Instruments Device 76ca
        Kernel driver in use: niusrpriok_shipped
</pre>
<ul class="simple">
<li>A USRP X300 should appear with 'Subsystem: National Instruments Device 7736'</li>
<li>A USRP X310 should appear with 'Subsystem: National Instruments Device 76ca'</li>
</ul>
</div>
<div class="section" id="usrp-device-not-enumerated-windows">
<h2>USRP device not enumerated (Windows)</h2>
<p>UHD requires the RIO device manager service to be running in order to
communicate with an X-Series USRP over PCIe.
This service is installed as a part of the USRP RIO (or NI-USRP) installer. On Windows, it can be found in
the <strong>Services</strong> section in the Control Panel and it is started at system boot time. To ensure that the
service is indeed started, navigate to the Services tag in the Windows Task Manager and ensure that the
status of <strong>niusrpriorpc</strong> is &quot;Running&quot;.</p>
<p>If the device still does not enumerate after starting the device manager, make sure that the host computer
has successfully detected it. You can do so by checking if your device shows up in the Windows Device Manager.</p>
</div>
<div class="section" id="monitor-the-host-network-traffic">
<h2>Monitor the host network traffic</h2>
<p>Use Wireshark to monitor packets sent to and received from the device.</p>
</div>
<div class="section" id="observe-ethernet-port-leds">
<h2>Observe Ethernet port LEDs</h2>
<p>When there is network traffic arriving at the Ethernet port, LEDs will light up.
You can use this to make sure the network connection is correctly set up, e.g.
by pinging the USRP and making sure the LEDs start to blink.</p>
</div>
</div>
<div class="section" id="hardware-notes">
<h1>Hardware Notes</h1>
<div class="section" id="front-panel">
<h2>Front Panel</h2>
<img alt="./res/x3x0_fp_overlay.png" class="align-left" src="./res/x3x0_fp_overlay.png" />
<ul class="simple">
<li><strong>JTAG</strong>: USB connector for the on-board USB-JTAG programmer</li>
<li><strong>RF A Group</strong><ul>
<li><strong>TX/RX LED</strong>: Indicates that data is streaming on the TX/RX channel on daughterboard A</li>
<li><strong>RX2 LED</strong>: Indicates that data is streaming on the RX2 channel on daughterboard A</li>
</ul>
</li>
<li><strong>REF</strong>: Indicates that the external Reference Clock is locked</li>
<li><strong>PPS</strong>: Indicates a valid PPS signal by pulsing once per second</li>
<li><strong>AUX I/O</strong>: Front panel GPIO connector.</li>
<li><strong>GPS</strong>: Indicates that GPS reference is locked</li>
<li><strong>LINK</strong>: Indicates that the host computer is communicating with the device (Activity)</li>
<li><strong>RF B Group</strong><ul>
<li><strong>TX/RX LED</strong>: Indicates that data is streaming on the TX/RX channel on daughterboard B</li>
<li><strong>RX2 LED</strong>: Indicates that data is streaming on the RX2 channel on daughterboard B</li>
</ul>
</li>
<li><strong>PWR</strong>: Power switch</li>
</ul>
</div>
<div class="section" id="rear-panel">
<h2>Rear Panel</h2>
<img alt="./res/x3x0_rp_overlay.png" class="align-left" src="./res/x3x0_rp_overlay.png" />
<ul class="simple">
<li><strong>PWR</strong>: Connector for the USRP-X Series power supply</li>
<li><strong>1G/10G ETH</strong>: SFP+ ports for Ethernet interfaces</li>
<li><strong>REF OUT</strong>: Output port for the exported reference clock</li>
<li><strong>REF IN</strong>: Reference clock input</li>
<li><strong>PCIe x4</strong>: Connector for Cabled PCI Express link</li>
<li><strong>PPS/TRIG OUT</strong>: Output port for the PPS signal</li>
<li><strong>PPS/TRIG IN</strong>: Input port for the PPS signal</li>
<li><strong>GPS</strong>: Connection for the GPS antenna</li>
</ul>
</div>
<div class="section" id="ref-clock-10-mhz">
<h2>Ref Clock - 10 MHz</h2>
<p>Using an external 10 MHz reference clock, a square wave will offer the best phase
noise performance, but a sinusoid is acceptable.  The power level of the reference clock cannot exceed +15 dBm.</p>
</div>
<div class="section" id="pps-pulse-per-second">
<h2>PPS - Pulse Per Second</h2>
<p>Using a PPS signal for timestamp synchronization requires a square wave signal with the following a 5Vpp amplitude.</p>
<p>To test the PPS input, you can use the following tool from the UHD examples:</p>
<ul class="simple">
<li><strong>&lt;args&gt;</strong> are device address arguments (optional if only one USRP device is on your machine)</li>
</ul>
<pre class="literal-block">
cd &lt;install-path&gt;/lib/uhd/examples
./test_pps_input --args=&lt;args&gt;
</pre>
</div>
<div class="section" id="internal-gpsdo">
<h2>Internal GPSDO</h2>
<p>Please see the <a class="reference external" href="./gpsdo_x3x0.html">Internal GPSDO Application Notes</a>
for information on configuring and using the internal GPSDO.</p>
</div>
<div class="section" id="front-panel-gpio">
<h2>Front Panel GPIO</h2>
<div class="section" id="connector">
<h3>Connector</h3>
<img alt="./res/x3x0_gpio_conn.png" class="align-left" src="./res/x3x0_gpio_conn.png" />
</div>
<div class="section" id="pin-mapping">
<h3>Pin Mapping</h3>
<ul class="simple">
<li>Pin 1:  +3.3V</li>
<li>Pin 2:  Data[0]</li>
<li>Pin 3:  Data[1]</li>
<li>Pin 4:  Data[2]</li>
<li>Pin 5:  Data[3]</li>
<li>Pin 6:  Data[4]</li>
<li>Pin 7:  Data[5]</li>
<li>Pin 8:  Data[6]</li>
<li>Pin 9:  Data[7]</li>
<li>Pin 10: Data[8]</li>
<li>Pin 11: Data[9]</li>
<li>Pin 12: Data[10]</li>
<li>Pin 13: Data[11]</li>
<li>Pin 14: 0V</li>
<li>Pin 15: 0V</li>
</ul>
<p>Please see the <a class="reference external" href="./gpio_api.html">GPIO API Notes</a> for information on configuring and using the GPIO bus.</p>
</div>
</div>
<div class="section" id="debugging-custom-fpga-designs-with-xilinx-chipscope">
<h2>Debugging custom FPGA designs with Xilinx Chipscope</h2>
<p>Xilinx chipscope allows for debugging custom FPGA designs similar to a logic analyzer.
USRP-X series devices can be used with Xilinx chipscope using the onboard USB JTAG connector.</p>
<p>Further information on how to use Chipscope can be found in the Xilinx Chipscope Pro Software and Cores User Guide (UG029).</p>
</div>
</div>
<div class="section" id="miscellaneous">
<h1>Miscellaneous</h1>
<div class="section" id="multiple-rx-channels">
<h2>Multiple RX channels</h2>
<p>There are two complete DDC and DUC DSP chains in the FPGA. In the single channel case,
only one chain is ever used. To receive from both channels, the user must set the <strong>RX</strong> or <strong>TX</strong>
subdevice specification.</p>
<p>In the following example, a TVRX2 is installed.
Channel 0 is sourced from subdevice <strong>RX1</strong>,
and channel 1 is sourced from subdevice <strong>RX2</strong> (<strong>RX1</strong> and <strong>RX2</strong> are antenna connectors on the TVRX2 daughterboard).</p>
<pre class="literal-block">
usrp-&gt;set_rx_subdev_spec(&quot;A:RX1 A:RX2&quot;);
</pre>
</div>
<div class="section" id="available-sensors">
<h2>Available Sensors</h2>
<p>The following sensors are available for the USRP-X Series motherboards;
they can be queried through the API.</p>
<ul class="simple">
<li><strong>ref_locked</strong> - clock reference locked (internal/external)</li>
<li>Other sensors are added when the GPSDO is enabled</li>
</ul>
</div>
</div>
</div>
<div class="footer">
<hr class="footer" />
Generated on: 2014-10-15 11:47 UTC.

</div>
</body>
</html>