USRP Hardware Driver and USRP Manual  Version: 4.7.0.0
UHD and USRP Manual
uhd::usrp::dboard_iface Class Referenceabstract

#include <uhd/usrp/dboard_iface.hpp>

Inheritance diagram for uhd::usrp::dboard_iface:
uhd::i2c_iface

Public Types

enum  unit_t { UNIT_RX = int('r'), UNIT_TX = int('t'), UNIT_BOTH = int('b') }
 tells the host which unit to use More...
 
enum  aux_dac_t { AUX_DAC_A = int('a'), AUX_DAC_B = int('b'), AUX_DAC_C = int('c'), AUX_DAC_D = int('d') }
 aux dac selection enums (per unit) More...
 
enum  aux_adc_t { AUX_ADC_A = int('a'), AUX_ADC_B = int('b') }
 aux adc selection enums (per unit) More...
 
typedef std::shared_ptr< dboard_ifacesptr
 
typedef dboard_iface_special_props_t special_props_t
 
typedef uhd::usrp::gpio_atr::gpio_atr_reg_t atr_reg_t
 
- Public Types inherited from uhd::i2c_iface
typedef std::shared_ptr< i2c_ifacesptr
 

Public Member Functions

 ~dboard_iface (void) override
 
virtual special_props_t get_special_props (void)=0
 
virtual void write_aux_dac (unit_t unit, aux_dac_t which_dac, double value)=0
 
virtual double read_aux_adc (unit_t unit, aux_adc_t which_adc)=0
 
virtual void set_pin_ctrl (unit_t unit, uint32_t value, uint32_t mask=0xffff)=0
 
virtual uint32_t get_pin_ctrl (unit_t unit)=0
 
virtual void set_atr_reg (unit_t unit, atr_reg_t reg, uint32_t value, uint32_t mask=0xffff)=0
 
virtual uint32_t get_atr_reg (unit_t unit, atr_reg_t reg)=0
 
virtual void set_gpio_ddr (unit_t unit, uint32_t value, uint32_t mask=0xffff)=0
 
virtual uint32_t get_gpio_ddr (unit_t unit)=0
 
virtual void set_gpio_out (unit_t unit, uint32_t value, uint32_t mask=0xffff)=0
 
virtual uint32_t get_gpio_out (unit_t unit)=0
 
virtual uint32_t read_gpio (unit_t unit)=0
 
virtual void write_spi (unit_t unit, const spi_config_t &config, uint32_t data, size_t num_bits)=0
 
virtual uint32_t read_write_spi (unit_t unit, const spi_config_t &config, uint32_t data, size_t num_bits)=0
 
virtual void set_clock_rate (unit_t unit, double rate)=0
 
virtual double get_clock_rate (unit_t unit)=0
 
virtual std::vector< double > get_clock_rates (unit_t unit)=0
 
virtual void set_clock_enabled (unit_t unit, bool enb)=0
 
virtual double get_codec_rate (unit_t unit)=0
 
virtual void set_fe_connection (unit_t unit, const std::string &fe_name, const uhd::usrp::fe_connection_t &fe_conn)=0
 
virtual bool has_set_fe_connection (const unit_t)
 
virtual uhd::time_spec_t get_command_time (void)=0
 
virtual void set_command_time (const uhd::time_spec_t &t)=0
 
virtual void sleep (const std::chrono::nanoseconds &time)
 
virtual void define_custom_register_space (const uint32_t, const uint32_t, std::function< void(uint32_t, uint32_t)>, std::function< uint32_t(uint32_t)>)
 
- Public Member Functions inherited from uhd::i2c_iface
virtual ~i2c_iface (void)
 
i2c_iface::sptr eeprom16 (void)
 Create an i2c_iface than can talk to 16 bit addressable EEPROMS. More...
 
virtual void write_i2c (uint16_t addr, const byte_vector_t &buf)=0
 
virtual byte_vector_t read_i2c (uint16_t addr, size_t num_bytes)=0
 
virtual void write_eeprom (uint16_t addr, uint16_t offset, const byte_vector_t &buf)
 
virtual byte_vector_t read_eeprom (uint16_t addr, uint16_t offset, size_t num_bytes)
 

Detailed Description

The daughter board dboard interface to be subclassed. A dboard instance interfaces with the mboard though this api. This interface provides i2c, spi, gpio, atr, aux dac/adc access. Each mboard should have a specially tailored iface for its dboard.

Member Typedef Documentation

◆ atr_reg_t

◆ special_props_t

◆ sptr

typedef std::shared_ptr<dboard_iface> uhd::usrp::dboard_iface::sptr

Member Enumeration Documentation

◆ aux_adc_t

aux adc selection enums (per unit)

Enumerator
AUX_ADC_A 
AUX_ADC_B 

◆ aux_dac_t

aux dac selection enums (per unit)

Enumerator
AUX_DAC_A 
AUX_DAC_B 
AUX_DAC_C 
AUX_DAC_D 

◆ unit_t

tells the host which unit to use

Enumerator
UNIT_RX 
UNIT_TX 
UNIT_BOTH 

Constructor & Destructor Documentation

◆ ~dboard_iface()

uhd::usrp::dboard_iface::~dboard_iface ( void  )
inlineoverride

Member Function Documentation

◆ define_custom_register_space()

virtual void uhd::usrp::dboard_iface::define_custom_register_space ( const uint32_t  ,
const uint32_t  ,
std::function< void(uint32_t, uint32_t)>  ,
std::function< uint32_t(uint32_t)>   
)
inlinevirtual

Used to allow daughterboards to be able to call into the define_custom_register_space function of the NoC block, see register_iface.hpp for more information.

◆ get_atr_reg()

virtual uint32_t uhd::usrp::dboard_iface::get_atr_reg ( unit_t  unit,
atr_reg_t  reg 
)
pure virtual

Read back an ATR register setting.

Parameters
unitwhich unit rx or tx
regwhich ATR register
Returns
the 16-bit settings value

◆ get_clock_rate()

virtual double uhd::usrp::dboard_iface::get_clock_rate ( unit_t  unit)
pure virtual

Get the rate of a dboard clock.

Parameters
unitwhich unit rx or tx
Returns
the clock rate in Hz

◆ get_clock_rates()

virtual std::vector<double> uhd::usrp::dboard_iface::get_clock_rates ( unit_t  unit)
pure virtual

Get a list of possible rates for the dboard clock.

Parameters
unitwhich unit rx or tx
Returns
a list of clock rates in Hz

◆ get_codec_rate()

virtual double uhd::usrp::dboard_iface::get_codec_rate ( unit_t  unit)
pure virtual

Get the rate of the codec. For rx, this is the rate the ADC feeds the DSP. For tx, this is the rate the DSP feeds the DAC.

Parameters
unitwhich unit rx or tx
Returns
the codec rate in Hz

◆ get_command_time()

virtual uhd::time_spec_t uhd::usrp::dboard_iface::get_command_time ( void  )
pure virtual

Get the command time.

Returns
the command time

◆ get_gpio_ddr()

virtual uint32_t uhd::usrp::dboard_iface::get_gpio_ddr ( unit_t  unit)
pure virtual

Read back the GPIO data direction setting.

Parameters
unitwhich unit rx or tx
Returns
the 16-bit settings value

◆ get_gpio_out()

virtual uint32_t uhd::usrp::dboard_iface::get_gpio_out ( unit_t  unit)
pure virtual

Read back the GPIO pin output setting.

Parameters
unitwhich unit rx or tx
Returns
the 16-bit settings value

◆ get_pin_ctrl()

virtual uint32_t uhd::usrp::dboard_iface::get_pin_ctrl ( unit_t  unit)
pure virtual

Read back the pin control setting.

Parameters
unitwhich unit rx or tx
Returns
the 16-bit settings value

◆ get_special_props()

virtual special_props_t uhd::usrp::dboard_iface::get_special_props ( void  )
pure virtual

Get special properties information for this dboard slot. This call helps the dboard code to handle implementation differences between different motherboards and dboard slots.

Returns
the special properties struct

◆ has_set_fe_connection()

virtual bool uhd::usrp::dboard_iface::has_set_fe_connection ( const unit_t  )
inlinevirtual

Returns the true if set_fe_connection() is implemented on this dboard_iface

◆ read_aux_adc()

virtual double uhd::usrp::dboard_iface::read_aux_adc ( unit_t  unit,
aux_adc_t  which_adc 
)
pure virtual

Read from an aux adc.

Parameters
unitwhich unit rx or tx
which_adcthe adc index 0, 1, 2, 3...
Returns
the value in volts

◆ read_gpio()

virtual uint32_t uhd::usrp::dboard_iface::read_gpio ( unit_t  unit)
pure virtual

Read daughterboard GPIO pin values.

Parameters
unitwhich unit rx or tx
Returns
the value of the gpio unit

◆ read_write_spi()

virtual uint32_t uhd::usrp::dboard_iface::read_write_spi ( unit_t  unit,
const spi_config_t config,
uint32_t  data,
size_t  num_bits 
)
pure virtual

Read and write data to SPI bus peripheral.

Parameters
unitwhich unit, rx or tx
configconfiguration settings
datathe bits to write MSB first
num_bitsthe number of bits in data
Returns
the data that was read

◆ set_atr_reg()

virtual void uhd::usrp::dboard_iface::set_atr_reg ( unit_t  unit,
atr_reg_t  reg,
uint32_t  value,
uint32_t  mask = 0xffff 
)
pure virtual

Set a daughterboard ATR register.

Parameters
unitwhich unit rx or tx
regwhich ATR register
value16-bits, 0=ATR output low, 1=ATR output high
mask16-bits, 0=do not change, 1=change value

◆ set_clock_enabled()

virtual void uhd::usrp::dboard_iface::set_clock_enabled ( unit_t  unit,
bool  enb 
)
pure virtual

Enable or disable a dboard clock.

Parameters
unitwhich unit rx or tx
enbtrue for enabled

◆ set_clock_rate()

virtual void uhd::usrp::dboard_iface::set_clock_rate ( unit_t  unit,
double  rate 
)
pure virtual

Set the rate of a dboard clock.

Parameters
unitwhich unit rx or tx
ratethe clock rate in Hz

◆ set_command_time()

virtual void uhd::usrp::dboard_iface::set_command_time ( const uhd::time_spec_t t)
pure virtual

Set the command time.

Parameters
tthe time

◆ set_fe_connection()

virtual void uhd::usrp::dboard_iface::set_fe_connection ( unit_t  unit,
const std::string &  fe_name,
const uhd::usrp::fe_connection_t fe_conn 
)
pure virtual

Configure the front-end connection parameters.

Parameters
unitwhich unit rx or tx
fe_namename of the front-end to update
fe_connconnection parameters class

◆ set_gpio_ddr()

virtual void uhd::usrp::dboard_iface::set_gpio_ddr ( unit_t  unit,
uint32_t  value,
uint32_t  mask = 0xffff 
)
pure virtual

Set daughterboard GPIO data direction setting.

Parameters
unitwhich unit rx or tx
value16-bits, 0=GPIO input, 1=GPIO output
mask16-bits, 0=do not change, 1=change value

◆ set_gpio_out()

virtual void uhd::usrp::dboard_iface::set_gpio_out ( unit_t  unit,
uint32_t  value,
uint32_t  mask = 0xffff 
)
pure virtual

Set daughterboard GPIO pin output setting.

Parameters
unitwhich unit rx or tx
value16-bits, 0=GPIO output low, 1=GPIO output high
mask16-bits, 0=do not change, 1=change value

◆ set_pin_ctrl()

virtual void uhd::usrp::dboard_iface::set_pin_ctrl ( unit_t  unit,
uint32_t  value,
uint32_t  mask = 0xffff 
)
pure virtual

Set a daughterboard output pin control source.

Parameters
unitwhich unit rx or tx
value16-bits, 0=GPIO controlled, 1=ATR controlled
mask16-bits, 0=do not change, 1=change value

◆ sleep()

virtual void uhd::usrp::dboard_iface::sleep ( const std::chrono::nanoseconds &  time)
virtual

Sleep for a set time

Parameters
timetime to sleep in nanoseconds

◆ write_aux_dac()

virtual void uhd::usrp::dboard_iface::write_aux_dac ( unit_t  unit,
aux_dac_t  which_dac,
double  value 
)
pure virtual

Write to an aux dac.

Parameters
unitwhich unit rx or tx
which_dacthe dac index 0, 1, 2, 3...
valuethe value in volts

◆ write_spi()

virtual void uhd::usrp::dboard_iface::write_spi ( unit_t  unit,
const spi_config_t config,
uint32_t  data,
size_t  num_bits 
)
pure virtual

Write data to SPI bus peripheral.

Parameters
unitwhich unit, rx or tx
configconfiguration settings
datathe bits to write MSB first
num_bitsthe number of bits in data

The documentation for this class was generated from the following file: