From cc6c82befcf30f0b8488be918f817b3b9a3e7808 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 3 Sep 2015 15:55:05 -0700 Subject: cores: Corrected scaling_adjustment calculation Compensate for headroom required to rotate a signal in the CORDIC. Fixes some CORDIC-related clipping issues, that reduced ENOB to 15 or 14.5 bits. --- host/lib/usrp/x300/x300_impl.cpp | 8 ++++++++ host/lib/usrp/x300/x300_impl.hpp | 2 ++ 2 files changed, 10 insertions(+) (limited to 'host/lib/usrp/x300') diff --git a/host/lib/usrp/x300/x300_impl.cpp b/host/lib/usrp/x300/x300_impl.cpp index f57556a8b..1e424414e 100644 --- a/host/lib/usrp/x300/x300_impl.cpp +++ b/host/lib/usrp/x300/x300_impl.cpp @@ -1334,6 +1334,14 @@ void x300_impl::register_loopback_self_test(wb_iface::sptr iface) UHD_MSG(status) << ((test_fail)? " fail" : "pass") << std::endl; } +void x300_impl::radio_loopback(wb_iface::sptr iface, const bool on) +{ + iface->poke32(radio::sr_addr(radio::LOOPBACK), (on ? 0x1 : 0x0)); + UHD_MSG(status) << ((on)? "Radio Loopback On" : "Radio Loopback Off") << std::endl; +} + + + /*********************************************************************** * clock and time control logic **********************************************************************/ diff --git a/host/lib/usrp/x300/x300_impl.hpp b/host/lib/usrp/x300/x300_impl.hpp index 78c497ad9..1630047af 100644 --- a/host/lib/usrp/x300/x300_impl.hpp +++ b/host/lib/usrp/x300/x300_impl.hpp @@ -250,6 +250,8 @@ private: void register_loopback_self_test(uhd::wb_iface::sptr iface); + void radio_loopback(uhd::wb_iface::sptr iface, const bool on); + /*! \brief Initialize the radio component on a given slot. * * Call this function once per slot (A and B) and motherboard to initialize all the radio components. -- cgit v1.2.3