Difference between revisions of "TwinRX"
(→Certificate of Volatility) |
(→USRP Compatibility: fix USRP compatibility and master clock rate) |
||
(36 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
== Device Overview == | == Device Overview == | ||
− | The TwinRX daughterboard for the USRP | + | |
+ | The TwinRX daughterboard for the USRP X300 and X310 SDR platform is a two-channel superheterodyne receiver designed for high performance spectrum monitoring and direction finding applications. The receiver is tunable from 10 MHz - 6 GHz and has 80 MHz of instantaneous bandwidth per channel, providing the versatility necessary to analyze a variety of signals in multiple bands of interest. Each channel has an independent RF signal chain with preampilifiers, preselectors, and two mixer stages for superior selectivity. Users can tune the two channels independently to simultaneously monitor uplink and downlink communication with a combined bandwidth of 160 MHz. The ability to share the LO between channels across multiple daughterboards enables the phase-aligned operation required to implement scalable multi-channel phased-arrays. The receiver is capable of fast frequency hopping to detect frequency agile emitters. Configurable RF attenuation and preamplication allow users to optimize dynamic range in favor of noise figure for faint signals, or IP3 for stronger signals. UHD automatically configures the RF signal path for optimized performance in the pre-defined use cases, and provides the flexibility to adjust settings manually. Support for RFNoC on the X Series motherboard enables deterministic FPGA-accelerated computations for real-time spectrum analysis. The TwinRX daughterboard is supported by the USRP Hardware Driver™ (UHD) software API for seamless integration into existing applications. | ||
+ | |||
+ | [[File:TwinRX BlockDiagram.png|1000px|center]] | ||
== Key Features== | == Key Features== | ||
Line 10: | Line 13: | ||
* RF shielding | * RF shielding | ||
* Independent RF signal channels with optional LO sharing | * Independent RF signal channels with optional LO sharing | ||
− | + | |[[File:TwinRX large.png|250px|center]] | |
|} | |} | ||
Line 16: | Line 19: | ||
===Features=== | ===Features=== | ||
* 2 superheterodyne frontends (2 receive) | * 2 superheterodyne frontends (2 receive) | ||
+ | * 80 MHz per channel | ||
+ | * Independent tuning | ||
+ | * LO Sharing Capability | ||
+ | * Coherent and phase-aligned operation | ||
+ | * Preselection Filters | ||
+ | * RF Shielding | ||
===Antennas=== | ===Antennas=== | ||
Line 21: | Line 30: | ||
===Gains=== | ===Gains=== | ||
− | * Receive Gains Range: 0- | + | * Receive Gains Range: 0-93dB |
===Bandwidths=== | ===Bandwidths=== | ||
Line 31: | Line 40: | ||
===Ports=== | ===Ports=== | ||
The TwinRX has six MMCX RF connectors on it. | The TwinRX has six MMCX RF connectors on it. | ||
+ | |||
+ | {| | ||
+ | |style="vertical-align:top"| | ||
{|class="wikitable" | {|class="wikitable" | ||
− | !Connector | + | |
− | !Description | + | ! Connector |
− | !Damage | + | ! Description |
+ | ! Min | ||
+ | ! Nominal | ||
+ | ! Damage | ||
|- | |- | ||
| J1 | | J1 | ||
| LO2 Export | | LO2 Export | ||
− | | 0 dBm | + | | 0 dBm |
+ | | 3 dBm | ||
+ | | NA (Output) | ||
|- | |- | ||
| J2 | | J2 | ||
| LO2 Input | | LO2 Input | ||
− | | | + | | 0 dBm |
+ | | 2 dBm | ||
+ | | 20dBm | ||
|- | |- | ||
| J3 | | J3 | ||
| LO1 Export | | LO1 Export | ||
− | | | + | | -12 dBm |
+ | | 5 dBm | ||
+ | | NA (Output) | ||
|- | |- | ||
| J4 | | J4 | ||
| LO1 Input | | LO1 Input | ||
− | | | + | | -10 dBm |
+ | | -5 dBm | ||
+ | | 10dBm | ||
|- | |- | ||
| J5 | | J5 | ||
− | | Antenna 1 connector | + | | Antenna 1 connector RX 1 |
− | | | + | | |
+ | | | ||
+ | | 10 dBm | ||
|- | |- | ||
+ | |||
| J6 | | J6 | ||
− | | Antenna 2 connector | + | | Antenna 2 connector RX 2 |
− | | | + | | |
+ | | | ||
+ | | 10 dBm | ||
|- | |- | ||
+ | |||
+ | |||
|} | |} | ||
===Preselector Filters=== | ===Preselector Filters=== | ||
+ | {| | ||
+ | |style="vertical-align:top"| | ||
+ | |||
{|class="wikitable" | {|class="wikitable" | ||
!Band | !Band | ||
Line 107: | Line 140: | ||
|- | |- | ||
+ | |} | ||
+ | |||
+ | |style="vertical-align:top"|[[File:TwinRX Normalized Preselector Response.png|650px|center]] | ||
|} | |} | ||
* Each preselector filter has a ±40 MHz band overlap. | * Each preselector filter has a ±40 MHz band overlap. | ||
− | |||
==RF Specifications== | ==RF Specifications== | ||
− | + | ===Freq Range=== | |
* 10MHz - 6GHz | * 10MHz - 6GHz | ||
− | + | ===Noise Figure=== | |
− | + | {| class="wikitable" style="width:60%" | |
+ | !Frequency | ||
+ | !Preamp Enabled | ||
+ | |- | ||
+ | |||
+ | | 10 MHz - 3 GHz | ||
+ | | < 5 | ||
+ | |- | ||
+ | |||
+ | | 3 GHz - 5 GHz | ||
+ | | < 4 | ||
+ | |- | ||
+ | |||
+ | | 5 GHz - 6 GHz | ||
+ | | < 8 | ||
+ | |- | ||
+ | |||
+ | |} | ||
+ | |||
+ | ===RX Third Order Intercept (dBm)=== | ||
+ | {| class="wikitable" style="width:60%" | ||
+ | |||
+ | !Frequency | ||
+ | !Full Scale = -45 dBm | ||
+ | !Full Scale = -30 dBm | ||
+ | !Full Scale = -20 dBm | ||
+ | |- | ||
+ | |||
+ | | 10 MHz - 1.8 GHz | ||
+ | | -8 | ||
+ | | -2 | ||
+ | | 16 | ||
+ | |- | ||
+ | |||
+ | | 1.8 GHz - 3 GHz | ||
+ | | -10 | ||
+ | | -1 | ||
+ | | 14 | ||
+ | |- | ||
+ | |||
+ | | 3 GHz - 6 GHz | ||
+ | | -13 | ||
+ | | -1 | ||
+ | | 12 | ||
+ | |- | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ===Phase Noise (dBc/Hz)=== | ||
+ | {| class="wikitable" style="width:60%" | ||
+ | !Frequency Offset | ||
+ | ! 0.9 GHz | ||
+ | ! 2.4 GHz | ||
+ | ! 5.8 GHz | ||
+ | |- | ||
+ | |||
+ | | 10 kHz | ||
+ | | -88 | ||
+ | | -86 | ||
+ | | -82 | ||
+ | |- | ||
+ | |||
+ | |||
+ | | 100 kHz | ||
+ | | -105 | ||
+ | | -107 | ||
+ | | -103 | ||
+ | |- | ||
+ | |||
+ | |||
+ | | 1 MHz | ||
+ | | -124 | ||
+ | | -127 | ||
+ | | -127 | ||
+ | |- | ||
+ | |||
+ | |} | ||
− | + | ===Input/Output Impedance=== | |
− | * | + | * All RF Ports are matched to 50 Ohm with -10dB or better return loss generally. Detailed test is pending. |
− | + | ===Input Power Levels=== | |
− | * | + | * The maximum input power for the TwinRX is +10 dBm. |
==Hardware Specifications== | ==Hardware Specifications== | ||
Line 139: | Line 251: | ||
* 10% to 90% non-condensing | * 10% to 90% non-condensing | ||
− | ==USRP Compatibility== | + | == USRP Compatibility == |
− | * | + | |
+ | * X300 and X310 USRP only | ||
+ | |||
+ | * <code>master_clock_rate</code> of 200e6 only. The TwinRX daughterboard does not operate with the master clock rate of 184.32e6; operation with this master clock rate will result in UHD errors such as the following: | ||
+ | |||
+ | <pre> | ||
+ | [ERROR] [DBMGR] The daughterboard manager encountered a recoverable error in init. | ||
+ | Loading the "unknown" daughterboard implementations to continue. | ||
+ | The daughterboard cannot operate until this error is resolved. | ||
+ | ValueError: TwinRX clock rate 92160000.000000 is not a multiple of the pfd freq 12500000.000000. | ||
+ | </pre> | ||
+ | |||
+ | ==Phase Synchronization== | ||
+ | The TwinRX daughterboard is capable of phase-synchronous operation, and is recommended for phase-coherent applications. Please note that the TwinRX is receive-only. The SBX and UBX daughterboards are also recommended for phase-coherent applications, and are capable of both transmit and receive operations. | ||
==Schematics== | ==Schematics== | ||
− | [ | + | The TwinRX daughterboard is composed of two PCBs, the Intermediate Frequency (IF) board and the RF board. There are two functionally identical revisions of TwinRX at the moment. Please check the back of your TwinRX to see which you have. The schematics for TwinRX revision B should answer most possible questions. If you have any further questions please email [mailto:support@ettus.com support@ettus.com]. |
− | + | TwinRX Revision A - (159685A-01) | |
− | + | * IF Board Revision B - (158671B-01L) | |
− | * [[ | + | * RF Board Revision C - (156263C-01L) |
+ | |||
+ | TwinRX Revision B - (159685B-01) | ||
+ | * IF Board Revision C - (158671C-01L) | ||
+ | * RF Board Revision D - (156263D-01L) | ||
+ | |||
+ | [[File:TwinRX IF Board Rev C.pdf]] | ||
+ | |||
+ | [[File:TwinRX RF Board Rev D.pdf]] | ||
==RF Connectors== | ==RF Connectors== | ||
+ | {| | ||
+ | |style="vertical-align:top"| | ||
The antenna ports are MMCX connectors with 50 ohm input impedance. By default Antenna 1 (RX1) is routed to Channel 1 and Antenna 2 (RX2) to Channel 2. This routing can be changed to swap the antennas or to share a single antenna to both channels. The damage threshold for the antenna inputs is 10 dBm. In practice the available gain makes much lower input powers recommended for achieving the best dynamic range and noise figure. | The antenna ports are MMCX connectors with 50 ohm input impedance. By default Antenna 1 (RX1) is routed to Channel 1 and Antenna 2 (RX2) to Channel 2. This routing can be changed to swap the antennas or to share a single antenna to both channels. The damage threshold for the antenna inputs is 10 dBm. In practice the available gain makes much lower input powers recommended for achieving the best dynamic range and noise figure. | ||
+ | |[[File:TwinRX 80 Inputs.jpg|250px|center]] | ||
+ | |} | ||
==Local Oscillator Connectors== | ==Local Oscillator Connectors== | ||
+ | Note: LO sharing cables are not required for a single TwinRX setup. LO sharing cables are only required with two TwinRX daughterboards in a single USRP X300/X310. | ||
+ | |||
+ | {| | ||
+ | |style="vertical-align:top"| | ||
+ | |||
+ | |||
+ | {| | ||
+ | |style="vertical-align:top"| | ||
+ | |||
{|class="wikitable" | {|class="wikitable" | ||
Line 165: | Line 311: | ||
| LO2 Export | | LO2 Export | ||
| 0 dBm | | 0 dBm | ||
− | | | + | | 3 dBm |
| NA (Output) | | NA (Output) | ||
|- | |- | ||
Line 172: | Line 318: | ||
| LO2 Input | | LO2 Input | ||
| 0 dBm | | 0 dBm | ||
− | | | + | | 2 dBm |
+ | | 20dBm | ||
|- | |- | ||
Line 178: | Line 325: | ||
| LO1 Export | | LO1 Export | ||
| -12 dBm | | -12 dBm | ||
− | | | + | | 5 dBm |
| NA (Output) | | NA (Output) | ||
|- | |- | ||
Line 186: | Line 333: | ||
| -10 dBm | | -10 dBm | ||
| -5 dBm | | -5 dBm | ||
− | | | + | | 10dBm |
|- | |- | ||
+ | |||
+ | | J5 | ||
+ | | Antenna 1 connector RX 1 | ||
+ | | | ||
+ | | | ||
+ | | 10 dBm | ||
+ | |- | ||
+ | |||
+ | |||
+ | | J6 | ||
+ | | Antenna 2 connector RX 2 | ||
+ | | | ||
+ | | | ||
+ | | 10 dBm | ||
+ | |- | ||
+ | |||
|} | |} | ||
+ | |||
+ | | style="padding-left: 30px" | [[File:TwinRX 80 LOs.jpg|250px|center]] | ||
+ | |} | ||
+ | |||
+ | ===LO Sharing with Neighbour TwinRXs=== | ||
+ | {|class="wikitable" | ||
+ | !TwinRX (A Slot) | ||
+ | !TwinRX (B Slot) | ||
+ | |- | ||
+ | |J1 LO2 Export | ||
+ | |J2 LO2 Input | ||
+ | |- | ||
+ | |J2 LO2 Input | ||
+ | |J1 LO2 Export | ||
+ | |- | ||
+ | |J3 LO1 Export | ||
+ | |J4 LO1 Input | ||
+ | |- | ||
+ | |J4 LO1 Input | ||
+ | |J3 LO1 Export | ||
+ | |- | ||
+ | |||
+ | |} | ||
+ | |||
+ | ==Software API== | ||
+ | |||
+ | ===New Multi USRP Functions=== | ||
+ | The advanced functionalities of the TwinRX will be exposed through new functions implemented in [http://files.ettus.com/manual/classuhd_1_1usrp_1_1multi__usrp.html Multi-USRP]. | ||
+ | |||
+ | ===Antenna Mapping=== | ||
+ | The two channels of the TwinRX can be independently configured to use either of the two antenna ports, '''RX1''' and '''RX2''' using the standard antenna selection function in <code>multi_usrp</code>. | ||
+ | |||
+ | virtual void set_rx_antenna(const std::string &ant, size_t chan = 0) = 0; | ||
+ | |||
+ | Select the RX antenna on the frontend. | ||
+ | * '''ant''' the antenna name | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | |||
+ | |||
+ | ===Local Oscillator Control and Routing=== | ||
+ | The TwinRX has two channels, '''CH1''' and '''CH2''' and each channel has two local oscillators, '''LO1''' and '''LO2'''. The local oscillators for a channel can be sourced from that channel's '''internal''' synthesizers, the '''companion''' channel's synthesizers, or '''external''' inputs. The value <code>multi_usrp::ALL_LOS</code> can be used to specify that the command be run on both synthesizers for a channel. The defaults are to operate on | ||
+ | |||
+ | virtual std::vector<std::string> get_rx_lo_names(size_t chan = 0) = 0; | ||
+ | |||
+ | Get a list of possible LO stage names | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | * Returns a vector of strings for possible LO names | ||
+ | |||
+ | |||
+ | virtual void set_rx_lo_source(const std::string &src, const std::string &name = ALL_LOS, size_t chan = 0) = 0; | ||
+ | |||
+ | Set the LO source for the usrp device. For USRPs that support selectable LOs, this function allows switching between them. Supported options for source: internal, external, companion. | ||
+ | * '''src''' a string representing the LO source | ||
+ | * '''name''' the name of the LO stage to update | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | |||
+ | |||
+ | virtual const std::string get_rx_lo_source(const std::string &name = ALL_LOS, size_t chan = 0) = 0; | ||
+ | |||
+ | Get the currently set LO source. | ||
+ | * '''name''' the name of the LO stage to query | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | * Returns the configured LO source | ||
+ | |||
+ | |||
+ | virtual std::vector<std::string> get_rx_lo_sources(const std::string &name = ALL_LOS, size_t chan = 0) = 0; | ||
+ | |||
+ | Get a list of possible LO sources. | ||
+ | * '''name''' the name of the LO stage to query | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | * Returns a vector of strings for possible settings | ||
+ | |||
+ | |||
+ | virtual double set_rx_lo_freq(double freq, const std::string &name, size_t chan = 0) = 0; | ||
+ | |||
+ | Set the RX LO frequency. | ||
+ | * '''freq''' the frequency to set the LO to | ||
+ | * '''name''' the name of the LO stage to update | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | * Returns a coerced LO frequency | ||
+ | |||
+ | |||
+ | virtual double get_rx_lo_freq(const std::string &name, size_t chan = 0) = 0; | ||
+ | |||
+ | Get the current RX LO frequency. | ||
+ | * '''name''' the name of the LO stage to query | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | * Returns the configured LO frequency | ||
+ | |||
+ | |||
+ | virtual freq_range_t get_rx_lo_freq_range(const std::string &name, size_t chan = 0) = 0; | ||
+ | |||
+ | Get the LO frequency range of the RX LO. | ||
+ | * '''name''' the name of the LO stage to query | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | * Returns a frequency range object | ||
+ | |||
+ | |||
+ | ===Exporting Local Oscillators=== | ||
+ | |||
+ | virtual void set_rx_lo_export_enabled(bool enabled, const std::string &name = ALL_LOS, size_t chan = 0) = 0; | ||
+ | |||
+ | Set whether the LO used by the usrp device is exported For USRPs that support exportable LOs, this function configures if the LO used by chan is exported or not. | ||
+ | * '''enabled''' if true then export the LO | ||
+ | * '''name''' the name of the LO stage to update | ||
+ | * '''chan''' the channel index 0 to N-1 for the source channel | ||
+ | |||
+ | |||
+ | virtual bool get_rx_lo_export_enabled(const std::string &name = ALL_LOS, size_t chan = 0) = 0; | ||
+ | |||
+ | Returns true if the currently selected LO is being exported. | ||
+ | * '''name''' the name of the LO stage to query | ||
+ | * '''chan''' the channel index 0 to N-1 | ||
+ | |||
+ | ==Drawings== | ||
+ | * [[File:cu usrp twinrx cca.pdf]] | ||
==Certifications== | ==Certifications== | ||
Line 195: | Line 474: | ||
As of December 1st, 2010 all Ettus Research products are RoHS compliant unless otherwise noted. More information can be found at [http://ettus.com/legal/rohs-information http://ettus.com/legal/rohs-information] | As of December 1st, 2010 all Ettus Research products are RoHS compliant unless otherwise noted. More information can be found at [http://ettus.com/legal/rohs-information http://ettus.com/legal/rohs-information] | ||
− | == | + | ===China RoHS=== |
− | + | '''Management Methods for Controlling Pollution Caused by Electronic Information Products Regulation''' | |
− | == | + | '''Chinese Customers''' |
− | + | ||
+ | National Instruments is in compliance with the Chinese policy on the Restriction of Hazardous Substances (RoHS) used in Electronic Information Products. For more information about the National Instruments China RoHS compliance, visit [http://www.ni.com/environment/rohs_china ni.com/environment/rohs_china]. | ||
+ | |||
+ | ==Certificate of Volatility== | ||
+ | [https://www.ni.com/pdf/manuals/377337a.pdf TwinRX Letter of Volatility] | ||
==Downloads== | ==Downloads== |
Latest revision as of 11:02, 25 January 2023
Contents
- 1 Device Overview
- 2 Key Features
- 3 Daughterboard Specifications
- 4 RF Specifications
- 5 Hardware Specifications
- 6 Environmental Specifications
- 7 USRP Compatibility
- 8 Phase Synchronization
- 9 Schematics
- 10 RF Connectors
- 11 Local Oscillator Connectors
- 12 Software API
- 13 Drawings
- 14 Certifications
- 15 Certificate of Volatility
- 16 Downloads
Device Overview
The TwinRX daughterboard for the USRP X300 and X310 SDR platform is a two-channel superheterodyne receiver designed for high performance spectrum monitoring and direction finding applications. The receiver is tunable from 10 MHz - 6 GHz and has 80 MHz of instantaneous bandwidth per channel, providing the versatility necessary to analyze a variety of signals in multiple bands of interest. Each channel has an independent RF signal chain with preampilifiers, preselectors, and two mixer stages for superior selectivity. Users can tune the two channels independently to simultaneously monitor uplink and downlink communication with a combined bandwidth of 160 MHz. The ability to share the LO between channels across multiple daughterboards enables the phase-aligned operation required to implement scalable multi-channel phased-arrays. The receiver is capable of fast frequency hopping to detect frequency agile emitters. Configurable RF attenuation and preamplication allow users to optimize dynamic range in favor of noise figure for faint signals, or IP3 for stronger signals. UHD automatically configures the RF signal path for optimized performance in the pre-defined use cases, and provides the flexibility to adjust settings manually. Support for RFNoC on the X Series motherboard enables deterministic FPGA-accelerated computations for real-time spectrum analysis. The TwinRX daughterboard is supported by the USRP Hardware Driver™ (UHD) software API for seamless integration into existing applications.
Key Features
|
Daughterboard Specifications
Features
- 2 superheterodyne frontends (2 receive)
- 80 MHz per channel
- Independent tuning
- LO Sharing Capability
- Coherent and phase-aligned operation
- Preselection Filters
- RF Shielding
Antennas
Receive: RX1 or RX2
Gains
- Receive Gains Range: 0-93dB
Bandwidths
- TwinRX: 80 MHz per channel ( 160 MHz total )
Sensors
- lo_locked: boolean for LO lock state
Ports
The TwinRX has six MMCX RF connectors on it.
Preselector Filters
RF SpecificationsFreq Range
Noise Figure
RX Third Order Intercept (dBm)
Phase Noise (dBc/Hz)
Input/Output Impedance
Input Power Levels
Hardware Specifications
TwinRX
Environmental SpecificationsOperating Temperature Range
Operating Humidity Range
USRP Compatibility
[ERROR] [DBMGR] The daughterboard manager encountered a recoverable error in init. Loading the "unknown" daughterboard implementations to continue. The daughterboard cannot operate until this error is resolved. ValueError: TwinRX clock rate 92160000.000000 is not a multiple of the pfd freq 12500000.000000. Phase SynchronizationThe TwinRX daughterboard is capable of phase-synchronous operation, and is recommended for phase-coherent applications. Please note that the TwinRX is receive-only. The SBX and UBX daughterboards are also recommended for phase-coherent applications, and are capable of both transmit and receive operations. SchematicsThe TwinRX daughterboard is composed of two PCBs, the Intermediate Frequency (IF) board and the RF board. There are two functionally identical revisions of TwinRX at the moment. Please check the back of your TwinRX to see which you have. The schematics for TwinRX revision B should answer most possible questions. If you have any further questions please email support@ettus.com. TwinRX Revision A - (159685A-01)
TwinRX Revision B - (159685B-01)
File:TwinRX IF Board Rev C.pdf File:TwinRX RF Board Rev D.pdf RF Connectors
Local Oscillator ConnectorsNote: LO sharing cables are not required for a single TwinRX setup. LO sharing cables are only required with two TwinRX daughterboards in a single USRP X300/X310.
|