aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorJonathon Pendlum <jonathon.pendlum@ettus.com>2015-04-24 15:57:28 -0700
committerJonathon Pendlum <jonathon.pendlum@ettus.com>2015-04-24 15:57:28 -0700
commit65428849a51a9c6d74dff1f935b57d1ba904e5a6 (patch)
tree830a413ebc4b123a44727dbd00d976acafc0d35e /host/lib
parent64990acea741768becafb3e9dee171274f23f9d9 (diff)
downloaduhd-65428849a51a9c6d74dff1f935b57d1ba904e5a6.tar.gz
uhd-65428849a51a9c6d74dff1f935b57d1ba904e5a6.tar.bz2
uhd-65428849a51a9c6d74dff1f935b57d1ba904e5a6.zip
e300: Added minimum master clock rate restriction
- Master clock rate cannot be less than 10 MHz, which is the MMCM's minimum operating frequency in the FPGA's capture interface.
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/usrp/e300/e300_defaults.hpp2
-rw-r--r--host/lib/usrp/e300/e300_impl.cpp11
2 files changed, 12 insertions, 1 deletions
diff --git a/host/lib/usrp/e300/e300_defaults.hpp b/host/lib/usrp/e300/e300_defaults.hpp
index 537a0cf3e..7a8d49719 100644
--- a/host/lib/usrp/e300/e300_defaults.hpp
+++ b/host/lib/usrp/e300/e300_defaults.hpp
@@ -24,7 +24,7 @@ namespace uhd { namespace usrp { namespace e300 {
static const double DEFAULT_TICK_RATE = 32e6;
static const double MAX_TICK_RATE = 50e6;
-static const double MIN_TICK_RATE = 1e6;
+static const double MIN_TICK_RATE = 10e6;
static const double DEFAULT_TX_SAMP_RATE = 1.0e6;
static const double DEFAULT_RX_SAMP_RATE = 1.0e6;
diff --git a/host/lib/usrp/e300/e300_impl.cpp b/host/lib/usrp/e300/e300_impl.cpp
index 3d92bc5c8..5ec2f5b2a 100644
--- a/host/lib/usrp/e300/e300_impl.cpp
+++ b/host/lib/usrp/e300/e300_impl.cpp
@@ -644,6 +644,17 @@ void e300_impl::_enforce_tick_rate_limits(
% direction
));
}
+ // Minimum rate restriction due to MMCM used in capture interface to AD9361.
+ // Xilinx Artix-7 FPGA MMCM minimum input frequency is 10 MHz.
+ const double min_tick_rate = uhd::usrp::e300::MIN_TICK_RATE;
+ if (tick_rate - min_tick_rate < 0.0)
+ {
+ throw uhd::value_error(boost::str(
+ boost::format("current master clock rate (%.6f MHz) set below minimum possible master clock rate (%.6f MHz)")
+ % (tick_rate/1e6)
+ % (min_tick_rate/1e6)
+ ));
+ }
}
}