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 10:33:15 -0700
committerMartin Braun <martin.braun@ettus.com>2015-08-13 14:37:41 -0700
commit94c58baf4a2ba6c3a2c7899030f2de962212d937 (patch)
treee1a1e888193d38520de53d6365c6bd1585cf9b78 /host/lib/usrp/common/ad9361_driver/ad9361_device.h
parent57fe541c9644e7488498d2c0311e38cf4564ec69 (diff)
downloaduhd-94c58baf4a2ba6c3a2c7899030f2de962212d937.tar.gz
uhd-94c58baf4a2ba6c3a2c7899030f2de962212d937.tar.bz2
uhd-94c58baf4a2ba6c3a2c7899030f2de962212d937.zip
ad9361: Enable single shot Rx Quad Cal
Patch provides an alternative resolution to issue #807 "B210: severe distortion on In-phase data for some gain settings" Rx quadrature tracking, an active input-sensitive loop, causes problems on a handful of receive signals. Problematic signals include pulsed GMSK and near-DC tones among others. As an alternative, improve operation when active tracking is disabled. Run single shot quadrature calibration at the following events to provide calibrated image suppression. The corrections without active tracking are not input dependent. Rx quadrature single shot calibration points: 1. AD9361 initialization 2. Clock rate change 3. Tuning differences greater then 100 MHz when tracking is disabled Note that if tracking is enabled (default case), this patch has no effect during streaming. Only the non-default (user set) case is affected. 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.h3
1 files changed, 2 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 98369c2fc..8281ec9e5 100644
--- a/host/lib/usrp/common/ad9361_driver/ad9361_device.h
+++ b/host/lib/usrp/common/ad9361_driver/ad9361_device.h
@@ -187,6 +187,7 @@ private: //Methods
double _setup_rates(const double rate);
double _get_temperature(const double cal_offset, const double timeout = 0.1);
void _configure_bb_rf_dc_tracking(const bool on);
+ void _configure_rx_iq_tracking();
void _setup_agc(chain_t chain, gain_mode_t gain_mode);
void _set_fir_taps(direction_t direction, chain_t chain, const std::vector<boost::int16_t>& taps);
std::vector<boost::int16_t> _get_fir_taps(direction_t direction, chain_t chain);
@@ -259,7 +260,7 @@ private: //Members
//Synchronization
boost::recursive_mutex _mutex;
bool _use_dc_offset_correction;
- bool _use_iq_balance_correction;
+ bool _use_iq_balance_tracking;
};
}} //namespace