diff options
author | Tom Tsou <tom.tsou@ettus.com> | 2015-06-23 12:09:51 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2015-08-13 14:37:42 -0700 |
commit | 55d792f85fae26b51e059cca5e5a62807f4b3fcf (patch) | |
tree | 9ef712f59f23d017b408650fe0a58a3906d38ba6 /host/lib/usrp/common/ad9361_driver/ad9361_device.h | |
parent | b2eda1fb1a523b6dbc0c7c968af803551383f4ac (diff) | |
download | uhd-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.h | 4 |
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 |