Working with I2C bus
The I2C bus was designed by Philips in the early 80 to allow easy communication between components which reside on the same circuit board. Philips Semiconductors migrated to NXP  in 2006. Sometimes the bus is called IIC or I²C bus. This has features  like :   Only two bus lines are required  No strict baud rate requirements like for instance with RS232, the master generates a bus clock  Simple master/slave relationships exist between all components Each device connected to the bus is software-addressable by a unique address  I2C is a true multi-master  bus providing arbitration and collision detection Operation: The I2C bus uses two lines called Serial Clock Line (SCL) and Serial Data Lines (SDA). Both lines are pulled high via a resistor (Rpu) as shown in Figure below. The interface uses 8 bit long bytes, MSB (Most Significant Bit) first, with each device having a unique address. Any device may be a Transmitter or Receiver, and a Master or Slave. The Slave is any device addressed by t...