EE Bookshelf: I2C Bus Technical Overview:
Since we’ve been busy adding quite a few I2C sensors and breakouts lately, I thought this technical overview of the 2-wire “Inter-Integrated Circuit” bus might be handy. I2C isn’t fast (typically limited to 400kHz in most real-world situations), but it’s convenient since it only requires two pins and more than 120 devices can be connected on the same bus, address space permitting. For low-pin count devices, it can be a real life-saver since you can hook an OLED display, a DAC, a 7-segment display and 16 servo motors up to your Arduino with a measley two pins and some careful coding! The full bus specification is available from NXP in UM10204 – the bus was created by Philips, whose semiconductor branch later became NXP — but the more concise information from Embedded Systems Academy might be easier to digest as a starting point. The FAQ has some very good information in it.