From 5da05554a5a994c7ffde3ce20965d557fa33bc67 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Thu, 20 Apr 2017 17:32:19 -0700 Subject: mpm: LMK code now throws on incorrect chip ID --- host/lib/usrp/common/lmk04828.cpp | 9 +++++++-- host/lib/usrp/common/lmk04828.hpp | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'host/lib') diff --git a/host/lib/usrp/common/lmk04828.cpp b/host/lib/usrp/common/lmk04828.cpp index 9a9657ac8..edc65d280 100644 --- a/host/lib/usrp/common/lmk04828.cpp +++ b/host/lib/usrp/common/lmk04828.cpp @@ -28,7 +28,7 @@ lmk04828_iface::lmk04828_iface(write_fn_t write_fn, read_fn_t read_fn) : _write_ } -void lmk04828_iface::verify_chip_id() +bool lmk04828_iface::verify_chip_id() { // Check ID Device Type, ID Prod, and ID Maskrev registers uint8_t id_device_type = get_chip_id(); @@ -38,7 +38,10 @@ void lmk04828_iface::verify_chip_id() // assert(id_device_type == 6); if (id_device_type != 6){ std::cout << "id_device_type is not 6!" << std::endl; + return false; } + + return true; } uint8_t lmk04828_iface::get_chip_id(){ @@ -69,7 +72,9 @@ void lmk04828_iface::init() _write_fn(writes); - verify_chip_id(); + if (!verify_chip_id()) { + throw uhd::runtime_error("LMK ID not correct!"); + } } void lmk04828_iface::enable_sysref_pulse() diff --git a/host/lib/usrp/common/lmk04828.hpp b/host/lib/usrp/common/lmk04828.hpp index 36266bbfe..f44786dad 100644 --- a/host/lib/usrp/common/lmk04828.hpp +++ b/host/lib/usrp/common/lmk04828.hpp @@ -32,7 +32,7 @@ class lmk04828_iface { public: typedef boost::shared_ptr sptr; - typedef boost::function)> write_fn_t; + typedef boost::function)> write_fn_t; typedef boost::function read_fn_t; //static sptr (write_fn_t write_fn, read_fn_t read_fn); @@ -40,7 +40,12 @@ public: ~lmk04828_iface() {} - void verify_chip_id(); + //! Checks if the chip ID is what we expect + // + // Does not throw + // + // \returns false if chip ID is incorrect + bool verify_chip_id(); uint8_t get_chip_id(); -- cgit v1.2.3