diff options
Diffstat (limited to 'host/docs')
-rw-r--r-- | host/docs/CMakeLists.txt | 6 | ||||
-rw-r--r-- | host/docs/build.rst | 13 | ||||
-rw-r--r-- | host/docs/dboards.rst | 123 | ||||
-rw-r--r-- | host/docs/general.rst | 2 | ||||
-rw-r--r-- | host/docs/identification.rst | 2 | ||||
-rw-r--r-- | host/docs/images.rst | 4 | ||||
-rw-r--r-- | host/docs/index.rst | 4 | ||||
-rw-r--r-- | host/docs/usrp2.rst | 25 | ||||
-rw-r--r-- | host/docs/usrp_e1xx.rst | 40 |
9 files changed, 164 insertions, 55 deletions
diff --git a/host/docs/CMakeLists.txt b/host/docs/CMakeLists.txt index c04262b63..1a2738647 100644 --- a/host/docs/CMakeLists.txt +++ b/host/docs/CMakeLists.txt @@ -64,14 +64,14 @@ IF(ENABLE_MANUAL) #make the manual target depend on the html file LIST(APPEND manual_html_files ${htmlfile}) - INSTALL(FILES ${htmlfile} DESTINATION ${PKG_DOC_DIR}/manual/html) + INSTALL(FILES ${htmlfile} DESTINATION ${PKG_DOC_DIR}/manual/html COMPONENT manual) ENDFOREACH(rstfile ${manual_sources}) #make the html manual a build-time dependency ADD_CUSTOM_TARGET(manual_html ALL DEPENDS ${manual_html_files}) ENDIF(ENABLE_MANUAL) -INSTALL(FILES ${manual_sources} DESTINATION ${PKG_DOC_DIR}/manual/rst) +INSTALL(FILES ${manual_sources} DESTINATION ${PKG_DOC_DIR}/manual/rst COMPONENT manual) ######################################################################## # Setup Doxygen @@ -99,5 +99,5 @@ IF(ENABLE_DOXYGEN) #make the doxygen generation a built-time dependency ADD_CUSTOM_TARGET(doxygen_docs ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN}) - INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN} DESTINATION ${PKG_DOC_DIR}) + INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN} DESTINATION ${PKG_DOC_DIR} COMPONENT doxygen) ENDIF(ENABLE_DOXYGEN) diff --git a/host/docs/build.rst b/host/docs/build.rst index de7c544f2..063b2b371 100644 --- a/host/docs/build.rst +++ b/host/docs/build.rst @@ -116,7 +116,7 @@ Generate Makefiles with cmake Additionally, configuration variables can be passed into cmake via the command line. The following common-use configuration variables are listed below: -* For a custom install prefix: -DCMAKE_INSTALL_PREFIX=<prefix> +* For a custom install prefix: -DCMAKE_INSTALL_PREFIX=<install-path> * To install libs into lib64: cmake -DLIB_SUFFIX=64 Example usage: @@ -165,12 +165,13 @@ LibUSB cmake notes On Windows, cmake does not have the advantage of pkg-config, so we must manually tell cmake how to locate the LibUSB header and lib. -From the cmake gui, select "Advanded View": - +* From the cmake gui, select "Advanded View" * Set LIBUSB_INCLUDE_DIR to the directory with "libusb.h". * Set LIBUSB_LIBRARIES to the full path for "libusb-1.0.lib". -Then check the boxes to enable USRP1 support, click configure and generate. + * Recommend the static libusb-1.0.lib to simplify runtime dependencies. + +* Check the box to enable USB support, click configure and generate. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Build the project in MSVC @@ -196,9 +197,7 @@ Open the Visual Studio Command Prompt Shorcut: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Setup the PATH environment variable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* Add the boost library path to %PATH% (usually c:\\program files\\boost\\<version>\\lib) -* Add the uhd library path to %PATH% (usually c:\\program files\\uhd\\lib) -* Add the libusb library to %PATH% (if using usb support) +* Add the uhd bin path to %PATH% (usually c:\\program files\\uhd\\bin) **Note:** The interface for editing environment variable paths in Windows is very poor. diff --git a/host/docs/dboards.rst b/host/docs/dboards.rst index 7f205c404..373189441 100644 --- a/host/docs/dboards.rst +++ b/host/docs/dboards.rst @@ -27,12 +27,14 @@ Though the magic of aliasing, you can down-convert signals greater than the Nyquist rate of the ADC. BasicRX Bandwidth (Hz): - For Real-Mode (A or B subdevice): 250M - For Complex (AB or BA subdevice): 500M + +* For Real-Mode (A or B subdevice): 250M +* For Complex (AB or BA subdevice): 500M LFRX Bandwidth (Hz): - For Real-Mode (A or B subdevice): 33M - For Complex (AB or BA subdevice): 66M + +* For Real-Mode (A or B subdevice): 33M +* For Complex (AB or BA subdevice): 66M ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Basic TX and and LFTX @@ -49,31 +51,67 @@ Though the magic of aliasing, you can up-convert signals greater than the Nyquist rate of the DAC. BasicTX Bandwidth (Hz): 250M - For Real-Mode (A or B subdevice): 250M - For Complex (AB or BA subdevice): 500M + +* For Real-Mode (A or B subdevice): 250M +* For Complex (AB or BA subdevice): 500M LFTX Bandwidth (Hz): 33M - For Real-Mode (A or B subdevice): 33M - For Complex (AB or BA subdevice): 66M + +* For Real-Mode (A or B subdevice): 33M +* For Complex (AB or BA subdevice): 66M ^^^^^^^^^^^^^^^^^^^^^^^^^^^ DBSRX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The DBSRX board has 1 quadrature subdevice. +The DBSRX board has 1 quadrature subdevice. +It defaults to direct conversion, but can use a low IF through lo_offset in uhd::tune_request_t Receive Antennas: **J3** The board has no user selectable antenna setting -Receive Gains: - **GC1**, Range: 0-56dB - **GC2**, Range: 0-24dB +Receive Gains: + +* **GC1**, Range: 0-56dB +* **GC2**, Range: 0-24dB Bandwidth (Hz): 8M-66M +Sensors: + +* **lo_locked**: boolean for LO lock state + +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +DBSRX2 +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The DBSRX2 board has 1 quadrature subdevice. +It defaults to direct conversion, but can use a low IF through lo_offset in uhd::tune_request_t + +Receive Antennas: **J3** + +The board has no user selectable antenna setting + +Receive Gains: + +* **GC1**, Range: 0-73dB +* **BBG**, Range: 0-15dB + +Bandwidth (Hz): 8M-80M + +Sensors: + +* **lo_locked**: boolean for LO lock state + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ RFX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The RFX Series boards have 2 quadrature subdevices, one transmit, one receive. +Transmit defaults to low IF and Receive defaults to direct conversion. +The IF can be adjusted through lo_offset in uhd::tune_request_t + +The RFX Series boards have independent receive and transmit LO's and synthesizers +allowing full-duplex operation on different transmit and receive frequencies. + Transmit Antennas: **TX/RX** Receive Antennas: **TX/RX** or **RX2** @@ -85,12 +123,21 @@ the receive antenna will always be set to RX2, regardless of the settings. Receive Gains: **PGA0**, Range: 0-70dB (except RFX400 range is 0-45dB) Bandwidths (Hz): - * **RX**: 40M - * **TX**: 40M + +* **RX**: 40M +* **TX**: 40M + +Sensors: + +* **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ XCVR 2450 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The XCVR2450 has 2 quadrature subdevices, one transmit, one receive. +Transmit and Receive default to direct conversion but +can be used in low IF mode through lo_offset in uhd::tune_request_t + The XCVR2450 has a non-contiguous tuning range consisting of a high band (4.9-6.0GHz) and a low band (2.4-2.5GHz). @@ -106,20 +153,35 @@ The XCVR2450 does not support full-duplex mode, attempting to operate in full-duplex will result in transmit-only operation. Transmit Gains: - * **VGA**, Range: 0-30dB - * **BB**, Range: 0-5dB + +* **VGA**, Range: 0-30dB +* **BB**, Range: 0-5dB Receive Gains: - * **LNA**, Range: 0-30.5dB - * **VGA**, Range: 0-62dB + +* **LNA**, Range: 0-30.5dB +* **VGA**, Range: 0-62dB Bandwidths (Hz): - * **RX**: 15M, 19M, 28M, 36M; (each +-0, 5, or 10%) - * **TX**: 24M, 36M, 48M + +* **RX**: 15M, 19M, 28M, 36M; (each +-0, 5, or 10%) +* **TX**: 24M, 36M, 48M + +Sensors: + +* **lo_locked**: boolean for LO lock state +* **rssi**: float for rssi in dBm ^^^^^^^^^^^^^^^^^^^^^^^^^^^ WBX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The WBX Series boards have 2 quadrature subdevices, one transmit, one receive. +Transmit and Receive default to direct conversion but +can be used in low IF mode through lo_offset in uhd::tune_request_t + +The WBX Series boards have independent receive and transmit LO's and synthesizers +allowing full-duplex operation on different transmit and receive frequencies. + Transmit Antennas: **TX/RX** Receive Antennas: **TX/RX** or **RX2** @@ -133,17 +195,26 @@ Transmit Gains: **PGA0**, Range: 0-25dB Receive Gains: **PGA0**, Range: 0-31.5dB Bandwidths (Hz): - * **RX**: 40M - * **TX**: 40M + +* **RX**: 40M +* **TX**: 40M + +Sensors: + +* **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ TVRX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The TVRX board has 1 real-mode subdevice. +It is operated at a low IF. + Receive Antennas: RX Receive Gains: - * **RF**, Range: -13.3-50.3dB (frequency-dependent) - * **IF**, Range: -1.5-32.5dB + +* **RF**, Range: -13.3-50.3dB (frequency-dependent) +* **IF**, Range: -1.5-32.5dB Bandwidth: 6MHz @@ -182,7 +253,7 @@ If you lose R193, you can use anything from 0 to 10 ohms there. With the daughterboard plugged-in, run the following commands: :: - cd <prefix>/share/uhd/utils + cd <install-path>/share/uhd/utils ./usrp_burn_db_eeprom --id=0x000d --unit=RX --args=<args> --slot=<slot> * <args> are device address arguments (optional if only one USRP is on your machine) @@ -209,7 +280,7 @@ These are all 0-ohm, so if you lose one, just short across the appropriate pads With the daughterboard plugged-in, run the following commands: :: - cd <prefix>/share/uhd/utils + cd <install-path>/share/uhd/utils ./usrp_burn_db_eeprom --id=<rx_id> --unit=RX --args=<args> --slot=<slot> ./usrp_burn_db_eeprom --id=<tx_id> --unit=TX --args=<args> --slot=<slot> diff --git a/host/docs/general.rst b/host/docs/general.rst index 2894fbf88..73b820c84 100644 --- a/host/docs/general.rst +++ b/host/docs/general.rst @@ -52,5 +52,5 @@ Support for dynamically loadable modules For a module to be loaded at runtime, it must be: * found in the UHD_MODULE_PATH environment variable, -* installed into the <prefix>/share/uhd/modules directory, +* installed into the <install-path>/share/uhd/modules directory, * or installed into /usr/share/uhd/modules directory (unix only). diff --git a/host/docs/identification.rst b/host/docs/identification.rst index 90484744c..deda61531 100644 --- a/host/docs/identification.rst +++ b/host/docs/identification.rst @@ -107,7 +107,7 @@ Set a custom name Run the following commands: :: - cd <prefix>/share/uhd/utils + cd <install-path>/share/uhd/utils ./usrp_burn_mb_eeprom --args=<optional device args> --key=name --val=lab1_xcvr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/host/docs/images.rst b/host/docs/images.rst index f5be88a65..adfa6d530 100644 --- a/host/docs/images.rst +++ b/host/docs/images.rst @@ -54,8 +54,8 @@ When installing images from an archive, there are two options: **Option 1:** Unpack the archive into the UHD installation prefix. -The UHD will always search <prefix>/share/uhd/images for image files. -Where <prefix> was set by the CMAKE_INSTALL_PREFIX at configure-time. +The UHD will always search <install-path>/share/uhd/images for image files. +Where <install-path> was set by the CMAKE_INSTALL_PREFIX at configure-time. **Option 2:** diff --git a/host/docs/index.rst b/host/docs/index.rst index 734300164..467d5f385 100644 --- a/host/docs/index.rst +++ b/host/docs/index.rst @@ -4,9 +4,7 @@ UHD - Universal Hardware Driver The UHD is the universal hardware driver for Ettus Research products. The goal of the UHD is to provide a host driver and api for current and future Ettus Research products. -Users will be able to use the UHD driver standalone/without gnuradio. -Also, a dual license option will be available for those who build against the UHD -but cannot release their software products under the GPL. +Users will be able to use the UHD driver standalone or with 3rd party applications. ------------------------------------------------------------------------ Contents diff --git a/host/docs/usrp2.rst b/host/docs/usrp2.rst index 70101bd87..161170f2c 100644 --- a/host/docs/usrp2.rst +++ b/host/docs/usrp2.rst @@ -25,11 +25,11 @@ Use the card burner tool (unix) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: - sudo <prefix>/share/uhd/utils/usrp2_card_burner_gui.py + sudo <install-path>/share/uhd/utils/usrp2_card_burner_gui.py -- OR -- - cd <prefix>/share/uhd/utils + cd <install-path>/share/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> @@ -42,7 +42,7 @@ Use the card burner tool (windows) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: - <path_to_python.exe> <prefix>/share/uhd/utils/usrp2_card_burner_gui.py + <path_to_python.exe> <install-path>/share/uhd/utils/usrp2_card_burner_gui.py ------------------------------------------------------------------------ @@ -58,17 +58,20 @@ Use the net burner tool (unix) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: - cd <prefix>/share/uhd/utils - ./usrp_n2xx_net_burner.py --ip=<ip address> --fw=<path for firmware image> - ./usrp_n2xx_net_burner.py --ip=<ip address> --fpga=<path to FPGA image> + sudo <install-path>/share/uhd/utils/usrp_n2xx_net_burner_gui.py + + -- OR -- + + cd <install-path>/share/uhd/utils + ./usrp_n2xx_net_burner.py --addr=<ip address> --fw=<path for firmware image> + ./usrp_n2xx_net_burner.py --addr=<ip address> --fpga=<path to FPGA image> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use the net burner tool (Windows) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: - <path_to_python.exe> <prefix>/share/uhd/utils/usrp_n2xx_net_burner.py --ip=<ip address> --fw=<path for firmware image> - <path_to_python.exe> <prefix>/share/uhd/utils/usrp_n2xx_net_burner.py --ip=<ip address> --fpga=<path to FPGA image> + <path_to_python.exe> <install-path>/share/uhd/utils/usrp_n2xx_net_burner_gui.py ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Device recovery and bricking @@ -142,7 +145,7 @@ and the network must be setup properly as described above. Run the following commands: :: - cd <prefix>/share/uhd/utils + cd <install-path>/share/uhd/utils ./usrp_burn_mb_eeprom --args=<optional device args> --key=ip-addr --val=192.168.10.3 **Method 2 (Linux Only):** @@ -151,7 +154,7 @@ It uses raw ethernet packets to bypass the IP/UDP layer to communicate with the Run the following commands: :: - cd <prefix>/share/uhd/utils + cd <install-path>/share/uhd/utils sudo ./usrp2_recovery.py --ifc=eth0 --new-ip=192.168.10.3 ------------------------------------------------------------------------ @@ -340,5 +343,5 @@ Test the PPS input with the following app: :: - cd <prefix>/share/uhd/examples + cd <install-path>/share/uhd/examples ./test_pps_input --args=<args> diff --git a/host/docs/usrp_e1xx.rst b/host/docs/usrp_e1xx.rst index ffcd370dd..2818a0a65 100644 --- a/host/docs/usrp_e1xx.rst +++ b/host/docs/usrp_e1xx.rst @@ -61,5 +61,43 @@ can talk directly to the clock generator over a SPI interface. Run the following commands to restore the clock generator to a usable state: :: - cd <prefix>/share/uhd/usrp_e_utilities + cd <install-path>/share/uhd/usrp_e_utilities ./usrp-e-utility --fpga=../images/usrp_e100_pt_fpga.bin --reclk + + +------------------------------------------------------------------------ +Clock Synchronization +------------------------------------------------------------------------ + + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Ref Clock - 10MHz +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The E1xx has a 10MHz TCXO which can be used to discipline the flexible clocking by +selecting REF_INT for the clock_config_t. + +Alternately, an external 10MHz reference clock can be supplied by soldering a connector. + +* Connector J10 (REF_IN) needs MCX connector WM5541-ND or similar +* Square wave will offer the best phase noise performance, but sinusoid is acceptable +* Power level: 0 to 15dBm +* Select REF_SMA in clock_config_t + + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +PPS - Pulse Per Second +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +An exteral PPS signal for timestamp synchronization can be supplied by soldering a connector. + +* Connector J13 (PPS) needs MCX connector WM5541-ND or similar +* Requires a square wave signal +* Amplitude: 3.3 to 5Vpp + +Test the PPS input with the following app: + +* <args> are device address arguments (optional if only one USRP is on your machine) + +:: + + cd <install-path>/share/uhd/examples + ./test_pps_input --args=<args> |