aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2015-04-09 18:55:02 +0300
committerTom Tsou <tom.tsou@ettus.com>2015-05-18 16:49:24 -0700
commit90f7a01d1de4bd915b3999b168535ed6e68e9c50 (patch)
tree20f0a3e39887ff57ed68bced6ebfa99c9e458671
parente171425b99b2bf2c21898cfcbd42d3d927721eca (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>
-rw-r--r--Transceiver52M/UHDDevice.cpp14
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;