diff options
author | Tom Tsou <tom.tsou@ettus.com> | 2015-06-23 10:33:15 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2015-08-13 14:37:41 -0700 |
commit | 94c58baf4a2ba6c3a2c7899030f2de962212d937 (patch) | |
tree | e1a1e888193d38520de53d6365c6bd1585cf9b78 /host/lib/usrp/common/ad9361_driver/ad9361_device.h | |
parent | 57fe541c9644e7488498d2c0311e38cf4564ec69 (diff) | |
download | uhd-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.h | 3 |
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 |