aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorNick Foster <nick@nerdnetworks.org>2011-03-03 10:50:45 -0800
committerNick Foster <nick@nerdnetworks.org>2011-03-03 10:50:45 -0800
commit1b63cd2560886d851f3e2ba98bfddf772c44df34 (patch)
tree126e1bedf44c3e9159c8ab7b2dd1ad52452ea6a0 /host/lib
parent77319389b09c663170284ed64961ab27cf77488e (diff)
downloaduhd-1b63cd2560886d851f3e2ba98bfddf772c44df34.tar.gz
uhd-1b63cd2560886d851f3e2ba98bfddf772c44df34.tar.bz2
uhd-1b63cd2560886d851f3e2ba98bfddf772c44df34.zip
Generalized mboard_iface and added a SPI convenience class a la I2C
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/usrp/multi_usrp.cpp5
-rw-r--r--host/lib/usrp/usrp1/codec_ctrl.cpp8
-rw-r--r--host/lib/usrp/usrp1/dboard_iface.cpp8
-rw-r--r--host/lib/usrp/usrp1/usrp1_iface.cpp8
-rw-r--r--host/lib/usrp/usrp2/clock_ctrl.cpp2
-rw-r--r--host/lib/usrp/usrp2/codec_ctrl.cpp8
-rw-r--r--host/lib/usrp/usrp2/dboard_iface.cpp16
-rw-r--r--host/lib/usrp/usrp_e100/clock_ctrl.cpp8
-rw-r--r--host/lib/usrp/usrp_e100/codec_ctrl.cpp8
-rw-r--r--host/lib/usrp/usrp_e100/dboard_iface.cpp4
-rw-r--r--host/lib/usrp/usrp_e100/usrp_e100_iface.cpp4
11 files changed, 42 insertions, 37 deletions
diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp
index 0acc53397..565d35d1c 100644
--- a/host/lib/usrp/multi_usrp.cpp
+++ b/host/lib/usrp/multi_usrp.cpp
@@ -18,6 +18,7 @@
#include "wrapper_utils.hpp"
#include <uhd/usrp/multi_usrp.hpp>
#include <uhd/usrp/tune_helper.hpp>
+#include <uhd/usrp/mboard_iface.hpp>
#include <uhd/exception.hpp>
#include <uhd/utils/warning.hpp>
#include <uhd/utils/gain_group.hpp>
@@ -218,6 +219,10 @@ public:
std::vector<std::string> get_mboard_sensor_names(size_t mboard){
return _mboard(mboard)[MBOARD_PROP_SENSOR_NAMES].as<prop_names_t>();
}
+
+ mboard_iface::sptr get_mboard_iface(size_t mboard){
+ return _mboard(mboard)[MBOARD_PROP_IFACE].as<mboard_iface::sptr>();
+ }
/*******************************************************************
* RX methods
diff --git a/host/lib/usrp/usrp1/codec_ctrl.cpp b/host/lib/usrp/usrp1/codec_ctrl.cpp
index f9f923f38..1b4411002 100644
--- a/host/lib/usrp/usrp1/codec_ctrl.cpp
+++ b/host/lib/usrp/usrp1/codec_ctrl.cpp
@@ -303,8 +303,8 @@ void usrp1_codec_ctrl_impl::send_reg(boost::uint8_t addr)
std::cout << "codec control write reg: 0x";
std::cout << std::setw(8) << std::hex << reg << std::endl;
}
- _iface->transact_spi(_spi_slave,
- spi_config_t::EDGE_RISE, reg, 16, false);
+ _iface->write_spi(_spi_slave,
+ spi_config_t::EDGE_RISE, reg, 16);
}
void usrp1_codec_ctrl_impl::recv_reg(boost::uint8_t addr)
@@ -317,8 +317,8 @@ void usrp1_codec_ctrl_impl::recv_reg(boost::uint8_t addr)
std::cout << std::setw(8) << std::hex << reg << std::endl;
}
- boost::uint32_t ret = _iface->transact_spi(_spi_slave,
- spi_config_t::EDGE_RISE, reg, 16, true);
+ boost::uint32_t ret = _iface->read_spi(_spi_slave,
+ spi_config_t::EDGE_RISE, reg, 16);
if (codec_debug) {
std::cout.fill('0');
diff --git a/host/lib/usrp/usrp1/dboard_iface.cpp b/host/lib/usrp/usrp1/dboard_iface.cpp
index 53ccd4d55..3f3a98b7a 100644
--- a/host/lib/usrp/usrp1/dboard_iface.cpp
+++ b/host/lib/usrp/usrp1/dboard_iface.cpp
@@ -337,8 +337,8 @@ void usrp1_dboard_iface::write_spi(unit_t unit,
boost::uint32_t data,
size_t num_bits)
{
- _iface->transact_spi(unit_to_otw_spi_dev(unit, _dboard_slot),
- config, data, num_bits, false);
+ _iface->write_spi(unit_to_otw_spi_dev(unit, _dboard_slot),
+ config, data, num_bits);
}
boost::uint32_t usrp1_dboard_iface::read_write_spi(unit_t unit,
@@ -346,8 +346,8 @@ boost::uint32_t usrp1_dboard_iface::read_write_spi(unit_t unit,
boost::uint32_t data,
size_t num_bits)
{
- return _iface->transact_spi(unit_to_otw_spi_dev(unit, _dboard_slot),
- config, data, num_bits, true);
+ return _iface->read_spi(unit_to_otw_spi_dev(unit, _dboard_slot),
+ config, data, num_bits);
}
/***********************************************************************
diff --git a/host/lib/usrp/usrp1/usrp1_iface.cpp b/host/lib/usrp/usrp1/usrp1_iface.cpp
index 591bbda87..491f76cef 100644
--- a/host/lib/usrp/usrp1/usrp1_iface.cpp
+++ b/host/lib/usrp/usrp1/usrp1_iface.cpp
@@ -95,20 +95,20 @@ public:
}
void poke16(boost::uint32_t addr, boost::uint16_t value) {
- throw std::runtime_error("Unhandled command poke16()");
+ throw uhd::not_implemented_error("Unhandled command poke16()");
}
boost::uint16_t peek16(boost::uint32_t addr) {
- throw std::runtime_error("Unhandled command peek16()");
+ throw uhd::not_implemented_error("Unhandled command peek16()");
return 0;
}
void write_uart(boost::uint8_t dev, const std::string &buf) {
- throw std::runtime_error("Unhandled command write_uart()");
+ throw uhd::not_implemented_error("Unhandled command write_uart()");
}
std::string read_uart(boost::uint8_t dev) {
- throw std::runtime_error("Unhandled command read_uart()");
+ throw uhd::not_implemented_error("Unhandled command read_uart()");
}
/*******************************************************************
diff --git a/host/lib/usrp/usrp2/clock_ctrl.cpp b/host/lib/usrp/usrp2/clock_ctrl.cpp
index aaafbae53..abda53bf2 100644
--- a/host/lib/usrp/usrp2/clock_ctrl.cpp
+++ b/host/lib/usrp/usrp2/clock_ctrl.cpp
@@ -305,7 +305,7 @@ private:
*/
void write_reg(boost::uint8_t addr){
boost::uint32_t data = _ad9510_regs.get_write_reg(addr);
- _iface->transact_spi(SPI_SS_AD9510, spi_config_t::EDGE_RISE, data, 24, false /*no rb*/);
+ _iface->write_spi(SPI_SS_AD9510, spi_config_t::EDGE_RISE, data, 24);
}
/*!
diff --git a/host/lib/usrp/usrp2/codec_ctrl.cpp b/host/lib/usrp/usrp2/codec_ctrl.cpp
index be5c2c899..0fdcedf62 100644
--- a/host/lib/usrp/usrp2/codec_ctrl.cpp
+++ b/host/lib/usrp/usrp2/codec_ctrl.cpp
@@ -168,17 +168,17 @@ private:
void send_ad9777_reg(boost::uint8_t addr){
boost::uint16_t reg = _ad9777_regs.get_write_reg(addr);
if (codec_ctrl_debug) std::cout << "send_ad9777_reg: " << std::hex << reg << std::endl;
- _iface->transact_spi(
+ _iface->write_spi(
SPI_SS_AD9777, spi_config_t::EDGE_RISE,
- reg, 16, false /*no rb*/
+ reg, 16
);
}
void send_ads62p44_reg(boost::uint8_t addr) {
boost::uint16_t reg = _ads62p44_regs.get_write_reg(addr);
- _iface->transact_spi(
+ _iface->write_spi(
SPI_SS_ADS62P44, spi_config_t::EDGE_FALL,
- reg, 16, false /*no rb*/
+ reg, 16
);
}
};
diff --git a/host/lib/usrp/usrp2/dboard_iface.cpp b/host/lib/usrp/usrp2/dboard_iface.cpp
index 8b2df61d6..924a6e901 100644
--- a/host/lib/usrp/usrp2/dboard_iface.cpp
+++ b/host/lib/usrp/usrp2/dboard_iface.cpp
@@ -257,7 +257,7 @@ void usrp2_dboard_iface::write_spi(
boost::uint32_t data,
size_t num_bits
){
- _iface->transact_spi(unit_to_spi_dev[unit], config, data, num_bits, false /*no rb*/);
+ _iface->write_spi(unit_to_spi_dev[unit], config, data, num_bits);
}
boost::uint32_t usrp2_dboard_iface::read_write_spi(
@@ -266,7 +266,7 @@ boost::uint32_t usrp2_dboard_iface::read_write_spi(
boost::uint32_t data,
size_t num_bits
){
- return _iface->transact_spi(unit_to_spi_dev[unit], config, data, num_bits, true /*rb*/);
+ return _iface->read_spi(unit_to_spi_dev[unit], config, data, num_bits);
}
/***********************************************************************
@@ -288,9 +288,9 @@ void usrp2_dboard_iface::_write_aux_dac(unit_t unit){
(UNIT_RX, SPI_SS_RX_DAC)
(UNIT_TX, SPI_SS_TX_DAC)
;
- _iface->transact_spi(
+ _iface->write_spi(
unit_to_spi_dac[unit], spi_config_t::EDGE_FALL,
- _dac_regs[unit].get_reg(), 24, false /*no rb*/
+ _dac_regs[unit].get_reg(), 24
);
}
@@ -336,13 +336,13 @@ double usrp2_dboard_iface::read_aux_adc(unit_t unit, aux_adc_t which){
} ad7922_regs.chn = ad7922_regs.mod; //normal mode: mod == chn
//write and read spi
- _iface->transact_spi(
+ _iface->write_spi(
unit_to_spi_adc[unit], config,
- ad7922_regs.get_reg(), 16, false /*no rb*/
+ ad7922_regs.get_reg(), 16
);
- ad7922_regs.set_reg(boost::uint16_t(_iface->transact_spi(
+ ad7922_regs.set_reg(boost::uint16_t(_iface->read_spi(
unit_to_spi_adc[unit], config,
- ad7922_regs.get_reg(), 16, true /*rb*/
+ ad7922_regs.get_reg(), 16
)));
//convert to voltage and return
diff --git a/host/lib/usrp/usrp_e100/clock_ctrl.cpp b/host/lib/usrp/usrp_e100/clock_ctrl.cpp
index b4ddcd271..bb6fb7e3b 100644
--- a/host/lib/usrp/usrp_e100/clock_ctrl.cpp
+++ b/host/lib/usrp/usrp_e100/clock_ctrl.cpp
@@ -409,10 +409,10 @@ private:
void send_reg(boost::uint16_t addr){
boost::uint32_t reg = _ad9522_regs.get_write_reg(addr);
//std::cout << "clock control write reg: " << std::hex << reg << std::endl;
- _iface->transact_spi(
+ _iface->write_spi(
UE_SPI_SS_AD9522,
spi_config_t::EDGE_RISE,
- reg, 24, false /*no rb*/
+ reg, 24
);
}
@@ -427,9 +427,9 @@ private:
//wait for calibration done:
static const boost::uint8_t addr = 0x01F;
for (size_t ms10 = 0; ms10 < 100; ms10++){
- boost::uint32_t reg = _iface->transact_spi(
+ boost::uint32_t reg = _iface->read_spi(
UE_SPI_SS_AD9522, spi_config_t::EDGE_RISE,
- _ad9522_regs.get_read_reg(addr), 24, true /*rb*/
+ _ad9522_regs.get_read_reg(addr), 24
);
_ad9522_regs.set_reg(addr, reg);
if (_ad9522_regs.vco_calibration_finished) return;
diff --git a/host/lib/usrp/usrp_e100/codec_ctrl.cpp b/host/lib/usrp/usrp_e100/codec_ctrl.cpp
index 71a370f88..50442546a 100644
--- a/host/lib/usrp/usrp_e100/codec_ctrl.cpp
+++ b/host/lib/usrp/usrp_e100/codec_ctrl.cpp
@@ -269,20 +269,20 @@ void usrp_e100_codec_ctrl_impl::write_aux_dac(aux_dac_t which, double volts){
void usrp_e100_codec_ctrl_impl::send_reg(boost::uint8_t addr){
boost::uint32_t reg = _ad9862_regs.get_write_reg(addr);
if (codec_debug) std::cout << "codec control write reg: " << std::hex << reg << std::endl;
- _iface->transact_spi(
+ _iface->write_spi(
UE_SPI_SS_AD9862,
spi_config_t::EDGE_RISE,
- reg, 16, false /*no rb*/
+ reg, 16
);
}
void usrp_e100_codec_ctrl_impl::recv_reg(boost::uint8_t addr){
boost::uint32_t reg = _ad9862_regs.get_read_reg(addr);
if (codec_debug) std::cout << "codec control read reg: " << std::hex << reg << std::endl;
- boost::uint32_t ret = _iface->transact_spi(
+ boost::uint32_t ret = _iface->read_spi(
UE_SPI_SS_AD9862,
spi_config_t::EDGE_RISE,
- reg, 16, true /*rb*/
+ reg, 16
);
if (codec_debug) std::cout << "codec control read ret: " << std::hex << ret << std::endl;
_ad9862_regs.set_reg(addr, boost::uint16_t(ret));
diff --git a/host/lib/usrp/usrp_e100/dboard_iface.cpp b/host/lib/usrp/usrp_e100/dboard_iface.cpp
index ee1b852bf..4ee354486 100644
--- a/host/lib/usrp/usrp_e100/dboard_iface.cpp
+++ b/host/lib/usrp/usrp_e100/dboard_iface.cpp
@@ -244,7 +244,7 @@ void usrp_e100_dboard_iface::write_spi(
boost::uint32_t data,
size_t num_bits
){
- _iface->transact_spi(unit_to_otw_spi_dev(unit), config, data, num_bits, false /*no rb*/);
+ _iface->write_spi(unit_to_otw_spi_dev(unit), config, data, num_bits);
}
boost::uint32_t usrp_e100_dboard_iface::read_write_spi(
@@ -253,7 +253,7 @@ boost::uint32_t usrp_e100_dboard_iface::read_write_spi(
boost::uint32_t data,
size_t num_bits
){
- return _iface->transact_spi(unit_to_otw_spi_dev(unit), config, data, num_bits, true /*rb*/);
+ return _iface->read_spi(unit_to_otw_spi_dev(unit), config, data, num_bits);
}
/***********************************************************************
diff --git a/host/lib/usrp/usrp_e100/usrp_e100_iface.cpp b/host/lib/usrp/usrp_e100/usrp_e100_iface.cpp
index 912e4d48b..6d3f41fab 100644
--- a/host/lib/usrp/usrp_e100/usrp_e100_iface.cpp
+++ b/host/lib/usrp/usrp_e100/usrp_e100_iface.cpp
@@ -259,11 +259,11 @@ public:
}
void write_uart(boost::uint8_t dev, const std::string &buf) {
- throw std::runtime_error("Unhandled command write_uart()");
+ throw uhd::not_implemented_error("Unhandled command write_uart()");
}
std::string read_uart(boost::uint8_t dev) {
- throw std::runtime_error("Unhandled command read_uart()");
+ throw uhd::not_implemented_error("Unhandled command read_uart()");
}
private: