diff options
author | Alexander Chemeris <Alexander.Chemeris@gmail.com> | 2015-04-09 18:55:02 +0300 |
---|---|---|
committer | Tom Tsou <tom.tsou@ettus.com> | 2015-05-18 16:49:24 -0700 |
commit | 90f7a01d1de4bd915b3999b168535ed6e68e9c50 (patch) | |
tree | 20f0a3e39887ff57ed68bced6ebfa99c9e458671 /Transceiver52M | |
parent | e171425b99b2bf2c21898cfcbd42d3d927721eca (diff) |
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>
Diffstat (limited to 'Transceiver52M')
-rw-r--r-- | Transceiver52M/UHDDevice.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index 7721999..95a82b3 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -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; |