diff options
| -rw-r--r-- | host/lib/usrp/e300/e300_defaults.hpp | 2 | ||||
| -rw-r--r-- | host/lib/usrp/e300/e300_impl.cpp | 11 | 
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) +            )); +        }      }  } | 
