19 static const uint8_t pdNegociationI2cAddress = 0x22;
20 static const uint8_t chargeI2cAddress = 0x6B;
21 static const uint8_t imuI2cAddress = 0x6A;
22 static const uint8_t batteryBalancerI2cAddress = 0x08;
25#define I2C_XFER_START (1 << 0)
26#define I2C_XFER_STOP (1 << 1)
27#define I2C_XFER_SINGLE (I2C_XFER_START | I2C_XFER_STOP)
42 extern void i2c_setup(uint8_t i2cIndex, uint32_t baudrate, uint32_t timeout);
49 extern void i2c_turn_off(uint8_t i2cIndex);
54 extern int i2c_check_existence(uint8_t i2cIndex, uint8_t deviceAddr);
68 extern int i2c_writeData(
69 uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint8_t size,
const uint8_t* buf,
int stopBit);
80 extern int i2c_readData(
81 uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint8_t size, uint8_t* buf,
int stopBit);
93 extern int i2c_xfer_unlocked(uint8_t i2cIndex,
120 const int res = i2c_xfer_unlocked(i2cIndex, deviceAddr, out_size, out, in_size, in, flags);
135 inline int i2c_read8(uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint8_t* val,
int stopBit)
137 return i2c_readData(i2cIndex, deviceAddr, registerAdd, 1, val, stopBit);
148 inline int i2c_write8(uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint8_t val,
int stopBit)
150 return i2c_writeData(i2cIndex, deviceAddr, registerAdd, 1, &val, stopBit);
161 inline int i2c_read16(uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint16_t* val,
int stopBit)
163 return i2c_readData(i2cIndex, deviceAddr, registerAdd, 2, (uint8_t*)val, stopBit);
174 inline int i2c_write16(uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint16_t val,
int stopBit)
177 data[0] = val & 0xFF;
178 data[1] = (val >> 8) & 0xFF;
179 return i2c_writeData(i2cIndex, deviceAddr, registerAdd, 2, data, stopBit);
int i2c_write16(uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint16_t val, int stopBit)
Write 16bits from the two wire interface.
Definition: i2c.h:174
int i2c_read16(uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint16_t *val, int stopBit)
Read 16bits from the two wire interface.
Definition: i2c.h:161
int i2c_read8(uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint8_t *val, int stopBit)
Read 8bits from the two wire interface.
Definition: i2c.h:135
int i2c_xfer(uint8_t i2cIndex, uint8_t deviceAddr, int out_size, const uint8_t *out, int in_size, uint8_t *in, uint8_t flags)
Does a range read/write.
Definition: i2c.h:111
int i2c_write8(uint8_t i2cIndex, uint8_t deviceAddr, uint8_t registerAdd, uint8_t val, int stopBit)
Write 8bits from the two wire interface.
Definition: i2c.h:148
Program scope.
Definition: control_fixed_modes.hpp:12