Other Parts Discussed in Thread: MSPM0L1306
Tool/software:
Hi Teams,
Based on the example created by CCS, i2c_controller_rw_multibyte_fifo_poll_LP_MSPM0L1306_nortos_ticlang, I created two I2C functions and the source is attached in i2c.7z:
- I2cOperationStatus_t I2C_Read( uint8_t devAddr, uint8_t regAddr, uint8_t *dataBuf, uint8_t length )
- I2cOperationStatus_t I2C_WriteByte( uint8_t devAddr, uint8_t regAddr, uint8_t dataByte )
In our product, there are two I2C peripherals with different device address.
When I use the function I2C_Read() to read the chip id from it's register, the chip ID can be read correctly.

After that, when I use the function I2C_WriteByte() to init the register, it will be failed and the waveform become :

where orange line is SDA and blue line is SCL.
My questions are :
1. What will be the cause of the issue?
2. When this happen, how to recover I2C module to work correctly by software? Currently, device reboot is the only way to recover it, but the problem will repeat again.
