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

#include <modm/driver/storage/at24mac402.hpp>

Inheritance diagram for modm::At24Mac402< I2cMaster >:
modm::I2cEeprom< I2cMaster, 1 > modm::I2cDevice< I2cMaster, 1, i2c_eeprom::detail::DataTransmissionAdapter< 2 > > modm::NestedResumable< 10+1 >

Public Member Functions

 At24Mac402 (uint8_t address=0x50)
 
void setAddress (uint8_t address)
 
modm::ResumableResult< bool > readMac (std::span< uint8_t, 6 > data)
 
modm::ResumableResult< bool > readUniqueId (std::span< uint8_t, 16 > data)
 
modm::ResumableResult< bool > ping ()
 
modm::ResumableResult< bool > writeByte (uint32_t address, uint8_t data)
 
modm::ResumableResult< bool > write (uint32_t address, const uint8_t *data, std::size_t length)
 
template<typename T >
modm::ResumableResult< bool > write (uint32_t address, const T &data)
 
modm::ResumableResult< bool > readByte (uint32_t address, uint8_t &data)
 
modm::ResumableResult< bool > read (uint32_t address, uint8_t *data, std::size_t length)
 
template<typename T >
modm::ResumableResult< bool > read (uint32_t address, T &data)
 

Protected Member Functions

void attachConfigurationHandler (I2c::ConfigurationHandler handler)
 
int8_t getResumableDepth () const
 
bool isResumableRunning () const
 
bool isTransactionRunning ()
 
modm::ResumableResult< bool > read (uint16_t address, T &data)
 
modm::ResumableResult< bool > read (uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
modm::ResumableResult< bool > runTransaction ()
 Starts our own transaction and waits until finished.
 
bool startRead (uint8_t *buffer, std::size_t size)
 Configures the transaction with a read operation and starts it.
 
bool startTransaction ()
 Starts the transaction with our own transaction object.
 
bool startTransaction (modm::I2cTransaction *transaction)
 Starts the transaction with a separate transaction object.
 
bool startWrite (const uint8_t *buffer, std::size_t size)
 Configures the transaction with a write operation and starts it.
 
bool startWriteRead (const uint8_t *writeBuffer, std::size_t writeSize, uint8_t *readBuffer, std::size_t readSize)
 Configures the transaction with a write/read operation and starts it.
 
void stopResumable ()
 
bool wasTransactionSuccessful ()
 
modm::ResumableResult< bool > write (const uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
modm::ResumableResult< 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 Attributes

i2c_eeprom::detail::DataTransmissionAdapter< 2 > transaction
 

Detailed Description

template<typename I2cMaster>
class modm::At24Mac402< I2cMaster >

AT24MAC402 I2C EEPROM

2 kBit EEPROM with pre-programmed 48 bit MAC address, 128 bit unique id and 8 bit address pointer. The device address can be configured from 0x50 to 0x57 with 3 address input lines.

Author
Christopher Durand

Constructor & Destructor Documentation

template<typename I2cMaster >
modm::At24Mac402< I2cMaster >::At24Mac402 ( uint8_t  address = 0x50)
Parameters
addressi2c data base address (0b1010xxx)

Member Function Documentation

void modm::I2cDevice< I2cMaster, 10 , i2c_eeprom::detail::DataTransmissionAdapter< 2 > >::attachConfigurationHandler ( I2c::ConfigurationHandler  handler)
inheritedinline

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

bool modm::I2cDevice< I2cMaster, 10 , i2c_eeprom::detail::DataTransmissionAdapter< 2 > >::isTransactionRunning ( )
inheritedinlineprotected
Returns
true when transaction is busy.
modm::ResumableResult<bool> modm::I2cEeprom< I2cMaster, 2 >::read ( uint16_t  address,
T &  data 
)
inheritedinline

Convenience function

Shortcut for:

return read(address, static_cast<uint8_t *>(&data), sizeof(T));
template<typename I2cMaster >
void modm::At24Mac402< I2cMaster >::setAddress ( uint8_t  address)

Set I2C data base address (0b1010xxx). The upper 4 bits will always be forced to 0b1010.

bool modm::I2cDevice< I2cMaster, 10 , i2c_eeprom::detail::DataTransmissionAdapter< 2 > >::wasTransactionSuccessful ( )
inheritedinlineprotected
Returns
true when transaction did not return an error.

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