[4] Physical Requirements

Submitted by rgcustodio on June 10, 2007 - 12:49pm.

These electronic requirements must be met or the I2C bus will behave erratically.

The bus physically consists of 2 active wires:

SCL - Serial CLock line (sometimes referred to as SCK)

SDA - Serial DAta line


These lines are bi-directional, and open drain thus must be pulled up with resistors. Resistance value should be between 4K7 and 47K ohms. Only one pair of resistors is needed for the whole I2C bus. If the resistors are missing, the SCL and SDA lines will always be low - nearly 0 volts - and the I2C bus will not work.


The SCL and SDA lines are connected to all devices on the I2C bus. Two additional wires is also be needed, ground wire and +5V wire to power the devices on the bus.


The maximum number of devices that can be connected to the I2C bus is only limited by the available address space but also by the total I2C bus capacitance which must not exceed 400pF.

 Sample setup

Fig 2 Test setup with 3 different I2C devices connected to the bus.


Since I2C devices have a maximum SCL clock frequency make sure you set your clock to maximum clock frequency of the slowest device on the I2C bus. Setting it to 100kHz is always a safe bet.

cp_devices.jpg136.54 KB

either pulled low, or tri-stated

For AVRs, I2C either pulls the line low or tri-states it (a floating voltage). The pull-up is needed to get a 1 during the tri-state.