diff options
Diffstat (limited to 'host/docs')
-rw-r--r-- | host/docs/Doxyfile.in | 2 | ||||
-rw-r--r-- | host/docs/calibration.dox | 4 | ||||
-rw-r--r-- | host/docs/dboards.dox | 2 | ||||
-rw-r--r-- | host/docs/devices.dox | 44 | ||||
-rw-r--r-- | host/docs/general.dox | 14 | ||||
-rw-r--r-- | host/docs/gpio_api.dox | 2 | ||||
-rw-r--r-- | host/docs/gpsdo.dox | 2 | ||||
-rw-r--r-- | host/docs/gpsdo.rst | 87 | ||||
-rw-r--r-- | host/docs/identification.dox | 2 | ||||
-rw-r--r-- | host/docs/identification.rst | 130 | ||||
-rw-r--r-- | host/docs/images.dox | 9 | ||||
-rw-r--r-- | host/docs/mainpage.dox | 67 | ||||
-rw-r--r-- | host/docs/octoclock.dox | 2 | ||||
-rw-r--r-- | host/docs/sync.dox | 6 | ||||
-rw-r--r-- | host/docs/transport.dox | 2 | ||||
-rw-r--r-- | host/docs/uhd.dox | 16 | ||||
-rw-r--r-- | host/docs/usrp1.dox | 2 | ||||
-rw-r--r-- | host/docs/usrp1.rst | 111 | ||||
-rw-r--r-- | host/docs/usrp2.dox | 4 | ||||
-rw-r--r-- | host/docs/usrp2.rst | 474 | ||||
-rw-r--r-- | host/docs/usrp_b100.dox | 2 | ||||
-rw-r--r-- | host/docs/usrp_b200.dox | 6 | ||||
-rw-r--r-- | host/docs/usrp_e1x0.dox | 4 | ||||
-rw-r--r-- | host/docs/usrp_e3x0.dox | 4 | ||||
-rw-r--r-- | host/docs/usrp_x3x0.dox | 8 |
25 files changed, 118 insertions, 888 deletions
diff --git a/host/docs/Doxyfile.in b/host/docs/Doxyfile.in index d48e50fc4..6d38a9a79 100644 --- a/host/docs/Doxyfile.in +++ b/host/docs/Doxyfile.in @@ -672,7 +672,7 @@ INPUT_ENCODING = UTF-8 # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl -FILE_PATTERNS = *.hpp *.dox *.h +FILE_PATTERNS = *.hpp *.dox *.h *.ipp # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. diff --git a/host/docs/calibration.dox b/host/docs/calibration.dox index 42a5825ca..603ae22e4 100644 --- a/host/docs/calibration.dox +++ b/host/docs/calibration.dox @@ -1,4 +1,4 @@ -/*! \page page_calibration Calibration Application Notes +/*! \page page_calibration Device Calibration \tableofcontents @@ -55,7 +55,7 @@ daughterboard's EEPROM: : <install dir>/lib/uhd/utils/usrp_burn_db_eeprom --ser=<desired serial> --args=<optional device args> -\subsection calibration_ Calibration Data +\subsection calibration_data Calibration Data Calibration files are stored in the user's home/application directory. They can easily be moved from machine to another by copying the "cal" diff --git a/host/docs/dboards.dox b/host/docs/dboards.dox index b25656b5b..13f3ccadd 100644 --- a/host/docs/dboards.dox +++ b/host/docs/dboards.dox @@ -1,4 +1,4 @@ -/*! \page page_dboards Daughterboard Application Notes +/*! \page page_dboards Daughterboards \tableofcontents diff --git a/host/docs/devices.dox b/host/docs/devices.dox new file mode 100644 index 000000000..295cd999f --- /dev/null +++ b/host/docs/devices.dox @@ -0,0 +1,44 @@ +/*! \page page_devices Devices & Usage Manual + +## General Usage Manuals + +\li \subpage page_general "Notes on tuning, subdev specs, overflow/underflow, other miscellaneous topics" +\li \subpage page_identification +\li \subpage page_images +\li \subpage page_transport +\li \subpage page_sync +\li \subpage page_calibration + +## USRP N-Series Devices + +\li \subpage page_usrp2 + +## USRP B-Series Devices + +\li \subpage page_usrp_b100 +\li \subpage page_usrp_b200 +\li \subpage page_usrp1 + +## USRP E-Series Devices + +\li \subpage page_usrp_e1x0 +\li \subpage page_usrp_e3x0 + +## USRP X-Series Devices + +\li \subpage page_usrp_x3x0 + +## USRP Legacy Series + +\li \subpage page_usrp2 + +## Daughterboards + +\li \subpage page_dboards + +## OctoClock + +\li \subpage page_octoclock + +*/ +// vim:ft=doxygen: diff --git a/host/docs/general.dox b/host/docs/general.dox index 3a344ffe7..1da284057 100644 --- a/host/docs/general.dox +++ b/host/docs/general.dox @@ -15,15 +15,15 @@ In a typical use-case, the user specifies an overall center frequency for the signal chain. The RF front-end will be tuned as close as possible to the center frequency, and the DSP will account for the error in tuning between target frequency and actual frequency. The user may -also explicitly control both stages of tuning through through the **tune_request_t** object, which allows for more advanced tuning. +also explicitly control both stages of tuning through through the uhd::tune_request_t object, which allows for more advanced tuning. In general, Using UHD software's advanced tuning is highly recommended as it makes it easy to move the DC component out of your band-of-interest. This can be done by passing your desired LO offset to -the **tune_request_t** object, and letting the UHD software handle the +the uhd::tune_request_t object, and letting the UHD software handle the rest. -The **tune_request_t** object can also be used with certain +The uhd::tune_request_t object can also be used with certain daughterboards to use Integer-N tuning instead of the default fractional tuning, allowing for better spur performance. The daughterboards that support this functionality are: @@ -102,8 +102,8 @@ Ex: The subdev spec markup string to select a BasicRX on slot B. \subsection general_subdev_slotnames USRP Family Motherboard Slot Names -All USRP family motherboards have a first slot named **A:**. The USRP1 and the X3x0 -have two daughterboard subdevice slots, known as **A:** and **B:**. +All USRP family motherboards have a first slot named **A:**. The USRP1, the X3x0 +and the B210 have two daughterboard subdevice slots, known as **A:** and **B:**. \subsection general_subdev_dbnames Daughterboard Frontend Names @@ -157,8 +157,8 @@ For the most part, UHD software is thread-safe. Please observe the following limitations: <b>Fast-path thread requirements:</b> There are three fast-path methods for -a device: `send()`, `recv()`, and `recv_async_msg()`. All three -methods are thread-safe and can be called from different thread +a device: uhd::tx_streamer::send(), uhd::rx_streamer::recv(), and uhd::tx_streamer::recv_async_msg(). +All three methods are thread-safe and can be called from different thread contexts. For performance, the user should call each method from a separate thread context. These methods can also be used in a non-blocking fashion by using a timeout of zero. diff --git a/host/docs/gpio_api.dox b/host/docs/gpio_api.dox index febd1f7a8..186f28093 100644 --- a/host/docs/gpio_api.dox +++ b/host/docs/gpio_api.dox @@ -89,7 +89,7 @@ one more: \subsection xgpio_fpanel_xample An Example The front panel X3x0 GPIO bank is enumerated in the motherboard property -tree ('*<mb_path>/gpio/FP0/\*'), the E3x0 internal GPIO bank as ('*<mb_path>/gpio/INT0/\*') and so are easily accessible through +tree (`<mb_path>/gpio/FP0/\*`), the E3x0 internal GPIO bank as (`<mb_path>/gpio/INT0/\`) and so are easily accessible through the standard uhd::usrp::multi_usrp UHD interface. You can discover this using the uhd::usrp::multi_usrp::get_gpio_banks() function. diff --git a/host/docs/gpsdo.dox b/host/docs/gpsdo.dox index 397bde297..b20242c8f 100644 --- a/host/docs/gpsdo.dox +++ b/host/docs/gpsdo.dox @@ -1,4 +1,4 @@ -/*! \page page_gpsdo Internal GPSDO Application Notes (USRP-N2x0/E1X0 Models) +/*! \page page_gpsdo Internal GPSDO (USRP-N2x0/E1X0 Models) \tableofcontents diff --git a/host/docs/gpsdo.rst b/host/docs/gpsdo.rst deleted file mode 100644 index 5afd9d78d..000000000 --- a/host/docs/gpsdo.rst +++ /dev/null @@ -1,87 +0,0 @@ -======================================================================== -UHD - Internal GPSDO Application Notes (USRP-N2x0/E1X0 Models) -======================================================================== - -.. contents:: Table of Contents - -This application note describes the use of integrated GPS-disciplined oscillators (GPSDOs) for -the USRP N-Series and E1xx. For information regarding the GPSDO that is compatible with -the USRP X-Series, please see: - -`USRP-X3x0 Internal GPSDO Device Manual <./gpsdo_x3x0.html>`_ - -======= - ------------------------------------------------------------------------- -Specifications ------------------------------------------------------------------------- -* **Receiver type**: 50 channel with WAAS, EGNOS, MSAS -* **10MHz ADEV**: 1e-11 over >24h -* **1PPS RMS jitter**: <50ns 1-sigma -* **Holdover**: <11us over 3h -* **Phase noise**: - - * **1Hz:** -80 dBc/Hz - * **10Hz:** -110 dBc/Hz - * **100Hz:** -135 dBc/Hz - * **1kHz:** -145 dBc/Hz - * **10kHz:** <-145 dBc/Hz - -**Antenna Types:** - -The GPSDO is capable of supplying a 3V for active GPS antennas or supporting passive antennas. - ------------------------------------------------------------------------- -Installation Instructions ------------------------------------------------------------------------- -Instructions for mounting the GPSDO kit onto your USRP device can be found here: -`http://www.ettus.com/content/files/gpsdo-kit_2.pdf <http://www.ettus.com/content/files/gpsdo-kit_2.pdf>`_ - -******************************************** -Post-installation Task (N-Series only) -******************************************** - -**Note:** The following instructions are only necessary for UHD 3.4.* and below. - -This is necessary if you require absolute GPS time in your application -or need to communicate with the GPSDO to obtain location, satellite info, etc. -If you only require 10 MHz and PPS signals for reference or MIMO use -(see the `Synchronization Application Notes <./sync.html>`_), -it is not necessary to perform this step. - -To configure the USRP to communicate with the GPSDO, use the -**usrp_burn_mb_eeprom** utility: - -:: - - cd <install-path>/lib/uhd/utils - ./usrp_burn_mb_eeprom --args=<optional device args> --values="gpsdo=internal" - - -- restore original setting -- - ./usrp_burn_mb_eeprom --args=<optional device args> --values="gpsdo=none" - ------------------------------------------------------------------------- -Using the GPSDO in Your Application ------------------------------------------------------------------------- -By default, if a GPSDO is detected at startup, the USRP will be configured -to use it as a frequency and time reference. The internal VITA timestamp -will be initialized to the GPS time, and the internal oscillator will be -phase-locked to the 10 MHz GPSDO reference. If the GPSDO is not locked to -satellites, the VITA time will not be initialized. - -GPS data is obtained through the **mboard_sensors** interface. To retrieve -the current GPS time, use the **gps_time** sensor: - -:: - - usrp->get_mboard_sensor("gps_time"); - -The returned value will be the current epoch time, in seconds since -January 1, 1970. This value is readily converted into human-readable -format using the **time.h** library in C, **boost::posix_time** in C++, etc. - -Other information can be fetched as well. You can query the lock status -with the **gps_locked** sensor, as well as obtain raw NMEA sentences using -the **gps_gprmc**, and **gps_gpgga** sensors. Location -information can be parsed out of the **gps_gpgga** sensor by using **gpsd** or -another NMEA parser. diff --git a/host/docs/identification.dox b/host/docs/identification.dox index 38bc93439..4ecb5c23d 100644 --- a/host/docs/identification.dox +++ b/host/docs/identification.dox @@ -1,4 +1,4 @@ -/*! \page page_identification Device Identification Notes +/*! \page page_identification Device Identification \tableofcontents diff --git a/host/docs/identification.rst b/host/docs/identification.rst deleted file mode 100644 index 65b4e5e99..000000000 --- a/host/docs/identification.rst +++ /dev/null @@ -1,130 +0,0 @@ -================================= -UHD - Device Identification Notes -================================= - -.. contents:: Table of Contents - ------------------------- -Identifying USRP Devices ------------------------- -Devices are addressed through key/value string pairs. -These string pairs can be used to narrow down the search for a specific device or group of devices. -Most UHD utility applications and examples have an **--args** parameter that takes a device address, which is expressed as a delimited string. - -See the documentation in **types/device_addr.hpp** for reference. - -^^^^^^^^^^^^^^^^^^^^^^^^^ -Common device identifiers -^^^^^^^^^^^^^^^^^^^^^^^^^ -Every device has several ways of identifying it on the host system: - -+------------+----------+-----------------------------------------------------------+------------------------------- -| Identifier | Key | Notes | Example -+============+==========+===========================================================+=============================== -| Serial | serial | globally unique identifier | 12345678 -+------------+----------+-----------------------------------------------------------+---------------------------- -| Address | addr | unique identifier on a network | 192.168.10.2 -+------------+----------+-----------------------------------------------------------+------------------------------- -| Resource | resource | unique identifier for USRP RIO devices (over PCI Express) | RIO0 -+------------+----------+-----------------------------------------------------------+------------------------------- -| Name | name | optional user-set identifier | my_usrp1 (User-defined value) -+------------+----------+-----------------------------------------------------------+---------------------------- -| Type | type | hardware series identifier | usrp1, usrp2, -+------------+----------+-----------------------------------------------------------+---------------------------- - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Device discovery via command line -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Devices attached to your system can be discovered using the **uhd_find_devices** program. -This program scans your system for supported devices and prints -out an enumerated list of discovered devices and their addresses. -The list of discovered devices can be narrowed down by specifying device address args. - -:: - - uhd_find_devices - -Device address arguments can be supplied to narrow the scope of the search. - -:: - - uhd_find_devices --args="type=usrp1" - - -- OR -- - - uhd_find_devices --args="serial=12345678" - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Device discovery through the API -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The **device::find()** API call searches for devices and returns a list of discovered devices. - -:: - - uhd::device_addr_t hint; //an empty hint discovers all devices - uhd::device_addrs_t dev_addrs = uhd::device::find(hint); - -The **hint** argument can be populated to narrow the scope of the search. - -:: - - uhd::device_addr_t hint; - hint["type"] = "usrp1"; - uhd::device_addrs_t dev_addrs = uhd::device::find(hint); - - -- OR -- - - uhd::device_addr_t hint; - hint["serial"] = "12345678"; - uhd::device_addrs_t dev_addrs = uhd::device::find(hint); - -^^^^^^^^^^^^^^^^^ -Device properties -^^^^^^^^^^^^^^^^^ -Properties of devices attached to your system can be probed with the **uhd_usrp_probe** program. -This program constructs an instance of the device and prints out its properties, -such as detected daughterboards, frequency range, gain ranges, etc... - -**Usage:** - -:: - - uhd_usrp_probe --args <device-specific-address-args> - --------------------- -Naming a USRP Device --------------------- -For convenience purposes, users may assign a custom name to their USRP device. -The USRP device can then be identified via name, rather than a difficult to remember serial or address. - -A name has the following properties: - -* is composed of ASCII characters -* is 0-20 characters -* is not required to be unique - -^^^^^^^^^^^^^^^^^ -Set a custom name -^^^^^^^^^^^^^^^^^ - -Run the following commands: - -:: - - cd <install-path>/lib/uhd/utils - ./usrp_burn_mb_eeprom --args=<optional device args> --values="name=lab1_xcvr" - -^^^^^^^^^^^^^^^^^^ -Discovery via name -^^^^^^^^^^^^^^^^^^ - -The keyword **name** can be used to narrow the scope of the search. -Example with the find devices utility: - -:: - - uhd_find_devices --args="name=lab1_xcvr" - - -- OR -- - - uhd_find_devices --args="type=usrp1, name=lab1_xcvr" diff --git a/host/docs/images.dox b/host/docs/images.dox index 321452b87..e00f599b5 100644 --- a/host/docs/images.dox +++ b/host/docs/images.dox @@ -1,4 +1,4 @@ -/*! \page page_images Firmware and FPGA Image Application Notes +/*! \page page_images Firmware and FPGA Images \tableofcontents @@ -37,7 +37,12 @@ The pre-built images come in two forms: The UHD images downloader downloads UHD images compatible with the host code and places them in the default images directory. -By default, it can be found at: `<install-path>/lib/uhd/utils/uhd_images_downloader.py` +The download script is typically installed into your $PATH and can be invoked +by calling + + uhd_images_downloader + +It can also be found at: `<install-path>/lib/uhd/utils/uhd_images_downloader.py` By default, it installs images to: `<install-path>/share/uhd/images` diff --git a/host/docs/mainpage.dox b/host/docs/mainpage.dox index 17f01cfc0..a12e62c9c 100644 --- a/host/docs/mainpage.dox +++ b/host/docs/mainpage.dox @@ -1,67 +1,28 @@ /*! \mainpage Table Of Contents -\tableofcontents +Welcome to the USRP Hardware Driver (UHD) manual. Here, you will find information on how to use the devices and how to use the API to connect to them through your own software. -Welcome to the manual pages for the USRP Hardware Driver (UHD), the host driver -for Ettus Research devices. Here, you will find information on how to use the -devices and how to use the API to connect to them through your own software. +This manual is split into two parts: The device manual, and the UHD/API manual. The first part describes details of our devices, mainboards and daughterboards, as well as aspects of _using_ UHD. -# Building and Installing UHD +The second is meant for developers writing UHD-based applications, and includes descriptions of the API, sorted by namespaces, classes and files. -\li \subpage page_build_guide -\li <a href="http://code.ettus.com/redmine/ettus/projects/uhd/wiki/UHD_Linux">Installation Guide (Linux)</a> -\li <a href="http://code.ettus.com/redmine/ettus/projects/uhd/wiki/UHD_Windows">Installation Guide (Windows)</a> - -# General UHD Manuals - -\li \subpage page_general -\li \subpage page_identification -\li \subpage page_images -\li \subpage page_dboards -\li \subpage page_transport -\li \subpage page_sync -\li \subpage page_calibration - -# Device Specific Manuals - -## USRP N-Series Devices - -\li \subpage page_usrp2 -\li \subpage page_gpsdo - -## USRP B-Series Devices +Follow these links to get to the section of the manual you wish to consult, or use the browser in the left sidebar. A search bar is also available at the top right, but note that this only works on API components. For information on how to build and install UHD, go to the UHD web site (see below). -\li \subpage page_usrp_b100 -\li \subpage page_usrp_b200 -\li \subpage page_gpsdo_b2x0 -\li \subpage page_usrp1 +## Manual Parts -## USRP E-Series Devices +\li \subpage page_devices "Part I: Devices & Usage Manual" +\li \subpage page_uhd "Part II: UHD Development Manual" -\li \subpage page_usrp_e1x0 -\li \subpage page_usrp_e3x0 -\li \subpage page_gpsdo +### Further Information -## USRP X-Series Devices +\li <a href="http://www.ettus.com/">Ettus Research LLC Website</a> +\li <a href="http://code.ettus.com/redmine/ettus/projects/uhd/wiki/">UHD Wiki Page</a> -\li \subpage page_usrp_x3x0 -\li \subpage page_gpsdo_x3x0 -\li \subpage page_gpio_api -\li \subpage page_usrp_x3x0_config -\li \subpage page_ni_rio_kernel +### Building and Installing UHD -## USRP Legacy Series - -\li \subpage page_usrp2 - -## OctoClock - -\li \subpage page_octoclock - -# API Documentation - -\li \subpage page_coding -\li \subpage page_stream +\li \subpage page_build_guide +\li <a href="http://code.ettus.com/redmine/ettus/projects/uhd/wiki/UHD_Linux">Installation Guide (Linux)</a> +\li <a href="http://code.ettus.com/redmine/ettus/projects/uhd/wiki/UHD_Windows">Installation Guide (Windows)</a> */ // vim:ft=doxygen: diff --git a/host/docs/octoclock.dox b/host/docs/octoclock.dox index d4c6161a1..9c1ca7b47 100644 --- a/host/docs/octoclock.dox +++ b/host/docs/octoclock.dox @@ -1,4 +1,4 @@ -/*! \page page_octoclock OctoClock Device Manual +/*! \page page_octoclock OctoClock \tableofcontents diff --git a/host/docs/sync.dox b/host/docs/sync.dox index f41d3a78c..8c16eb046 100644 --- a/host/docs/sync.dox +++ b/host/docs/sync.dox @@ -1,4 +1,4 @@ -/*! \page page_sync Synchronization Application Notes +/*! \page page_sync Device Synchronization \tableofcontents @@ -16,7 +16,7 @@ products. USRP devices take two reference signals in order to synchronize clocks and time: -- A 10MHz reference to provide a single frequency reference for both +- A 10 MHz reference to provide a single frequency reference for both devices. - A pulse-per-second (PPS) to synchronize the sample time across devices. @@ -46,7 +46,7 @@ usrp->set_time_source("_external_"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <b>Note2:</b> For users generating their own signals for the external SMA -connectors, the PPS should be clocked from the 10MHz reference. See the +connectors, the PPS should be clocked from the 10 MHz reference. See the application notes for your device for specific signal requirements. \subsection sync_commonref_mimo MIMO cable reference signals diff --git a/host/docs/transport.dox b/host/docs/transport.dox index a00a7aa5f..942fa9509 100644 --- a/host/docs/transport.dox +++ b/host/docs/transport.dox @@ -1,4 +1,4 @@ -/*! \page page_transport Transport Application Notes +/*! \page page_transport Transport Notes \tableofcontents diff --git a/host/docs/uhd.dox b/host/docs/uhd.dox new file mode 100644 index 000000000..5b0738969 --- /dev/null +++ b/host/docs/uhd.dox @@ -0,0 +1,16 @@ +/*! \page page_uhd UHD Development Manual + +# API Documentation + +The majority of the actual API documentation is in the auto-generated part of the manual. +Use the tree browser at the left to click your way through the class list, the namespaces or files. +Also, the search bar at the top can be used to search for function calls, classes or any other +publically available symbol in the UHD namespace. + +Some additional pages on developing UHD are also available here: + +\li \subpage page_coding +\li \subpage page_stream + +*/ +// vim:ft=doxygen: diff --git a/host/docs/usrp1.dox b/host/docs/usrp1.dox index 9dfdf02c5..e82df0a7b 100644 --- a/host/docs/usrp1.dox +++ b/host/docs/usrp1.dox @@ -1,4 +1,4 @@ -/*! \page page_usrp1 USRP1 Device Manual +/*! \page page_usrp1 USRP1 \tableofcontents diff --git a/host/docs/usrp1.rst b/host/docs/usrp1.rst deleted file mode 100644 index ecf90502b..000000000 --- a/host/docs/usrp1.rst +++ /dev/null @@ -1,111 +0,0 @@ -======================================================================== -UHD - USRP1 Device Manual -======================================================================== - -.. contents:: Table of Contents - ------------------------------------------------------------------------- -Comparative features list ------------------------------------------------------------------------- - -**Hardware Capabilities:** - * 2 transceiver card slots - * 64 MHz fixed clock rate - -**FPGA Capabilities:** - * 2 RX DDC chains in FPGA - * 2 TX DUC chains in FPGA (no TX CORDIC -> uses DAC) - * sc16 sample modes - RX & TX - - - Up to 8 MHz of RF BW with 16-bit samples - - * sc8 sample mode - RX only - - - Up to 16 MHz of RF BW with 8-bit samples - ------------------------------------------------------------------------- -Specify a Non-standard Image ------------------------------------------------------------------------- -The standard USRP1 images installer comes with two FPGA images: - * **usrp1_fpga.rbf:** 2 DDCs + 2 DUCs - * **usrp1_fpga_4rx.rbf:** 4 DDCs + 0 DUCs - -By default, the USRP1 uses the FPGA image with 2 DDCs and 2 DUCs. -However, a device address parameter can be used to override -the FPGA image selection to use an alternate or a custom FPGA image. -See the images application notes for installing custom images. - -Example device address string representations to specify non-standard firmware and/or FPGA images: - -:: - - fpga=usrp1_fpga_4rx.rbf - - -- OR -- - - fw=usrp1_fw_custom.ihx - - -- OR -- - - fpga=usrp1_fpga_4rx.rbf, fw=usrp1_fw_custom.ihx - ------------------------------------------------------------------------- -Missing and Emulated Features ------------------------------------------------------------------------- -The USRP1 FPGA does not have the necessary space to support the advanced -streaming capabilities that are possible with the newer USRP devices. -Some of these features are emulated in software to support the API. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -List of emulated features -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* Setting the current device time -* Getting the current device time -* Transmitting at a specific time -* Transmitting a specific number of samples -* Receiving at a specific time -* Receiving a specific number of samples -* End of burst flags for transmit/receive -* Notification on late stream command -* Notification on late transmit packet -* Notification on underflow or overflow -* Notification on broken chain error - -**Note:** -These emulated features rely on the host system's clock for timed operations -and therefore may not have sufficient precision for the application. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -List of missing features -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* Start of burst flags for transmit/receive - ------------------------------------------------------------------------- -Hardware Setup Notes ------------------------------------------------------------------------- - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -External clock modification -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The USRP device can be modified to accept an external clock reference instead of the 64MHz onboard reference. - * Solder SMA (**LTI-SASF54GT**) connector to **J2001**. - * Move 0 ohm 0603 resistor **R2029** to **R2030**. - * Move 0.01uF 0603 capacitor **C925** to **C926**. - * Remove 0.01uF 0603 capacitor **C924**. - -The new external clock needs to be a square wave between +7dBm and +15dBm - -After the hardware modification, -the user should burn the setting into the EEPROM, -so UHD software can initialize with the correct clock rate. -Run the following commands to record the setting into the EEPROM: -:: - - cd <install-path>/lib/uhd/utils - ./usrp_burn_mb_eeprom --args=<optional device args> --values="mcr=<rate>" - -The user may override the clock rate specified in the EEPROM by using a device address: -Example: -:: - - uhd_usrp_probe --args="mcr=52e6" diff --git a/host/docs/usrp2.dox b/host/docs/usrp2.dox index e1be733c0..63a28ad50 100644 --- a/host/docs/usrp2.dox +++ b/host/docs/usrp2.dox @@ -1,4 +1,4 @@ -/*! \page page_usrp2 USRP2 and N2x0 Series Device Manual +/*! \page page_usrp2 USRP2 and N2x0 Series \tableofcontents @@ -392,7 +392,7 @@ Test the PPS input with the following app: \subsection usrp2_hw_gpsdo Internal GPSDO -Please see \ref page_gpsdo for information on configuring and using the internal GPSDO. +Please see \subpage page_gpsdo for information on configuring and using the internal GPSDO. \section usrp2_misc Miscellaneous diff --git a/host/docs/usrp2.rst b/host/docs/usrp2.rst deleted file mode 100644 index 1070a23fc..000000000 --- a/host/docs/usrp2.rst +++ /dev/null @@ -1,474 +0,0 @@ -======================================================================== -UHD - USRP2 and N2x0 Series Device Manual -======================================================================== - -.. contents:: Table of Contents - ------------------------------------------------------------------------- -Comparative features list ------------------------------------------------------------------------- - -**Hardware Capabilities:** - * 1 transceiver card slot - * External PPS reference input - * External 10 MHz reference input - * MIMO cable shared reference - * Fixed 100 MHz clock rate - * Internal GPSDO option (N2x0 only) - -**FPGA Capabilities:** - * 2 RX DDC chains in FPGA - * 1 TX DUC chain in FPGA - * Timed commands in FPGA (N2x0 only) - * Timed sampling in FPGA - * 16-bit and 8-bit sample modes (sc8 and sc16) - - * Up to 25 MHz of RF BW with 16-bit samples - * Up to 50 MHz of RF BW with 8-bit samples - ------------------------------------------------------------------------- -Load the Images onto the SD card (USRP2 only) ------------------------------------------------------------------------- -**Warning!** -Use **usrp2_card_burner** with caution. If you specify the wrong device node, -you could overwrite your hard drive. Make sure that **--dev=** specifies the SD card. - -**Warning!** -It is possible to use 3rd party SD cards with the USRP2. -However, certain types of SD cards will not interface with the CPLD: - -* Cards can be SDHC, which is not a supported interface. -* Cards can have unexpected timing characteristics. - -For these reasons, we recommend that you use the SD card that was supplied with the USRP2. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Use the card burner tool (UNIX) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:: - - sudo <install-path>/lib/uhd/utils/usrp2_card_burner_gui.py - - -- OR -- - - cd <install-path>/lib/uhd/utils - sudo ./usrp2_card_burner.py --dev=/dev/sd<XXX> --fpga=<path_to_fpga_image> - sudo ./usrp2_card_burner.py --dev=/dev/sd<XXX> --fw=<path_to_firmware_image> - -Use the **--list** option to get a list of possible raw devices. -The list result will filter out disk partitions and devices too large to be the sd card. -The list option has been implemented on Linux, Mac OS X, and Windows. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Use the card burner tool (Windows) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:: - - <path_to_python.exe> <install-path>/lib/uhd/utils/usrp2_card_burner_gui.py - ------------------------------------------------------------------------- -Load the Images onto the On-board Flash (USRP-N Series only) ------------------------------------------------------------------------- -The USRP-N Series can be reprogrammed over the network to update or change the firmware and FPGA images. -When updating images, always burn both the FPGA and firmware images before power cycling. -This ensures that when the device reboots, it has a compatible set of images to boot into. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Use the net burner tool -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:: - - Use default images: - usrp_n2xx_simple_net_burner --addr=<IP address> - - Use custom-built images: - usrp_n2xx_simple_net_burner --addr=<IP address> --fw=<firmware path> --fpga=<FPGA path> - -**Note:** -Different hardware revisions require different FPGA images. -Determine the revision number from the sticker on the rear of the chassis. -Use this number to select the correct FPGA image for your device. - -For users who would prefer a graphical utility, a Python-based alternative exists. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Use the graphical net burner tool (Linux) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:: - - <install-path>/lib/uhd/utils/usrp_n2xx_net_burner_gui.py - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Use the graphical net burner tool (Windows) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:: - - <path_to_python.exe> <install-path>/lib/uhd/utils/usrp_n2xx_net_burner_gui.py - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Device recovery and bricking -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Its possible to put the device into an unusable state by loading bad images. -Fortunately, the USRP-N Series can be booted into a safe (read-only) image. -Once booted into the safe image, the user can once again load images onto the device. - -The safe-mode button is a pushbutton switch (S2) located inside the enclosure. -To boot into the safe image, hold-down the safe-mode button while power-cycling the device. -Continue to hold-down the button until the front-panel LEDs blink and remain solid. - -When in safe-mode, the USRP-N device will always have the IP address **192.168.10.2**. - ------------------------------------------------------------------------- -Setup Networking ------------------------------------------------------------------------- -The USRP2 only supports Gigabit Ethernet -and will not work with a 10/100 Mbps interface. -However, a 10/100 Mbps interface can be connected indirectly -to a USRP2 through a Gigabit Ethernet switch. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Setup the host interface -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The USRP2 communicates at the IP/UDP layer over the gigabit ethernet. -The default IP address of the USRP2 is **192.168.10.2**. -You will need to configure the host's Ethernet interface with a static IP -address to enable communication. An address of **192.168.10.1** and a subnet -mask of **255.255.255.0** is recommended. - -On a Linux system, you can set a static IP address very easily by using the -'ifconfig' command: -:: - - sudo ifconfig <interface> 192.168.10.1 - -Note that **<interface>** is usually something like **eth0**. You can discover the -names of the network interfaces in your computer by running **ifconfig** without -any parameters: -:: - - ifconfig -a - -**Note:** -When using UHD software, if an IP address for the USRP2 is not specified, -the software will use UDP broadcast packets to locate the USRP2. -On some systems, the firewall will block UDP broadcast packets. -It is recommended that you change or disable your firewall settings. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Multiple devices per host -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -For maximum throughput, one Ethernet interface per USRP2 is recommended, -although multiple devices may be connected via a Gigabit Ethernet switch. -In any case, each Ethernet interface should have its own subnet, -and the corresponding USRP2 device should be assigned an address in that subnet. -Example: - -**Configuration for USRP2 device 0:** - -* Ethernet interface IPv4 address: **192.168.10.1** -* Ethernet interface subnet mask: **255.255.255.0** -* USRP2 device IPv4 address: **192.168.10.2** - -**Configuration for USRP2 device 1:** - -* Ethernet interface IPv4 address: **192.168.20.1** -* Ethernet interface subnet mask: **255.255.255.0** -* USRP2 device IPv4 address: **192.168.20.2** - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Change the USRP2's IP address -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -You may need to change the USRP2's IP address for several reasons: - -* to satisfy your particular network configuration -* to use multiple USRP2s on the same host computer -* to set a known IP address into USRP2 (in case you forgot) - -**Method 1:** -To change the USRP2's IP address, -you must know the current address of the USRP2, -and the network must be setup properly as described above. -Run the following commands: -:: - - cd <install-path>/lib/uhd/utils - ./usrp_burn_mb_eeprom --args=<optional device args> --values="ip-addr=192.168.10.3" - -**Method 2 (Linux Only):** -This method assumes that you do not know the IP address of your USRP2. -It uses raw Ethernet packets to bypass the IP/UDP layer to communicate with the USRP2. -Run the following commands: -:: - - cd <install-path>/lib/uhd/utils - sudo ./usrp2_recovery.py --ifc=eth0 --new-ip=192.168.10.3 - ------------------------------------------------------------------------- -Communication Problems ------------------------------------------------------------------------- -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. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -RuntimeError: no control response -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -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 **192.168.20.1**, and the USRP device is -**192.168.10.2** (note the difference in the third numbers of the IP addresses), you -will likely see a 'no control response' error message. - -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. - - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Firewall issues -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -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 **49152**. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Ping the device -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The USRP device will reply to ICMP echo requests. -A successful ping response means that the device has booted properly -and that it is using the expected IP address. - -:: - - ping 192.168.10.2 - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Monitor the serial output -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Read the serial port to get debug verbose output from the embedded microcontroller. -The microcontroller prints useful information about IP addresses, -MAC addresses, control packets, fast-path settings, and bootloading. -Use a standard USB to 3.3v-level serial converter at 230400 baud. -Connect **GND** to the converter ground, and connect **TXD** to the converter receive. -The **RXD** pin can be left unconnected as this is only a one-way communication. - -* **USRP2:** Serial port located on the rear edge -* **N210:** Serial port located on the left side - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Monitor the host network traffic -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Use Wireshark to monitor packets sent to and received from the device. - ------------------------------------------------------------------------- -Addressing the Device ------------------------------------------------------------------------- - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Single device configuration -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -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, or by other means. See the application notes on -`device identification <./identification.html>`_. Please note that this -addressing scheme should also be used with the **multi_usrp** interface. - -Example device address string representation for a USRP2 with IPv4 address **192.168.10.2**: - -:: - - addr=192.168.10.2 - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Multiple device configuration -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -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 <key><index>. -Use this addressing scheme with the **multi_usrp** interface. - -* The order in which devices are indexed corresponds to the indexing of the transmit and receive channels. -* The key indexing provides the same granularity of device identification as in the single device case. - -Example device address string representation for 2 USRP2s with IPv4 addresses **192.168.10.2** and **192.168.20.2**: -:: - - addr0=192.168.10.2, addr1=192.168.20.2 - ------------------------------------------------------------------------- -Using the MIMO Cable ------------------------------------------------------------------------- -The MIMO cable allows two USRP devices to share reference clocks, -time synchronization, and the Ethernet interface. -One of the devices will sync its clock and time references to the MIMO cable. -This device will be referred to as the slave, and the other device, the master. - -* The slave device acquires the clock and time references from the master device. -* The master and slave may be used individually or in a multi-device configuration. -* External clocking is optional and should only be supplied to the master device. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Shared Ethernet mode -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In shared Ethernet mode, -only one device in the configuration can be attached to the Ethernet. - -* Clock reference, time reference, and data are communicated over the MIMO cable. -* Master and slave must have different IPv4 addresses in the same subnet. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Dual Ethernet mode -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In dual Ethernet mode, -both devices in the configuration must be attached to the Ethernet. - -* Only clock reference and time reference are communicated over the MIMO cable. -* The master and slave must have different IPv4 addresses in different subnets. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Configuring the slave -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In order for the slave to synchronize to the master over MIMO cable, -the following clock configuration must be set on the slave device: -:: - - usrp->set_time_source("mimo", slave_index); - usrp->set_clock_source("mimo", slave_index); - - ------------------------------------------------------------------------- -Alternative stream destination ------------------------------------------------------------------------- -It is possible to program the USRP device to send RX packets to an alternative IP/UDP destination. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Set the subnet and gateway -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -To use an alternative streaming destination, -the device needs to be able to determine if the destination address -is within its subnet, and ARP appropriately. -Therefore, the user should ensure that subnet and gateway addresses -have been programmed into the device's EEPROM. - -Run the following commands: -:: - - cd <install-path>/lib/uhd/utils - ./usrp_burn_mb_eeprom --args=<optional device args> --values="subnet=255.255.255.0,gateway=192.168.10.1" - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Create a receive streamer -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Set the stream args "addr" and "port" values to the alternative destination. -Packets will be sent to this destination when the user issues a stream command. - -:: - - //create a receive streamer, host type does not matter - uhd::stream_args_t stream_args("fc32"); - - //resolvable address and port for a remote udp socket - stream_args.args["addr"] = "192.168.10.42"; - stream_args.args["port"] = "12345"; - - //create the streamer - uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); - - //issue stream command - uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); - stream_cmd.num_samps = total_num_samps; - stream_cmd.stream_now = true; - usrp->issue_stream_cmd(stream_cmd); - -**Note:** -Calling recv() on this streamer object should yield a timeout. - ------------------------------------------------------------------------- -Hardware Setup Notes ------------------------------------------------------------------------- - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Front panel LEDs -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The LEDs on the front panel can be useful in debugging hardware and software issues. -The LEDs reveal the following about the state of the device: - -* **LED A:** transmitting -* **LED B:** MIMO cable link -* **LED C:** receiving -* **LED D:** firmware loaded -* **LED E:** reference lock -* **LED F:** CPLD loaded - - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Ref Clock - 10 MHz -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Using an external 10 MHz reference clock, a square wave will offer the best phase -noise performance, but a sinusoid is acceptable. The reference clock requires the following power level: - -* **USRP2** 5 to 15 dBm -* **N2XX** 0 to 15 dBm - - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -PPS - Pulse Per Second -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Using a PPS signal for timestamp synchronization requires a square wave signal with the following amplitude: - -* **USRP2** 5Vpp -* **N2XX** 3.3 to 5Vpp - -Test the PPS input with the following app: - -* **<args>** are device address arguments (optional if only one USRP device is on your machine) - -:: - - cd <install-path>/lib/uhd/examples - ./test_pps_input --args=<args> - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Internal GPSDO -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Please see the `Internal GPSDO Application Notes <./gpsdo.html>`_ -for information on configuring and using the internal GPSDO. - ------------------------------------------------------------------------- -Miscellaneous ------------------------------------------------------------------------- - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Available Sensors -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The following sensors are available for the USRP2/N-Series motherboards; -they can be queried through the API. - -* **mimo_locked** - clock reference locked over the MIMO cable -* **ref_locked** - clock reference locked (internal/external) -* other sensors are added when the GPSDO is enabled - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Multiple RX channels -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -There are two complete DDC 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 **RX** subdevice specification. -This hardware has only one daughterboard slot, -which has been aptly named slot **A**. - -In the following example, a TVRX2 is installed. -Channel 0 is sourced from subdevice **RX1**, -and channel 1 is sourced from subdevice **RX2** (**RX1** and **RX2** -are the antenna ports on the TVRX2 daughterboard): - -:: - - usrp->set_rx_subdev_spec("A:RX1 A:RX2"); diff --git a/host/docs/usrp_b100.dox b/host/docs/usrp_b100.dox index c61d17f02..a7d67f50f 100644 --- a/host/docs/usrp_b100.dox +++ b/host/docs/usrp_b100.dox @@ -1,4 +1,4 @@ -/*! \page page_usrp_b100 USRP-B100 Series Device Manual +/*! \page page_usrp_b100 USRP B100 Series \tableofcontents diff --git a/host/docs/usrp_b200.dox b/host/docs/usrp_b200.dox index 93ea9b2c6..6ee2f3445 100644 --- a/host/docs/usrp_b200.dox +++ b/host/docs/usrp_b200.dox @@ -1,15 +1,15 @@ -/*! \page page_usrp_b200 USRP-B2x0 Series Device Manual +/*! \page page_usrp_b200 USRP B2x0 Series \tableofcontents -\section b200_features Comparative features list - B200 +\section b200_features Comparative features list - B200/B210 - Hardware Capabilities: - Integrated RF frontend (70 MHz - 6 GHz) - External PPS reference input - External 10 MHz reference input - Configurable clock rate - - Internal GPSDO option + - Internal GPSDO option (see \subpage page_gpsdo_b2x0 for details) - B210 Only: - MICTOR Debug Connector - JTAG Connector diff --git a/host/docs/usrp_e1x0.dox b/host/docs/usrp_e1x0.dox index c73e6ed42..553d437c7 100644 --- a/host/docs/usrp_e1x0.dox +++ b/host/docs/usrp_e1x0.dox @@ -1,4 +1,4 @@ -/*! \page page_usrp_e1x0 USRP-E1x0 Series Device Manual +/*! \page page_usrp_e1x0 USRP-E1x0 Series \tableofcontents @@ -101,7 +101,7 @@ address arguments, optional if only one USRP device is on your machine): \subsection e1x0_clksync_gpsdo Internal GPSDO -Please see the \ref page_gpsdo for +Please see the \subpage page_gpsdo for information on configuring and using the internal GPSDO. UHD software will always try to detect an installed GPSDO at runtime. It diff --git a/host/docs/usrp_e3x0.dox b/host/docs/usrp_e3x0.dox index 320cc97b0..f857676c7 100644 --- a/host/docs/usrp_e3x0.dox +++ b/host/docs/usrp_e3x0.dox @@ -1,4 +1,4 @@ -/*! \page page_usrp_e3x0 USRP-E3x0 Series Device Manual +/*! \page page_usrp_e3x0 USRP-E3x0 Series \tableofcontents @@ -101,7 +101,7 @@ The following section will guide you through the installation of the provided SD \subsubsection e3x0_sdk_installation_download Obtaining the correct SDK It is necessary for the SDK version and the image version to match, to ensure the versions of the software installed on the device and the version of the software the SDK will build against match. -If you are not sure which image is installed on your device, upgrading to the latest stable version is recommended. See \ref e3x0_rootfs_upgrade_restore for details on upgrading. +If you are not sure which image is installed on your device, upgrading to the latest stable version is recommended. See the appropriate section for details on upgrading. \subsubsection e3x0_sdk_installation_install Obtaining the right toolchain diff --git a/host/docs/usrp_x3x0.dox b/host/docs/usrp_x3x0.dox index 0b46f0d16..847efe74e 100644 --- a/host/docs/usrp_x3x0.dox +++ b/host/docs/usrp_x3x0.dox @@ -1,7 +1,13 @@ -/*! \page page_usrp_x3x0 X3x0 Series Device Manual +/*! \page page_usrp_x3x0 X3x0 Series \tableofcontents +More information: +\li \subpage page_gpsdo_x3x0 +\li \subpage page_gpio_api +\li \subpage page_usrp_x3x0_config +\li \subpage page_ni_rio_kernel + \section x3x0_feature_list Comparative features list - Hardware Capabilities: |