aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp
diff options
context:
space:
mode:
authormichael-west <michael.west@ettus.com>2018-11-29 12:20:16 -0800
committerBrent Stapleton <bstapleton@g.hmc.edu>2018-12-10 19:14:18 -0800
commitd82d21246d4bc32997f6c92d0dd56cc0b5ef38a1 (patch)
treebe0dc8c6ac70acef0cd96d28b63bf1c2bf7d580d /host/lib/usrp
parent575a676ec33a1f5e5103e4a800a84169fa0bf1dd (diff)
downloaduhd-d82d21246d4bc32997f6c92d0dd56cc0b5ef38a1.tar.gz
uhd-d82d21246d4bc32997f6c92d0dd56cc0b5ef38a1.tar.bz2
uhd-d82d21246d4bc32997f6c92d0dd56cc0b5ef38a1.zip
TwinRX: Tuning improvements
- Added delay for VTUNE calibration as per ADF5355 and ADF5356 data sheets - Increased SPI clock to 10 MHz - Removed write to register 10 during tuning of ADF5356 to match ADF5355 code and reduce tune time
Diffstat (limited to 'host/lib/usrp')
-rw-r--r--host/lib/usrp/common/adf535x.cpp10
-rw-r--r--host/lib/usrp/dboard/twinrx/twinrx_ctrl.cpp9
2 files changed, 12 insertions, 7 deletions
diff --git a/host/lib/usrp/common/adf535x.cpp b/host/lib/usrp/common/adf535x.cpp
index 67a94bcc1..ab81fbee7 100644
--- a/host/lib/usrp/common/adf535x.cpp
+++ b/host/lib/usrp/common/adf535x.cpp
@@ -6,12 +6,12 @@
#include <uhdlib/usrp/common/adf535x.hpp>
-adf535x_iface::sptr adf535x_iface::make_adf5355(write_fn_t write)
+adf535x_iface::sptr adf535x_iface::make_adf5355(write_fn_t write, wait_fn_t wait)
{
- return std::make_shared<adf535x_impl<adf5355_regs_t>>(write);
+ return std::make_shared<adf535x_impl<adf5355_regs_t>>(write, wait);
}
-adf535x_iface::sptr adf535x_iface::make_adf5356(write_fn_t write)
+adf535x_iface::sptr adf535x_iface::make_adf5356(write_fn_t write, wait_fn_t wait)
{
- return std::make_shared<adf535x_impl<adf5356_regs_t>>(write);
-} \ No newline at end of file
+ return std::make_shared<adf535x_impl<adf5356_regs_t>>(write, wait);
+}
diff --git a/host/lib/usrp/dboard/twinrx/twinrx_ctrl.cpp b/host/lib/usrp/dboard/twinrx/twinrx_ctrl.cpp
index 1b45805e7..55b74753c 100644
--- a/host/lib/usrp/dboard/twinrx/twinrx_ctrl.cpp
+++ b/host/lib/usrp/dboard/twinrx/twinrx_ctrl.cpp
@@ -25,7 +25,7 @@ namespace {
const double TWINRX_DESIRED_REFERENCE_FREQ = 50e6;
const double TWINRX_REV_AB_PFD_FREQ = 6.25e6;
const double TWINRX_REV_C_PFD_FREQ = 12.5e6;
- const double TWINRX_SPI_CLOCK_FREQ = 3e6;
+ const double TWINRX_SPI_CLOCK_FREQ = 10e6;
}
class twinrx_ctrl_impl : public twinrx_ctrl {
@@ -99,14 +99,19 @@ public:
_lo1_iface[i] = adf535x_iface::make_adf5356(
[this](const std::vector<uint32_t>& regs) {
_write_lo_spi(dboard_iface::UNIT_TX, regs);
+ },
+ [this](uint32_t microseconds) {
+ _db_iface->sleep(boost::chrono::microseconds(microseconds));
}
);
_lo1_iface[i]->set_pfd_freq(TWINRX_REV_C_PFD_FREQ);
-
} else {
_lo1_iface[i] = adf535x_iface::make_adf5355(
[this](const std::vector<uint32_t>& regs) {
_write_lo_spi(dboard_iface::UNIT_TX, regs);
+ },
+ [this](uint32_t microseconds) {
+ _db_iface->sleep(boost::chrono::microseconds(microseconds));
}
);
_lo1_iface[i]->set_pfd_freq(TWINRX_REV_AB_PFD_FREQ);