umtrx: Don't use DSP tuning, because LMS6002D PLL steps are small enough.

We end up with DSP tuning just for 2-3Hz, which is meaningless and
only distort the signal.

Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
This commit is contained in:
Alexander Chemeris 2015-04-09 18:55:02 +03:00 committed by Tom Tsou
parent e171425b99
commit 90f7a01d1d
1 changed files with 13 additions and 1 deletions

View File

@ -1114,7 +1114,19 @@ uhd::tune_request_t uhd_device::select_freq(double freq, size_t chan, bool tx)
std::vector<double> freqs;
uhd::tune_request_t treq(freq);
if ((chans == 1) || ((chans == 2) && dev_type == UMTRX)) {
if (dev_type == UMTRX) {
if (offset > 0.0)
return uhd::tune_request_t(freq, offset);
// Don't use DSP tuning, because LMS6002D PLL steps are small enough.
// We end up with DSP tuning just for 2-3Hz, which is meaningless and
// only distort the signal (because cordic is not ideal).
treq.target_freq = freq;
treq.rf_freq_policy = uhd::tune_request_t::POLICY_MANUAL;
treq.rf_freq = freq;
treq.dsp_freq_policy = uhd::tune_request_t::POLICY_MANUAL;
treq.dsp_freq = 0.0;
} else if (chans == 1) {
if (offset == 0.0)
return treq;