I2C-Basics

I2C-Bus (=IIC Inter Integrated Circuit Bus) has been develloped by the company Phillips in the early 1980s to connect PCBs in electronic systems, i.e. in TVs. It is constructed extremely simple and reliable and has maximum transfer rates of 100 kB/s. Today several enhancements exist. but because most chips only support the classical variant I will describe this.

Technical Topics

The bus consists of two data lines and ground. a plus voltage line may be added, so there are: groundErde (GND), plus (VCC), clock (SCL) and data (SDA). In ground state clock and data lines are logical high.

The main principal is to transmit the data serial, say one bit after the other. during each bit on the data line a clock pulse is given on the clock line. Each data unit consists of eight bits / 1 byte. I.E. a byte of 134 (binary 10000110) is transferred like this:

I2C-Signal

a complete transmission looks like this:

StartAddressADatenA DatenA...DataAP

After the the start condition an address byte is following, then comes a variable number of databytes and closed by the stop condition. Each byte is confirmed by an acknowledge bit. During the transmission the "master" is distinguished from the "slave"

The master sends the start condition, sends the clock pulses, gives the address and sends the stop condition. During a write operation the data is given by the master and read by the slave. In a read operation the data is written by the slave and read by the master. Read and write operations are distinguished by the lowest bit of the address (0=read, 1=write), so the address only consists of the upper seven bits. But for configuration and subaddressing it is also possible to change direction of data flow during one operation. This depends on the abilities of the slave.

The start condition is constituted by a high clock line while the data line changes from high to low. The stop condition is constituted by a transition from low to high on the data line while the clock line is high. In normal operation the data line never changes, while the data line is high!

The address consists of the upper four bits representing the type of device and three bits address of the device. So up to eight similar devices may operate on one I2C bus.

Devices

The following devices are available at Reichelt-Elektronik. The data sheets may be found at the I2C-page of Philipps

.
typedescription
PCF8566Universal LCD driver for low multiplex rates
PCF8570256 x 8-bit static low voltage RAM
PCF8571256 x 8-Bit static low voltage RAM
PCF8573clock/calendar with voltage drop detector
PCF85748-bit i/o
PCF8577Universal LCD driver for low multiplex rates
PCF8582256 x 8-Bit EEPROM
PCF8583Clock/calendarwith 240 bytes of RAM
PCF8584I²C-Bus-Controller
PCF85911xD/A and 4xA/D-converter

© Mario Boller-Olfert 2002 - E-Mail: Kontaktformular - 123-Byte - Marios Welt