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

The bus state diagram can be seen in Figure 17-4.
  • S: Start condition

  • P: Stop condition

  • Sr: Repeated start condition
    Figure 17-4.  I2C Bus State Diagram