|
CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
|
Public Member Functions | |
| I2cBusImpl (i2c_port_t port, gpio_num_t sda, gpio_num_t scl, const char *name) | |
| bool | init () override |
| Initializes hardware I2C controller and driver. | |
| bool | start () override |
| void | stop () override |
| core::ServiceState | getState () const override |
| const char * | getName () const override |
| esp_err_t | addDevice (uint8_t addr, I2cDeviceHandle *out_dev) override |
| Registers an I2C target device in static device pool. | |
| esp_err_t | writeReg (I2cDeviceHandle dev, uint8_t reg, const uint8_t *data, size_t len) override |
| Writes bytes to a register of an I2C device. | |
| esp_err_t | readReg (I2cDeviceHandle dev, uint8_t reg, uint8_t *data, size_t len) override |
| Reads bytes from a register of an I2C device. | |
| esp_err_t | writeRaw (uint8_t addr, const uint8_t *data, size_t len) override |
| esp_err_t | readRaw (uint8_t addr, uint8_t *data, size_t len) override |
| esp_err_t | writeReadRaw (uint8_t addr, const uint8_t *wr, size_t wr_len, uint8_t *rd, size_t rd_len) override |
| bool | probe (uint8_t addr) override |
| esp_err_t | eepromRead (uint8_t addr, uint16_t offset, uint8_t *buf, size_t len) override |
| esp_err_t | eepromWrite (uint8_t addr, uint16_t offset, const uint8_t *buf, size_t len) override |
| Public Member Functions inherited from cdc::hal::II2cBus | |
| virtual | ~II2cBus ()=default |
| Public Member Functions inherited from cdc::core::IService | |
| virtual | ~IService ()=default |
Concrete I2C bus implementation using legacy driver
Definition at line 32 of file I2cBus.cpp.
|
inline |
Definition at line 34 of file I2cBus.cpp.
References name.
|
overridevirtual |
Registers an I2C target device in static device pool.
| addr | 7-bit device address. |
| out_dev | Output handle for registered device. |
Implements cdc::hal::II2cBus.
Definition at line 114 of file I2cBus.cpp.
References cdc::hal::I2cDevice::addr, LOG_E, LOG_I, cdc::hal::I2cDevice::port, and TAG.
|
overridevirtual |
Read from a 16-bit-addressed EEPROM (24Cxx-style) at a byte offset.
Implements cdc::hal::II2cBus.
Definition at line 241 of file I2cBus.cpp.
References writeReadRaw().
|
overridevirtual |
Page-aware write to a 16-bit-addressed EEPROM at a byte offset.
Implements cdc::hal::II2cBus.
Definition at line 247 of file I2cBus.cpp.
References writeRaw().
|
inlineoverridevirtual |
Get service name (for logging/debugging)
Implements cdc::core::IService.
Definition at line 42 of file I2cBus.cpp.
|
inlineoverridevirtual |
|
overridevirtual |
Initializes hardware I2C controller and driver.
Implements cdc::core::IService.
Definition at line 75 of file I2cBus.cpp.
References cdc::core::ERROR, cdc::hal::I2C_FREQ_HZ, cdc::core::INITIALIZED, LOG_E, LOG_I, TAG, and cdc::core::UNINITIALIZED.
|
overridevirtual |
Probe whether a device ACKs at the given 7-bit address.
Implements cdc::hal::II2cBus.
Definition at line 231 of file I2cBus.cpp.
|
overridevirtual |
Raw read transaction from a 7-bit address.
Implements cdc::hal::II2cBus.
Definition at line 203 of file I2cBus.cpp.
References cdc::hal::I2C_TIMEOUT_MS.
|
overridevirtual |
Reads bytes from a register of an I2C device.
| handle | Device handle. |
| reg | Register address. |
| data | Output data buffer. |
| len | Number of bytes to read. |
Implements cdc::hal::II2cBus.
Definition at line 165 of file I2cBus.cpp.
References cdc::hal::I2C_TIMEOUT_MS.
|
inlineoverridevirtual |
Start the service (can be called after init or stop)
Implements cdc::core::IService.
Definition at line 39 of file I2cBus.cpp.
References cdc::core::INITIALIZED.
|
inlineoverridevirtual |
Stop the service (reversible, can start again)
Implements cdc::core::IService.
Definition at line 40 of file I2cBus.cpp.
|
overridevirtual |
Raw write transaction to a 7-bit address (no register prefix).
Implements cdc::hal::II2cBus.
Definition at line 191 of file I2cBus.cpp.
References cdc::hal::I2C_TIMEOUT_MS.
Referenced by eepromWrite().
|
overridevirtual |
Raw write-then-read (repeated start) transaction.
Implements cdc::hal::II2cBus.
Definition at line 215 of file I2cBus.cpp.
References cdc::hal::I2C_TIMEOUT_MS.
Referenced by eepromRead().
|
overridevirtual |
Writes bytes to a register of an I2C device.
| handle | Device handle. |
| reg | Register address. |
| data | Data buffer. |
| len | Number of bytes to write. |
Implements cdc::hal::II2cBus.
Definition at line 137 of file I2cBus.cpp.
References cdc::hal::I2C_TIMEOUT_MS.