171 TXN_RESTART_FOR_READ,
189 uint8_t iadrAddressSize;
197 Result_t read8(uint8_t &dat,
bool bLast);
221 : scl(rhs.scl), sda(rhs.sda), delayCount(rhs.delayCount),
222 txnState(rhs.txnState), txnResult(rhs.txnResult),
223 iadrAddressSize(rhs.iadrAddressSize)
307 virtual Result_t readReg16(uint8_t devAddr, uint32_t reg, uint16_t &data,
int byteOrder);
308 virtual Result_t readReg32(uint8_t devAddr, uint32_t reg, uint32_t &data,
int byteOrder);
339 static Result_t writeReg8(
int module, uint8_t devAddr, uint32_t reg, uint8_t dat);
340 static Result_t readReg8(
int module, uint8_t devAddr, uint32_t reg, uint8_t &dat);
341 static Result_t writeRegN(
int module, uint8_t devAddr, uint32_t reg, uint8_t *buf, uint32_t blen);
342 static Result_t readRegN(
int module, uint8_t devAddr, uint32_t reg, uint8_t *buf, uint32_t blen);
345 void dump(uint32_t line);
363 [[deprecated(
"SetMaxBusDelay has no effect; bus operations already time out, use resetBus() to recover a hung bus")]]
383 virtual Result_t ping(uint8_t devAddr,
bool bAsWrite =
false);
BBI2C(PinIO scl, PinIO sda)
Construct a software I2C bus on the specified GPIO pins.
virtual Result_t readRegN(uint8_t devAddr, uint32_t reg, uint8_t *buf, uint32_t blen)
Read a number of 8-bit values from an I2C slave at the specified register address.
Result_t
Definition bb_i2c.h:156
@ I2C_RES_ACK
Acknowledged.
Definition bb_i2c.h:157
@ I2C_RES_ERR
Unknown Error.
Definition bb_i2c.h:163
@ I2C_RES_BUSY
Bus is busy.
Definition bb_i2c.h:160
@ I2C_RES_NACK
Not acknowledged.
Definition bb_i2c.h:158
@ I2C_RES_IN_PROGRESS
Another transaction is currently in progress.
Definition bb_i2c.h:162
@ I2C_RES_ARG
Bad argument.
Definition bb_i2c.h:161
@ I2C_RES_ARB_LST
Arbitration listening.
Definition bb_i2c.h:159
virtual Result_t writeReg8(uint8_t devAddr, uint32_t reg, uint8_t data)
Write an 8-bit value to a I2C slave device register.
uint32_t GetBusSpeed()
Return the bus speed the software timing is currently set to.
BBI2C(const BBI2C &rhs)
Copy constructor.
Definition bb_i2c.h:220
virtual Result_t writeReg16(uint8_t devAddr, uint32_t reg, uint16_t data, int byteOrder)
Write a 16-bit value to an I2C device register.
virtual Result_t writeRegN(uint8_t devAddr, uint32_t reg, uint8_t *buf, uint32_t blen)
Write a number of 8-bit values to an I2C slave to the specified register address.
virtual Result_t readReg8(uint8_t devAddr, uint32_t reg, uint8_t &data)
Read an 8-bit value form an I2C slave device register.
void setup(uint32_t maxBusSpeed)
Configure the pins and prepare the software I2C bus for use.
virtual Result_t writeReg32(uint8_t devAddr, uint32_t reg, uint32_t data, int byteOrder)
Write a 32-bit value to an I2C device register.
void SetMaxBusDelay(uint16_t milliseconds)
Set the maximum duration that the bus is allowed to be in use without being clocked before being forc...
void setNumAddressBytes(uint8_t numAddressBytes=1)
Specify the register address size for a read or write transaction. A number of bytes,...
Definition bb_i2c.h:258
void resetBus()
Reset the I2C bus.
GPIO Pin Class.
Definition coldfire/cpu/MCF5441X/include/cpu_pins.h:44