aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDerek Kozel <derek.kozel@ettus.com>2016-08-26 17:27:52 -0700
committerDerek Kozel <derek.kozel@ettus.com>2016-08-26 17:42:50 -0700
commit192ad7e01ac20efe23a14d0fe22a6fb745f8c4cf (patch)
tree2d15a15d8482b69142771a6a4c2715e13f8602a5
parentfe7fe8b6ceb21da3e3636b955f2248b511a6d146 (diff)
downloaduhd-192ad7e01ac20efe23a14d0fe22a6fb745f8c4cf.tar.gz
uhd-192ad7e01ac20efe23a14d0fe22a6fb745f8c4cf.tar.bz2
uhd-192ad7e01ac20efe23a14d0fe22a6fb745f8c4cf.zip
TwinRX: Fixed missing and redundant writes to FE settings
TwinRX's Nyquist expert now writes the frontend correction settings on every tune to a new frequency. This guarantees phase alignment when timed commands are used and introduces minimal overhead.
-rw-r--r--host/lib/usrp/dboard/twinrx/twinrx_experts.hpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/host/lib/usrp/dboard/twinrx/twinrx_experts.hpp b/host/lib/usrp/dboard/twinrx/twinrx_experts.hpp
index f2601a09b..1617c9c80 100644
--- a/host/lib/usrp/dboard/twinrx/twinrx_experts.hpp
+++ b/host/lib/usrp/dboard/twinrx/twinrx_experts.hpp
@@ -266,12 +266,16 @@ public:
: experts::worker_node_t(prepend_ch("twinrx_nyquist_expert", ch)),
_channel (ch),
_codec_conn (ch=="0"?"II":"QQ"), //Ch->ADC Port mapping
+ _lo1_freq_d (db, prepend_ch("los/LO1/freq/desired", ch)),
+ _lo2_freq_d (db, prepend_ch("los/LO2/freq/desired", ch)),
_if_freq_d (db, prepend_ch("if_freq/desired", ch)),
_lo1_inj_side (db, prepend_ch("ch/LO1/inj_side", ch)),
_lo2_inj_side (db, prepend_ch("ch/LO2/inj_side", ch)),
_if_freq_c (db, prepend_ch("if_freq/coerced", ch)),
_db_iface (db_iface)
{
+ bind_accessor(_lo1_freq_d);
+ bind_accessor(_lo2_freq_d);
bind_accessor(_if_freq_d);
bind_accessor(_lo1_inj_side);
bind_accessor(_lo2_inj_side);
@@ -284,6 +288,8 @@ private:
//Inputs
const std::string _channel;
const std::string _codec_conn;
+ experts::data_reader_t<double> _lo1_freq_d;
+ experts::data_reader_t<double> _lo2_freq_d;
experts::data_reader_t<double> _if_freq_d;
experts::data_reader_t<lo_inj_side_t> _lo1_inj_side;
experts::data_reader_t<lo_inj_side_t> _lo2_inj_side;