======================================================================== UHD Daughterboard Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Daughterboard Properties ------------------------------------------------------------------------ The following contains interesting notes about each daughterboard. Eventually, this page will be expanded to list out the full properties of each board as well. ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Basic RX and LFRX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Basic RX and LFRX boards have 4 frontends: * **Frontend A:** real signal on antenna RXA * **Frontend B:** real signal on antenna RXB * **Frontend AB:** quadrature frontend using both antennas (IQ) * **Frontend BA:** quadrature frontend using both antennas (QI) The boards have no tunable elements or programmable gains. Through the magic of aliasing, you can down-convert signals greater than the Nyquist rate of the ADC. BasicRX Bandwidth: * **For Real-Mode (A or B frontend)**: 250 MHz * **For Complex (AB or BA frontend)**: 500 MHz LFRX Bandwidth: * **For Real-Mode (A or B frontend)**: 33 MHz * **For Complex (AB or BA frontend)**: 66 MHz ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Basic TX and LFTX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Basic TX and LFTX boards have 4 frontends: * **Frontend A:** real signal on antenna TXA * **Frontend B:** real signal on antenna TXB * **Frontend AB:** quadrature frontend using both antennas (IQ) * **Frontend BA:** quadrature frontend using both antennas (QI) The boards have no tunable elements or programmable gains. Through the magic of aliasing, you can up-convert signals greater than the Nyquist rate of the DAC. BasicTX Bandwidth (Hz): * **For Real-Mode (A or B frontend**): 250 MHz * **For Complex (AB or BA frontend)**: 500 MHz LFTX Bandwidth (Hz): * **For Real-Mode (A or B frontend)**: 33 MHz * **For Complex (AB or BA frontend)**: 66 MHz ^^^^^^^^^^^^^^^^^^^^^^^^^^^ DBSRX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The DBSRX board has 1 quadrature frontend. It defaults to direct conversion but can use a low IF through lo_offset in **uhd::tune_request_t**. Receive Antennas: **J3** * **Frontend 0:** Complex baseband signal from antenna J3 The board has no user selectable antenna setting. Receive Gains: * **GC1**, Range: 0-56dB * **GC2**, Range: 0-24dB Bandwidth: 8 MHz - 66 MHz Sensors: * **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ DBSRX2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The DBSRX2 board has 1 quadrature frontend. It defaults to direct conversion, but can use a low IF through lo_offset in **uhd::tune_request_t**. Receive Antennas: **J3** * **Frontend 0:** Complex baseband signal from antenna J3 The board has no user-selectable antenna setting. Receive Gains: * **GC1**, Range: 0-73dB * **BBG**, Range: 0-15dB Bandwidth (Hz): 8 MHz -80 MHz Sensors: * **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ RFX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The RFX Series boards have 2 quadrature frontends: Transmit and 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** * **Frontend 0:** Complex baseband signal for selected antenna The user may set the receive antenna to be TX/RX or RX2. However, when using an RFX board in full-duplex mode, 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) Bandwidth: * **RX**: 40 MHz * **TX**: 40 MHz Sensors: * **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ XCVR 2450 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The XCVR2450 has 2 quadrature frontends, 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.0 GHz) and a low band (2.4-2.5 GHz). Transmit Antennas: **J1** or **J2** Receive Antennas: **J1** or **J2** * **Frontend 0:** Complex baseband signal for selected antenna 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. 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 Receive Gains: * **LNA**, Range: 0-30.5dB * **VGA**, Range: 0-62dB Bandwidths: * **RX**: 15 MHz, 19 MHz, 28 MHz, 36 MHz; (each +-0, 5, or 10%) * **TX**: 24 MHz, 36 MHz, 48 MHz Sensors: * **lo_locked**: boolean for LO lock state * **rssi**: float for rssi in dBm ^^^^^^^^^^^^^^^^^^^^^^^^^^^ WBX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Features: * 2 quadrature frontends (1 transmit, 1 receive) * Defaults to direct conversion * Can be used in low IF mode through lo_offset with **uhd::tune_request_t** * Independent recieve and transmit LO's and synthesizers * Allows for full-duplex operation on different transmit and receive frequencies * Can be set to use Integer-N tuning for better spur performance with **uhd::tune_request_t** Transmit Antennas: **TX/RX** Receive Antennas: **TX/RX** or **RX2** * **Frontend 0:** Complex baseband signal for selected antenna * **Note:** The user may set the receive antenna to be TX/RX or RX2. However, when using a WBX board in full-duplex mode, the receive antenna will always be set to RX2, regardless of the settings. Transmit Gains: **PGA0**, Range: 0-25dB Receive Gains: **PGA0**, Range: 0-31.5dB Bandwidths: * **WBX**: 40 MHz, RX & TX * **WBX-120**: 120 MHz, RX & TX Sensors: * **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ SBX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Features: * 2 quadrature frontends (1 transmit, 1 receive) * Defaults to direct conversion * Can be used in low IF mode through lo_offset with **uhd::tune_request_t** * Independent recieve and transmit LO's and synthesizers * Allows for full-duplex operation on different transmit and receive frequencies * Can be set to use Integer-N tuning for better spur performance with **uhd::tune_request_t** Transmit Antennas: **TX/RX** Receive Antennas: **TX/RX** or **RX2** * **Frontend 0:** Complex baseband signal for selected antenna * **Note:** The user may set the receive antenna to be TX/RX or RX2. However, when using an SBX board in full-duplex mode, the receive antenna will always be set to RX2, regardless of the settings. Transmit Gains: **PGA0**, Range: 0-31.5dB Receive Gains: **PGA0**, Range: 0-31.5dB Bandwidths: * **SBX**: 40 MHz, RX & TX * **SBX-120**: 120 MHz, RX & TX Sensors: * **lo_locked**: boolean for LO lock state LEDs: * All LEDs flash when daughterboard control is initialized * **TX LD**: Transmit Synthesizer Lock Detect * **TX/RX**: Receiver on TX/RX antenna port (No TX) * **RX LD**: Receive Synthesizer Lock Detect * **RX1/RX2**: Receiver on RX2 antenna port ^^^^^^^^^^^^^^^^^^^^^^^^^^^ CBX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Features: * 2 quadrature frontends (1 transmit, 1 receive) * Defaults to direct conversion * Can be used in low IF mode through lo_offset with **uhd::tune_request_t** * Independent recieve and transmit LO's and synthesizers * Allows for full-duplex operation on different transmit and receive frequencies * Can be set to use Integer-N tuning for better spur performance with **uhd::tune_request_t** Transmit Antennas: **TX/RX** Receive Antennas: **TX/RX** or **RX2** * **Frontend 0:** Complex baseband signal for selected antenna * **Note:** The user may set the receive antenna to be TX/RX or RX2. However, when using a CBX board in full-duplex mode, the receive antenna will always be set to RX2, regardless of the settings. Transmit Gains: **PGA0**, Range: 0-31.5dB Receive Gains: **PGA0**, Range: 0-31.5dB Bandwidths: * **CBX**: 40 MHz, RX & TX * **CBX-120**: 120 MHz, RX & TX Sensors: * **lo_locked**: boolean for LO lock state LEDs: * All LEDs flash when daughterboard control is initialized * **TX LD**: Transmit Synthesizer Lock Detect * **TX/RX**: Receiver on TX/RX antenna port (No TX) * **RX LD**: Receive Synthesizer Lock Detect * **RX1/RX2**: Receiver on RX2 antenna port ^^^^^^^^^^^^^^^^^^^^^^^^^^^ TVRX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The TVRX board has 1 real-mode frontend. It is operated at a low IF. Receive Antennas: RX * **Frontend 0:** real-mode baseband signal from antenna RX Receive Gains: * **RF**, Range: -13.3-50.3dB (frequency-dependent) * **IF**, Range: -1.5-32.5dB Bandwidth: 6 MHz ^^^^^^^^^^^^^^^^^^^^^^^^^^^ TVRX2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The TVRX2 board has 2 real-mode frontends. It is operated at a low IF. Receive Frontends: * **Frontend RX1:** real-mode baseband from antenna J100 * **Frontend RX2:** real-mode baseband from antenna J140 Note: The TVRX2 has always-on AGC; the software controllable gain is the final gain stage which controls the AGC set-point for output to ADC. Receive Gains: * **IF**, Range: 0.0-30.0dB Bandwidth: 1.7 MHz, 6 MHz, 7 MHz, 8 MHz, 10 MHz Sensors: * **lo_locked**: boolean for LO lock state * **rssi**: float for measured RSSI in dBm * **temperature**: float for measured temperature in degC ^^^^^^^^^^^^^^^^^^^^^^^^^^^ DBSRX - Mod ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Due to different clocking capabilities, the DBSRX will require modifications to operate on a non-USRP1 motherboard. On a USRP1 motherboard, a divided clock is provided from an FPGA pin because the standard daughterboard clock lines cannot provided a divided clock. However, on other USRP motherboards, the divided clock is provided over the standard daughterboard clock lines. **Step 1: Move the clock configuration resistor** Remove **R193** (which is 10 Ohms, 0603 size), and put it on **R194**, which is empty. This is made somewhat more complicated by the fact that the silkscreen is not clear in that area. **R193** is on the back, immediately below the large beige connector, **J2**. **R194** is just below, and to the left of **R193**. The silkscreen for **R193** is ok, but for **R194**, it is upside down, and partially cut off. If you lose **R193**, you can use anything from 0 to 10 Ohms there. **Step 2: Burn a new daughterboard id into the EEPROM** With the daughterboard plugged-in, run the following commands: :: cd /lib/uhd/utils ./usrp_burn_db_eeprom --id=0x000d --unit=RX --args= --slot= * **** are device address arguments (optional if only one USRP device is on your machine) * **** is the name of the daughterboard slot (optional if the USRP device has only one slot) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ RFX - Mod ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Older RFX boards require modifications to use the motherboard oscillator. If this is the case, UHD software will print a warning about the modification. Please follow the modification procedures below: **Step 1: Disable the daughterboard clocks** Move **R64** to **R84**. Move **R142** to **R153**. **Step 2: Connect the motherboard blocks** Move **R35** to **R36**. Move **R117** to **R115**. These are all 0-Ohm, so if you lose one, just short across the appropriate pads. **Step 3: Burn the appropriate daughterboard ID into the EEPROM** With the daughterboard plugged-in, run the following commands: :: cd /lib/uhd/utils ./usrp_burn_db_eeprom --id= --unit=RX --args= --slot= ./usrp_burn_db_eeprom --id= --unit=TX --args= --slot= * **** choose the appropriate RX ID for your daughterboard * **RFX400:** 0x0024 * **RFX900:** 0x0025 * **RFX1800:** 0x0034 * **RFX1200:** 0x0026 * **RFX2400:** 0x0027 * **** choose the appropriate TX ID for your daughterboard * **RFX400:** 0x0028 * **RFX900:** 0x0029 * **RFX1800:** 0x0035 * **RFX1200:** 0x002a * **RFX2400:** 0x002b * **** are device address arguments (optional if only one USRP device is on your machine) * **** is the name of the daughterboard slot (optional if the USRP device has only one slot)