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 > >

Public Member Functions

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

Protected Member Functions

void attachConfigurationHandler (I2c::ConfigurationHandler handler)
 
bool isTransactionRunning ()
 
bool read (uint16_t address, T &data)
 
bool read (uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
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 ()
 
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 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.
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: