Transceiver52M: add WBX, DBSRX, and single board support
Remove all RFX specific parts and control daughterboard
functionality using the base API. The tuning is now set
to a non-inverted image so remove the I/Q swap as well.
Daughterboard configuration is set through an enum
variable. Currently, there is no auto-configuration and
the default is Tx/RX on sides A/B respectively. For
transceiver boards the receive antenna is set to RX2.
enum dboardConfigType {
TXA_RXB,
TXB_RXA,
TXA_RXA,
TXB_RXB
};
const dboardConfigType dboardConfig = TXA_RXB;
Signed-off-by: Thomas Tsou <ttsou@vt.edu>
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2632 19bc5d8c-e614-43d4-8b26-e1612bc8e597
diff --git a/Transceiver52M/USRPDevice.h b/Transceiver52M/USRPDevice.h
index 19aa043..588ab0c 100644
--- a/Transceiver52M/USRPDevice.h
+++ b/Transceiver52M/USRPDevice.h
@@ -54,7 +54,12 @@
double desiredSampleRate; ///< the desired sampling rate
usrp_standard_rx_sptr m_uRx; ///< the USRP receiver
usrp_standard_tx_sptr m_uTx; ///< the USRP transmitter
-
+
+ db_base_sptr m_dbRx; ///< rx daughterboard
+ db_base_sptr m_dbTx; ///< tx daughterboard
+ usrp_subdev_spec rxSubdevSpec;
+ usrp_subdev_spec txSubdevSpec;
+
double actualSampleRate; ///< the actual USRP sampling rate
unsigned int decimRate; ///< the USRP decimation rate
@@ -98,66 +103,6 @@
bool firstRead;
#endif
- /** Mess of constants used to control various hardware on the USRP */
- static const unsigned POWER_UP = (1 << 7);
- static const unsigned RX_TXN = (1 << 6);
- static const unsigned RX2_RX1N = (1 << 6);
- static const unsigned ENABLE = (1 << 5);
- static const unsigned PLL_LOCK_DETECT = (1 << 2);
-
- static const unsigned SPI_ENABLE_TX_A = 0x10;
- static const unsigned SPI_ENABLE_RX_A = 0x20;
- static const unsigned SPI_ENABLE_TX_B = 0x40;
- static const unsigned SPI_ENABLE_RX_B = 0x80;
-
- static const unsigned SPI_FMT_MSB = (0 << 7);
- static const unsigned SPI_FMT_HDR_0 = (0 << 5);
-
- static const float LO_OFFSET;
- //static const float LO_OFFSET = 4.0e6;
-
- static const unsigned R_DIV = 16;
- static const unsigned P = 1;
- static const unsigned CP2 = 7;
- static const unsigned CP1 = 7;
- static const unsigned DIVSEL = 0;
- unsigned DIV2; // changes with GSM band
- unsigned freq_mult; // changes with GSM band
- static const unsigned CPGAIN = 0;
-
- // R-Register Common Values
- static const unsigned R_RSV = 0; // bits 23,22
- static const unsigned BSC = 3; // bits 21,20 Div by 8 to be safe
- static const unsigned TEST = 0; // bit 19
- static const unsigned LDP = 1; // bit 18
- static const unsigned ABP = 0; // bit 17,16 3ns
-
- // N-Register Common Values
- static const unsigned N_RSV = 0; // bit 7
-
- // Control Register Common Values
- static const unsigned PD = 0; // bits 21,20 Normal operation
- static const unsigned PL = 0; // bits 13,12 11mA
- static const unsigned MTLD = 1; // bit 11 enabled
- static const unsigned CPG = 0; // bit 10 CP setting 1
- static const unsigned CP3S = 0; // bit 9 Normal
- static const unsigned PDP = 1; // bit 8 Positive
- static const unsigned MUXOUT = 1;// bits 7:5 Digital Lock Detect
- static const unsigned CR = 0; // bit 4 Normal
- static const unsigned PC = 1; // bits 3,2 Core power 10mA
-
- // ATR register value
- static const int FR_ATR_MASK_0 = 20;
- static const int FR_ATR_TXVAL_0 = 21;
- static const int FR_ATR_RXVAL_0 = 22;
-
- /** Compute register values to tune daughterboard to desired frequency */
- bool compute_regs(double freq,
- unsigned *R,
- unsigned *control,
- unsigned *N,
- double *actual_freq);
-
/** Set the transmission frequency */
bool tx_setFreq(double freq, double *actual_freq);
@@ -233,19 +178,19 @@
double getRxGain(void) {return rxGain;}
/** return maximum Rx Gain **/
- double maxRxGain(void) {return 97.0;}
+ double maxRxGain(void);
/** return minimum Rx Gain **/
- double minRxGain(void) {return 7.0;}
+ double minRxGain(void);
/** sets the transmit chan gain, returns the gain setting **/
double setTxGain(double dB);
/** return maximum Tx Gain **/
- double maxTxGain(void) {return 0.0;}
+ double maxTxGain(void);
/** return minimum Rx Gain **/
- double minTxGain(void) {return -20.0;}
+ double minTxGain(void);
/** Return internal status values */