modm API documentation
modm::stusb4500< I2cMaster > Class Template Reference

#include <modm/driver/usb/stusb4500.hpp>

Inheritance diagram for modm::stusb4500< I2cMaster >:
modm::I2cDevice< I2cMaster >

Classes

struct  RdoRegStatusData
 

Public Types

enum  Register : uint8_t {
  RdoRegStatus = 0x91, DpmPdoNumb = 0x70, DpmSnkPdo1 = 0x85, DpmSnkPdo2 = 0x89,
  DpmSnkPdo3 = 0x8D
}
 

Public Member Functions

 Stusb4500 (uint8_t address=0x28)
 
bool configurePdo (uint8_t pdoNumber, uint32_t voltage, uint32_t current)
 
bool setValidPdo (uint8_t pdoNumber)
 
RdoRegStatusData getRdoRegStatus ()
 
bool readRegister (Register reg, uint8_t *output, size_t length)
 
bool updateRegister (Register reg, const uint8_t *data, size_t length)
 
void attachConfigurationHandler (I2c::ConfigurationHandler handler)
 
bool ping ()
 
bool read (uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
void setAddress (uint8_t address)
 
bool write (const uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
bool writeRead (const uint8_t *writeBuffer, std::size_t writeSize, uint8_t *readBuffer, std::size_t readSize)
 Starts a write-read transaction and waits until finished.
 

Protected Member Functions

bool isTransactionRunning ()
 
bool runTransaction ()
 Starts our own transaction and waits until finished.
 
bool startTransaction ()
 Starts the transaction with our own transaction object.
 
bool startTransaction (modm::I2cTransaction *transaction)
 Starts the transaction with a separate transaction object.
 
bool wasTransactionSuccessful ()
 

Protected Attributes

I2cWriteReadTransaction transaction
 

Detailed Description

template<class I2cMaster>
class modm::stusb4500< I2cMaster >

Author
Henrik Hose, Raphael Lehmann

Member Function Documentation

void modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::attachConfigurationHandler ( I2c::ConfigurationHandler  handler)
inheritedinline

Attaches a configuration handler, which is called before a transaction, whenever the configuration has to be changed.

template<class I2cMaster >
bool modm::stusb4500< I2cMaster >::configurePdo ( uint8_t  pdoNumber,
uint32_t  voltage,
uint32_t  current 
)
inline

Configures a PDO.

Note: According to the USB standard the first PDO (1) always has to set voltage to 5000 [mV].

Parameters
pdoNumberWhich PDO to configure, range 1 to 3.
voltagein mV
currentin mA
template<class I2cMaster >
RdoRegStatusData modm::stusb4500< I2cMaster >::getRdoRegStatus ( )
inline

Retrieve RDO status from STUSB4500 chip.

Returns
RdoRegStatusData object. Typically only RdoRegStatusData::MaxCurrent [mA] is of interest.
bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::isTransactionRunning ( )
inheritedinlineprotected
Returns
true when transaction is busy.
bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::ping ( )
inheritedinline
Return Values
truedevice responds to address
falseno device with address found
void modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::setAddress ( uint8_t  address)
inheritedinline

Sets a new address of the slave device.

Parameters
addressthe slave address not yet shifted left (address < 128).
template<class I2cMaster >
bool modm::stusb4500< I2cMaster >::setValidPdo ( uint8_t  pdoNumber)
inline

Sets the valid PDO.

Parameters
pdoNumberWhich PDO to set valid, range 1 to 3.
bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::wasTransactionSuccessful ( )
inheritedinlineprotected
Returns
true when transaction did not return an error.

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