aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/b200/b200_impl.cpp
diff options
context:
space:
mode:
authorBalint Seeber <balint@ettus.com>2014-12-05 16:39:04 -0800
committerMartin Braun <martin.braun@ettus.com>2014-12-08 20:19:55 +0100
commit7eb18c621180fab669df591191d7771e89ed8ffa (patch)
tree11d706423bfb7ff7ac85839f8a1092b41260cfa5 /host/lib/usrp/b200/b200_impl.cpp
parent3ed7d3460e7b8669b27e4ae1b615f0c60dfa12eb (diff)
downloaduhd-7eb18c621180fab669df591191d7771e89ed8ffa.tar.gz
uhd-7eb18c621180fab669df591191d7771e89ed8ffa.tar.bz2
uhd-7eb18c621180fab669df591191d7771e89ed8ffa.zip
b200: select valid 10 MHz ref (update GPIO) *before* updating ADF4001 external ref selection
Diffstat (limited to 'host/lib/usrp/b200/b200_impl.cpp')
-rw-r--r--host/lib/usrp/b200/b200_impl.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp
index da06e12b4..01c0f5cbf 100644
--- a/host/lib/usrp/b200/b200_impl.cpp
+++ b/host/lib/usrp/b200/b200_impl.cpp
@@ -822,6 +822,10 @@ void b200_impl::set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &mb_eeprom)
void b200_impl::update_clock_source(const std::string &source)
{
+ // present the PLL with a valid 10 MHz signal before switching its reference
+ _gpio_state.ref_sel = (source == "gpsdo")? 1 : 0;
+ this->update_gpio_state();
+
if (source == "internal"){
_adf4001_iface->set_lock_to_ext_ref(false);
}
@@ -832,9 +836,6 @@ void b200_impl::update_clock_source(const std::string &source)
} else {
throw uhd::key_error("update_clock_source: unknown source: " + source);
}
-
- _gpio_state.ref_sel = (source == "gpsdo")? 1 : 0;
- this->update_gpio_state();
}
void b200_impl::update_time_source(const std::string &source)