aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/common/ad9361_driver/ad9361_device.h
diff options
context:
space:
mode:
authorTom Tsou <tom.tsou@ettus.com>2015-06-23 12:09:51 -0700
committerMartin Braun <martin.braun@ettus.com>2015-08-13 14:37:42 -0700
commit55d792f85fae26b51e059cca5e5a62807f4b3fcf (patch)
tree9ef712f59f23d017b408650fe0a58a3906d38ba6 /host/lib/usrp/common/ad9361_driver/ad9361_device.h
parentb2eda1fb1a523b6dbc0c7c968af803551383f4ac (diff)
downloaduhd-55d792f85fae26b51e059cca5e5a62807f4b3fcf.tar.gz
uhd-55d792f85fae26b51e059cca5e5a62807f4b3fcf.tar.bz2
uhd-55d792f85fae26b51e059cca5e5a62807f4b3fcf.zip
ad9361: Use separate Tx and RX frequency calibration intervals
Patch addresses issue: #872 "B200: Tx and Rx calibration share same frequency state" ADI specifies recalibration for certain paths when the LO shifts by more than 100 MHz. Tx and Rx maintain independent LO frequencies so use separate values for determining whether to perform re-calibration at tuning intervals. Also, maintain last calibration frequencies from initialization and clock rate changes. Doing so prevents a re-calibration if the first requested Tx or Rx frequency is close to the default values of 850 and 800 MHz respectively. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
Diffstat (limited to 'host/lib/usrp/common/ad9361_driver/ad9361_device.h')
-rw-r--r--host/lib/usrp/common/ad9361_driver/ad9361_device.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/host/lib/usrp/common/ad9361_driver/ad9361_device.h b/host/lib/usrp/common/ad9361_driver/ad9361_device.h
index f9bcd3a5e..efd0f017c 100644
--- a/host/lib/usrp/common/ad9361_driver/ad9361_device.h
+++ b/host/lib/usrp/common/ad9361_driver/ad9361_device.h
@@ -157,6 +157,8 @@ public:
static const double AD9361_MAX_CLOCK_RATE;
static const double AD9361_CAL_VALID_WINDOW;
static const double AD9361_RECOMMENDED_MAX_BANDWIDTH;
+ static const double DEFAULT_RX_FREQ;
+ static const double DEFAULT_TX_FREQ;
private: //Methods
void _program_fir_filter(direction_t direction, int num_taps, boost::uint16_t *coeffs);
@@ -236,7 +238,7 @@ private: //Members
ad9361_io::sptr _io_iface;
//Intermediate state
double _rx_freq, _tx_freq, _req_rx_freq, _req_tx_freq;
- double _last_calibration_freq;
+ double _last_rx_cal_freq, _last_tx_cal_freq;
double _rx_analog_bw, _tx_analog_bw, _rx_bb_lp_bw, _tx_bb_lp_bw;
double _rx_tia_lp_bw, _tx_sec_lp_bw;
//! Current baseband sampling rate (this is the actual rate the device is