17.2.6 Bus States
As the I2C bus is limited to one transaction at the time, a master that wants to perform a bus transaction must wait until the bus is free. Because of this, it is necessary for all masters in a multi-master system to know the current status of the bus to be able to avoid conflicts and to ensure data integrity.
IDLE No activity on the bus (between a Stop and a new Start condition)
OWNER If the master initiates a transaction successfully
BUSY If another master is driving the bus
UNKNOWN If the master has recently been enabled or connected to the bus. Is forced to IDLE after given timeout when the master module is enabled
S: Start condition
P: Stop condition
- Sr: Repeated start condition