Understanding I2C
I2C (pronounced as I-two-see, or I-square-see), short for Inter-Integrated Circuit, is a protocol that was invented by Phillips in the early 80s to be used in televisions. Due to its easy topology and low part count, it is now widely adopted.
Mode of operation
I2C connects chips with two wires: one is data (bidirectional) and the other is clock (of course, with a shared ground). On the bus, one chip acts as the master and the others as slaves (but they can exchange this role if this functionality is foreseen).
Physical layer
A very important feature on the I2C bus is that both lines (classically called Serial Data (SDA) for the data line and Serial Clock (SCL) for the clock line) are pulled up. This means they both have a resistor to the logical positive rail (also called VCC or VDD) in order to guarantee that the bus is high when no chip is pulling it to ground level (low). The bus normally uses a bus topology, but at low speeds, it is possible to use...