142 for(
int i = 0;i < 3;i++){
234 for (
u32 i = 0; i < length; i++) {
251 for (
u32 i = 0; i < length; i++) {
271 for (
int i = 0; i < length - 1; i++) {
300 for (
int i = 0; i < length - 1; i++) {
i2c_interrupt_t
I2C Enable Interrupt List.
void i2c_clearInterruptFlag(i2c_instance_t *inst, i2c_interrupt_t value)
Clears specific I2C interrupt flags.
void i2c_startMasterBlocking(i2c_instance_t *inst)
Initiate start condition for I2C master mode and waits until the operation is complete.
void i2c_sendTxAck(i2c_instance_t *inst)
Transmits an ACK signal over I2C.
void i2c_recoverMasterBlocking(i2c_instance_t *inst)
Initiate recover condition for I2C master mode and waits until the operation is complete.
void i2c_setMux(i2c_instance_t *inst, const uint8_t cr)
Set I2C MUX control register.
void i2c_sendNackBlocking(i2c_instance_t *inst)
Sends an NACK signal over the I2C bus and waits until the transmission is complete.
void i2c_readData_w(i2c_instance_t *inst, u16 regAddr, u8 *data, u32 length)
Read data with a 16-bit register address over I2C.
void i2c_restartMasterBlocking(i2c_instance_t *inst)
Initiate restart condition for I2C master mode and waits until the operation is complete.
void i2c_stopMaster(i2c_instance_t *inst)
Initiate stop condition for I2C master mode and sets the dropped status if necessary.
void i2c_sendAckBlocking(i2c_instance_t *inst)
Sends an ACK signal over the I2C bus and waits until the transmission is complete.
void i2c_writeData_b(i2c_instance_t *inst, u8 regAddr, u8 *data, u32 length)
Write data with an 8-bit register address over I2C and check rx ack for each transaction.
void i2c_applyConfig(i2c_instance_t *inst)
Apply the software configuration to the hardware.
void i2c_sendTxByte(i2c_instance_t *inst, u8 byte)
Transmits a byte of data over I2C.
void i2c_sendTxNack(i2c_instance_t *inst)
Transmits an NACK signal over I2C.
u32 i2c_getRxData(i2c_instance_t *inst)
Reads data from I2C receive data register.
void i2c_enableFilter(i2c_instance_t *inst, u32 filterId, u32 config)
Enables and configures an I2C hardware filter.
u32 i2c_getFilteringHit(i2c_instance_t *inst)
Get Filtering Hit.
u32 i2c_getSlaveOverride(i2c_instance_t *inst)
Get Slave Override.
void i2c_disableInterrupt(i2c_instance_t *inst, i2c_interrupt_t value)
Disables specific I2C interrupts.
void i2c_sendTxNackRepeat(i2c_instance_t *inst)
Sends a NACK signal over I2C bus with repeat mode enabled.
u32 i2c_checkMasterBusy(i2c_instance_t *inst)
Checks if the I2C master is busy.
u32 i2c_getSlaveStatus(i2c_instance_t *inst)
Get Slave Status.
void i2c_startMaster(i2c_instance_t *inst)
Initiate start condition for I2C master mode and sets the dropped status if necessary.
u32 i2c_getRxNack(i2c_instance_t *inst)
Checks if the received ACK signal is detected.
void i2c_setFilterConfig(i2c_instance_t *inst, u32 filterId, u32 value)
Sets the configuration for an I2C hardware filter.
void i2c_waitTxAck(i2c_instance_t *inst)
Waits until the transmission of an ACK signal is complete over the I2C bus.
void i2c_setSlaveOverride(i2c_instance_t *inst, u32 value)
Write values to I2C hardware registers.
void i2c_waitRxAck(i2c_instance_t *inst)
Waits until the reception of an ACK signal is complete over the I2C bus.
u32 i2c_getMasterStatus(i2c_instance_t *inst)
Get Master Status.
void i2c_enableInterrupt(i2c_instance_t *inst, i2c_interrupt_t value)
Enables specific I2C interrupts.
void i2c_listenAck(i2c_instance_t *inst)
Configures the I2C controller to listen for ACK signals on the receiver (RX) line.
u32 i2c_getInterruptFlag(i2c_instance_t *inst)
Get Interrupt Flag.
void i2c_readData_b(i2c_instance_t *inst, u8 regAddr, u8 *data, u32 length)
Read data with an 8-bit register address over I2C.
void i2c_dropMaster(i2c_instance_t *inst)
Drops the current I2C master operation.
void i2c_restartMaster(i2c_instance_t *inst)
Initiate restart condition for I2C master mode and sets the dropped status if necessary.
void i2c_writeData_w(i2c_instance_t *inst, u16 regAddr, u8 *data, u32 length)
Write data with a 16-bit register address over I2C and check rx ack for each transaction.
void i2c_sendTxByteRepeat(i2c_instance_t *inst, u8 byte)
Sends a byte over I2C bus with repeat mode enabled.
u32 i2c_getFilteringStatus(i2c_instance_t *inst)
Get Filtering Status.
void i2c_stopMasterBlocking(i2c_instance_t *inst)
Initiate stop condition for I2C master mode and waits until the operation is complete.
void i2c_recoverMaster(i2c_instance_t *inst)
Initiate recover condition for I2C master mode and sets the dropped status if necessary.
u32 i2c_getRxAck(i2c_instance_t *inst)
Reads Acknowledge signal from I2C receive data register.
u32 i2c_getInterruptEnable(i2c_instance_t *inst)
Get Interrupt Enable.
#define I2C_TX_DISABLE_ON_DATA_CONFLICT
Mask for Disable TX on data conflict.
#define I2C_MASTER_RECOVER_DROPPED
Mask for Master Recover Dropped.
#define I2C_RX_VALUE
Mask for RX value.
#define I2C_TX_ENABLE
Mask for Enable TX.
#define TX_AND_CHECK(inst, byte)
Transmits a single byte over the I2C bus and waits for an ACK response.
#define I2C_MASTER_RECOVER
Mask for Master Recover.
#define I2C_MASTER_START
Mask for Master Start.
#define I2C_MASTER_DROP
Mask for Master Drop.
#define I2C_MASTER_STOP_DROPPED
Mask for Master Stop Dropped.
#define I2C_WRITE
Indicate Write Transcation.
#define I2C_TX_VALID
Mask for TX valid bit.
#define I2C_MASTER_BUSY
Mask for Master Busy.
#define I2C_MASTER_START_DROPPED
Mask for Master Start Dropped.
#define I2C_READ
Indicate Read Transcation.
#define I2C_MASTER_STOP
Mask for Master Stop.
#define I2C_TX_REPEAT
Mask for Repeat TX.
#define I2C_RX_LISTEN
Mask for RX listen mode.
I2C driver API definitions.
u32 FILTER_CONFIG_0
Offset +0x00: Primary Filter Config (Addr/Enable).
u32 TSU_DATA
Address Offset: 0x30.
u32 SLAVE_OVERRIDE
Address Offset: 0x48.
u32 tLOW
Address Offset: 0x50.
u32 MASTER_STATUS
Address Offset: 0x40.
u32 tHIGH
Address Offset: 0x54.
i2c_filter_hwreg_t FILTER[3]
Address Offset: 0x8C.
u32 INTERRUPT_CLEAR
Address Offset: 0x24.
u32 HIT_CONTEXT
Address Offset: 0x80.
u32 RX_ACK
Address Offset: 0x0C.
u32 TX_DATA
Address Offset: 0x00.
u32 TX_ACK
Address Offset: 0x04.
u32 SLAVE_STATUS
Address Offset: 0x44.
u32 INTERRUPT
Address Offset: 0x20.
u32 RX_DATA
Address Offset: 0x08.
u32 tBUF
Address Offset: 0x58.
u32 SAMPLING_CLOCK_DIVIDER
Address Offset: 0x28.
u32 FILTER_STATUS
Address Offset: 0x84.
u32 TIMEOUT
Address Offset: 0x2C.
I2C instance. Holds the software registers and hardware pointer.
u32 tBuf
Bus Free Time between STOP and START.
u32 timeout
Timeout Value.
i2c_hwreg_t * hwreg
Pointer to Hardware Register Map.
u32 tsuDat
Data Setup Time.
u32 samplingClockDivider
Sampling Clock Divider.
u32 slaveAddress
7-bit Slave Address