summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-07-03 11:19:14 -0700
committerJosh Blum <josh@joshknows.com>2010-07-05 13:48:59 -0700
commit52ea9b8f90c56c12e978387aee670b45d93d74a5 (patch)
treead6e7011e7074cfaa9e5c453856bf5f451c1ce33
parent37bc860d52c937fb35925af3590d9bca1ecad559 (diff)
downloaduhd-52ea9b8f90c56c12e978387aee670b45d93d74a5.tar.gz
uhd-52ea9b8f90c56c12e978387aee670b45d93d74a5.tar.bz2
uhd-52ea9b8f90c56c12e978387aee670b45d93d74a5.zip
uhd: added mimo notes, misc spellcheck and tweaks
-rw-r--r--host/docs/coding.rst37
-rw-r--r--host/docs/dboards.rst8
-rw-r--r--host/docs/general.rst2
-rw-r--r--host/docs/usrp2.rst39
4 files changed, 71 insertions, 15 deletions
diff --git a/host/docs/coding.rst b/host/docs/coding.rst
index 689667f30..84f9abf3e 100644
--- a/host/docs/coding.rst
+++ b/host/docs/coding.rst
@@ -5,8 +5,11 @@ UHD - Coding to the API
.. contents:: Table of Contents
------------------------------------------------------------------------
-Low-Level: The device API
+Various API interfaces
------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Low-Level: The device API
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
A device is an abstraction for hardware that is connected to the host system.
For a USRP, this means that the motherboard and everything on it would be considered to be a "device".
The device API provides ways to:
@@ -17,12 +20,12 @@ The device API provides ways to:
* Streaming samples with metadata into and out of the device.
* Set and get properties on the device object.
-See the documentation in device.hpp for reference.
+See the documentation in *device.hpp* for reference.
-------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
High-Level: The simple usrp
-------------------------------------------------------------------------
-The goal of the simple usrp is to wrap high level functions around the device properties.
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The goal of the simple usrp API is to wrap high level functions around the device properties.
The simple usrp provides a fat interface to access the most common properties.
The simple usrp provides ways to:
@@ -35,14 +38,32 @@ The simple usrp provides ways to:
* Set the usrp time registers.
* Get the underlying device (as discussed above).
-It is recommended that users code to the simple_usrp api when possible.
-See the documentation in usrp/simple_usrp.hpp for reference.
+See the documentation in *usrp/simple_usrp.hpp* for reference.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+High-Level: The mimo usrp
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The mimo usrp API provides a wrapper around a device that represents several motherboards.
+This API provides convenience calls just like the simple usrp,
+however the calls either work across all channels in the configuration,
+or take a channel argument to specify which channel to configure.
+The mimo usrp provides ways to:
+
+* Set and get the sample rate across all channels.
+* Issue a stream command across all channels.
+* Set the time registers across all channels.
+* Set and get individual daughterboard gains.
+* Set and get individual daughterboard antennas.
+* Tune individual DSPs and daughterboards.
+* Get the underlying device (as discussed above).
+
+See the documentation in *usrp/mimo_usrp.hpp* for reference.
------------------------------------------------------------------------
Integrating custom hardware
------------------------------------------------------------------------
Creators of custom hardware can create drivers that use the UHD API.
-These drivers can be built as dynamically lodable modules that the UHD will load at runtime.
+These drivers can be built as dynamically loadable modules that the UHD will load at runtime.
For a module to be loaded at runtime, it must be found in the UHD_MODULE_PATH environment variable.
^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/host/docs/dboards.rst b/host/docs/dboards.rst
index e14f49933..9c496ebee 100644
--- a/host/docs/dboards.rst
+++ b/host/docs/dboards.rst
@@ -23,7 +23,7 @@ The Basic RX and LFRX boards have 3 subdevices:
The boards have no tunable elements or programmable gains.
Though the magic of aliasing, you can down-convert signals
-greater than the nyquist rate of the ADC.
+greater than the Nyquist rate of the ADC.
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Basic TX and and LFTX
@@ -50,7 +50,7 @@ Recieve Gains: **PGA0**, Range: 0-45dB
^^^^^^^^^^^^^^^^^^^^^^^^^^^
XCVR 2450
^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The XCVR2450 has a non-contiguous tuning range consiting of a high band and a low band.
+The XCVR2450 has a non-contiguous tuning range consisting of a high band and a low band.
The high band consists of frequencies between...TODO
Transmit Antennas: **J1** or **J2**
@@ -65,11 +65,11 @@ The XCVR2450 uses a common LO for both receive and transmit.
Even though the API allows the RX and TX LOs to be individually set,
a change of one LO setting will be reflected in the other LO setting.
-Transmit Gains:
+Transmit Gains:
* **VGA**, Range: 0-30dB
* **BB**, Range: 0-5dB
-Recieve Gains:
+Receive Gains:
* **LNA**, Range: 0-30.5dB
* **VGA**, Range: 0-62dB
diff --git a/host/docs/general.rst b/host/docs/general.rst
index 6b309cba0..90a880c2e 100644
--- a/host/docs/general.rst
+++ b/host/docs/general.rst
@@ -45,7 +45,7 @@ The list of discovered devices can be narrowed down by specifying device address
Device properties
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Properties of devices attached to your system can be probed with the "uhd_usrp_probe" program.
-The usrp probe program contructs an instance of the device and prints out its properties;
+The usrp probe program constructs an instance of the device and prints out its properties;
properties such as detected daughter-boards, frequency range, gain ranges, etc...
**Usage:**
diff --git a/host/docs/usrp2.rst b/host/docs/usrp2.rst
index aff0d0454..d3ae1dec7 100644
--- a/host/docs/usrp2.rst
+++ b/host/docs/usrp2.rst
@@ -11,8 +11,7 @@ Building firmware and FPGA images
^^^^^^^^^^^^^^^^^^
FPGA Image
^^^^^^^^^^^^^^^^^^
-Xilinx ISE 10.1 is required to build the FPGA image for the USRP2
-(newer version of ISE are known to build buggy images).
+Xilinx ISE 10.1 and up is required to build the FPGA image for the USRP2.
The build requires that you have a unix-like environment with make.
Make sure that xtclsh from the Xilinx ISE bin directory is in your $PATH.
@@ -150,6 +149,40 @@ MAC addresses, control packets, and fast-path settings.
Use wireshark to monitor packets sent to and received from the USRP2.
------------------------------------------------------------------------
+Addressing the device
+------------------------------------------------------------------------
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Single device configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A USRP2 can be identified though its IPv4 address or resolvable hostname.
+The USRP2 device is referenced through the "addr" key in the device address.
+Use this addressing scheme with the *simple_usrp* interface.
+
+The device address string representation for a USRP2 with IPv4 address 192.168.10.2
+
+::
+
+ addr=192.168.10.2
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Soft-MIMO configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+In a soft-mimo configuration, each USRP2 must have a unique IPv4 address (per computer)
+and be attached to its own dedicated network port.
+The value for the addr key is a white-space separated list
+of IPv4 addresses or resolvable hostnames.
+The first address in the list will represent channel 0,
+the second channel 1, and so on...
+Use this addressing scheme with the *mimo_usrp* interface.
+
+The device address string representation for 2 USRP2s with IPv4 addresses 192.168.10.2 and 192.168.20.2
+::
+
+ addr=192.168.10.2 192.168.20.2
+
+
+------------------------------------------------------------------------
Resize the send and receive buffers
------------------------------------------------------------------------
It may be useful increase the size of the socket buffers to
@@ -173,6 +206,8 @@ To change the maximum values, run the following commands:
sudo sysctl -w net.core.rmem_max=<new value>
sudo sysctl -w net.core.wmem_max=<new value>
+Set the values permanently by editing */etc/sysctl.conf*
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Device address params
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^