diff options
author | Josh Blum <josh@joshknows.com> | 2011-05-01 18:21:29 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-05-01 18:21:29 -0700 |
commit | 6f0a98ee2e9e2090c6bf7d56260cb95b0eb1fbb3 (patch) | |
tree | 121f8c82241bf312e704917d6a1598372cc67b65 /host/lib/usrp/usrp1 | |
parent | 5c6c179689ef76ccd25d09ac4faeb9a836a066c8 (diff) | |
download | uhd-6f0a98ee2e9e2090c6bf7d56260cb95b0eb1fbb3.tar.gz uhd-6f0a98ee2e9e2090c6bf7d56260cb95b0eb1fbb3.tar.bz2 uhd-6f0a98ee2e9e2090c6bf7d56260cb95b0eb1fbb3.zip |
USRP1: added support for setting clock rate from EEPROM
Basically, same deal as the previous changeset but for USRP1.
Modified previous changes so that the key is shorter (mcr = master_clock_rate)
Diffstat (limited to 'host/lib/usrp/usrp1')
-rw-r--r-- | host/lib/usrp/usrp1/clock_ctrl.cpp | 14 | ||||
-rw-r--r-- | host/lib/usrp/usrp1/mboard_impl.cpp | 4 |
2 files changed, 18 insertions, 0 deletions
diff --git a/host/lib/usrp/usrp1/clock_ctrl.cpp b/host/lib/usrp/usrp1/clock_ctrl.cpp index df5353b54..154e6a316 100644 --- a/host/lib/usrp/usrp1/clock_ctrl.cpp +++ b/host/lib/usrp/usrp1/clock_ctrl.cpp @@ -16,6 +16,9 @@ // #include "clock_ctrl.hpp" +#include <boost/lexical_cast.hpp> +#include <boost/format.hpp> +#include <iostream> using namespace uhd; @@ -31,6 +34,17 @@ class usrp1_clock_ctrl_impl : public usrp1_clock_ctrl { public: usrp1_clock_ctrl_impl(usrp1_iface::sptr iface): _iface(iface){ this->set_master_clock_freq(default_master_clock_rate); + try{ + if (not _iface->mb_eeprom["mcr"].empty()){ + std::cout << "Read FPGA clock rate from EEPROM setting." << std::endl; + const double master_clock_rate = boost::lexical_cast<double>(_iface->mb_eeprom["mcr"]); + std::cout << boost::format("Initializing FPGA clock to %fMHz...") % (master_clock_rate/1e6) << std::endl; + this->set_master_clock_freq(master_clock_rate); + } + } + catch(const std::exception &e){ + std::cerr << "Error setting FPGA clock rate from EEPROM: " << e.what() << std::endl; + } } void set_master_clock_freq(double freq){ diff --git a/host/lib/usrp/usrp1/mboard_impl.cpp b/host/lib/usrp/usrp1/mboard_impl.cpp index 870956568..eecae3fa7 100644 --- a/host/lib/usrp/usrp1/mboard_impl.cpp +++ b/host/lib/usrp/usrp1/mboard_impl.cpp @@ -378,6 +378,10 @@ void usrp1_impl::mboard_set(const wax::obj &key, const wax::obj &val) return; case MBOARD_PROP_CLOCK_RATE: + std::cerr << "Helpful message:" << std::endl; + std::cerr << " I see that you are setting the master clock rate from the API." << std::endl; + std::cerr << " You may find it more convenient to burn this setting into the EEPROM." << std::endl; + std::cerr << " See the application notes for USRP1 for further instructions." << std::endl; _clock_ctrl->set_master_clock_freq(val.as<double>()); return; |