aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2015-04-09 18:55:02 +0300
committerAlexander Chemeris <Alexander.Chemeris@gmail.com>2015-04-09 19:02:36 +0300
commit2595714dd1958f65ca53b795f0d1eecc61a1b8c9 (patch)
tree3bdef1fd3220196136eecb0c685781cc337db711
parentcd20d12392811ef92fe0f60c6184c31f483fc07e (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.
-rw-r--r--Transceiver52M/UHDDevice.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp
index a7bf53d..3c5e602 100644
--- a/Transceiver52M/UHDDevice.cpp
+++ b/Transceiver52M/UHDDevice.cpp
@@ -1038,7 +1038,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;