20.5.3.5 Bus Collision During a Start Condition

Before issuing a Start condition, the user software should verify an Idle state of the bus using the S and P status bits. Two hosts may attempt to initiate a message at a similar point in time. Typically, the hosts will synchronize clocks and continue arbitration into the message until one loses arbitration. Any of the following conditions can cause a bus collision to occur during a Start:

  • If the SDAx and SCLx pins are at a low logic state at the beginning of the Start condition
  • If the SCLx line is at a low logic state before the SDAx line is driven low

In either case, the host that loses arbitration during the Start condition generates a bus collision interrupt.