Protocolul I2C was developed to create a communication channel between integrated circuits. I2C consists of two lines physically active and earthing connection. The lines are called SDA and SCL active, both lines are bi-directional. SDA is Serial Data Line and SCL is Serial Clock Line.
Any device connected to bus has its unique address, no matter if it is MMU, driver LCD, memory or ASIC. Every one of these chips can receive and/or broadcast depending on the desired functionality. Obviously an LCD driver can only receive while a memory or an I / O device can receive and transmit data.
I2C is a bus multi-master. Thus, in I2C bus can be connected more integrated circuits able to initiate data transfers. I2C protocol specifies that the integrative which initializes the connection is considered Bus Master. Consequently the remaining circuits connected to I2C are regarded as Bus Slaves.
Cum Bus Master are microcontrolere(MCU), this is how a sequence of communication, looks like on I2C.
- MCU sends the sequence START . At this time all circuits on the bus switches to reception
- MCU sends the ADDRESS of the circuit, with which wants to communicate together with the flag operation ( READ / WRITE ) .
- Circuits compares ADDRESS with own address and if the message is not for it, waits for the STOP condition
- If one circuit has the ADDRESS desired by MCU, then the chip will make a message ACKNOWLEDGE.
- Then it moves to the data transfer. When data transfer has finished it is send the STOP sequence.