I2C as many of you know, is a simple serial interface for many peripheral devices to micro controllers, but it can quickly become confusing to people who may not be accustom to it. Because of that, I2C tutorials are always welcome, and this new tutorial by [Embedds] does an excellent job of how to use I2C with an AVR with a 24C16 2Kbyte EEPROM.
The first half of the tutorial provides a clear explanation of how I2C works, including its signal structure, addressing, and data packets. It then moves on to AVR territory showing how to setup the I2C in an AtMega micro controller. The author uses a pretty standard to most of us Arduino, with software written in AVR C and a nifty little GUI programming application which eases the hassle of dealing with AVRDude directly.
Plenty of code samples follow from twiddling registers to a full blown application reading and writing bits from the EEPROM to a serial terminal on a PC.