Tool/software:
Hello i am Currently using the MSPM0 G3507 .The i2c driver is indicating that the i2c bus is busy, but the register window shows that it is idle. Additionally, the physical status of the SDA and SCL lines are also idle. However, the API call continues to return a busy status when we free run. The i2c baud rate is 400kbs, and using the Controller transfer function which sends the start and stop automatically. In the image i2cBusBusy the gpio toggle is supposed tob waiting for the data to be completely transferred but the condition fails. Using the busy bit from the MSR register if the i2c is bus or not. The code snipet is attached below. Introducing a small delay of 10us before the while ((DL_I2C_getControllerStatus(I2C0_INST) &
DL_I2C_CONTROLLER_STATUS_BUSY_BUS) solves the issue. But need to understand why exactly this is happening.