You are here

How is the I2C bus arranged? Part 11

Thus, the receiver confirms normal byte reception. The transmitter (master-subscriber) must set in one state on the SDA line. Due to the fact that the line is organized in the “wired AND” manner, its state will be determined only by the slave-subscriber. The transmitter should check the state of the SDA line, then issue the ninth gate pulse with which the slave-subscriber will set in high level on the SDA line, check out this operation, and only then continue the transfer. In case normal reception is not confirmed (ISA signal has a high level), the transmitter should set the Stop condition and repeat the transfer. The third situation that may occur when ISA signal is received is associated with a delay in processing in a slave-subscriber.

Delayed release of the SDA line does not indicate improper exchange of information, so a master-subscriber should only wait until the end of ISA and continue the transfer. We must also say that in the original documentation the state of “acknowledge” is termed with the letter "A". If a byte transferred via the bus is the last in the packet, a master device can expose the Stop state instead of checking ISA signal, and slave-subscriber must release the SDA line.

The described conditions are quite sufficient for the operation of the 12C bus with a single master device. Generally, a master-subscriber can be very easily arranged in a software-based way and that is used by many developers. To implement the multi-master mode, as has been said, additional states of synchronization and arbitration must be implemented. First, let’s consider the synchronization.