From 910db73c9aa9446479f00a4e90521a213568bffa Mon Sep 17 00:00:00 2001 From: michael-west Date: Mon, 8 Feb 2021 20:26:09 -0800 Subject: TwinRX: Fix LO lock failure Always write register 6 in the ADF5356. Conditional write was causing the LO not to lock at some frequencies. Signed-off-by: michael-west --- host/lib/include/uhdlib/usrp/common/adf535x.hpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'host/lib/include') diff --git a/host/lib/include/uhdlib/usrp/common/adf535x.hpp b/host/lib/include/uhdlib/usrp/common/adf535x.hpp index 20255ad00..de132f5ba 100644 --- a/host/lib/include/uhdlib/usrp/common/adf535x.hpp +++ b/host/lib/include/uhdlib/usrp/common/adf535x.hpp @@ -112,7 +112,6 @@ public: , _wait_fn(std::move(wait_fn)) , _regs() , _rewrite_regs(true) - , _neg_bleed_changed(false) , _wait_time_us(0) , _ref_freq(0.0) , _pfd_freq(0.0) @@ -351,7 +350,6 @@ private: // Members wait_fn_t _wait_fn; adf535x_regs_t _regs; bool _rewrite_regs; - bool _neg_bleed_changed; uint32_t _wait_time_us; double _ref_freq; double _pfd_freq; @@ -606,13 +604,9 @@ inline double adf535x_impl::_set_frequency( _regs.mod2_msb = narrow_cast(MOD2 >> 14); _regs.phase_24_bit = 0; - auto negative_bleed = FRAC1 != 0 or FRAC2 != 0 ? + _regs.negative_bleed = FRAC1 != 0 or FRAC2 != 0 ? adf5356_regs_t::NEGATIVE_BLEED_ENABLED : adf5356_regs_t::NEGATIVE_BLEED_DISABLED; - if (negative_bleed != _regs.negative_bleed) { - _regs.negative_bleed = negative_bleed; - _neg_bleed_changed = true; - } if (flush) commit(); @@ -643,13 +637,10 @@ inline void adf535x_impl::_commit() // Frequency update sequence from data sheet _write_fn(addr_vtr_t(ONE_REG, _regs.get_reg(13))); _write_fn(addr_vtr_t(ONE_REG, _regs.get_reg(10))); - if (_neg_bleed_changed) { - _write_fn(addr_vtr_t(ONE_REG, _regs.get_reg(6))); - } + _write_fn(addr_vtr_t(ONE_REG, _regs.get_reg(6))); _write_fn(addr_vtr_t(ONE_REG, _regs.get_reg(2))); _write_fn(addr_vtr_t(ONE_REG, _regs.get_reg(1))); _wait_fn(_wait_time_us); _write_fn(addr_vtr_t(ONE_REG, _regs.get_reg(0))); } - _neg_bleed_changed = false; } -- cgit v1.2.3