# What is Bus capacitance in I2C? How it limits number of devices can be connected to the bus?

Bus capacitance limits number of devices that can be connected by I2C. What problem is encountered if one tries to exceed this limit can anyone explain this in detail please.

Thank you

• With the pullup R, it forms an RC time constant which affects the signal pulses.
– user16324
Apr 21, 2020 at 15:03
• Apr 21, 2020 at 15:39
• Is this homework or a college/university assignment? Apr 21, 2020 at 15:51
• @TonyM No its not a homework.I was curious to know and i didnt find any answers. Apr 22, 2020 at 4:02
• Does this answer your question? How is the electrical bus capacitance for I2C trace calculated? Apr 22, 2020 at 6:46

What is bus capacitance in I2C?

It's the same as any capacitance - consider the copper traces running over a ground plane. There is some capacitance between the metal, determined by the total area of the traces and dialectic constant between them. Devices on the bus will also have some known capacitance between their IO pins and ground. I2C bus signals can be in the range of 100kbit/s, 400kbit/s or even 1Mbit/s. Adding a capacitor to ground on these signal lines will increase the rise and fall times of the I2C signal lines.

How does it limit the number of devices on the bus?

Each additional devices adds input capacitance to the signal lines in addition to increasing the bus trace area on the pcb. There's also additional noise added due to the longer traces. As the capacitance on the outputs increases, the signal lines become more sloped. If it's too high, they won't ever reach the threshold for any slave devices on the bus to recognize the signal at all. Or, in the case of the data line, the value might not reach the threshold in time to be registered.

## Electrical Theory

Consider what an I2C connection looks like in a device. The SDA and SCL lines are said to be "Open Drain" which means they are connected to ground through an N channel FET and can sink current. Therefore, they can pull the lines low, but not set them high. That's why you need to connect external pullup resistors to the control lines. The lines are monitored through a diode which has some input threshold which must be overcome.

simulate this circuit – Schematic created using CircuitLab

So pulling the signal low is very quick, but to go high, current must flow through the external resistor and the internal circuitry to ground. This is not instantaneous, and any additional capacitance on the lines will further increase the rise time.

Here are some example waveforms of a 50kHz clock line. The actual capacitor values are just to prove the point.

## Practical Considerations

The device input capacitance is typically around 10pF, but exact values can be found in the datasheet. Another value to consider is the maximum sink current of any of the open drain connections, as this will put a lower limit on the pullup resistor values.

This technical article from All About Circuits does an excellent job at visualizing these concepts and digging deeper into the calculations for signal rise time and acceptable pullup values.

• Thank you for making me understand it @Kurt E. Clothier Apr 22, 2020 at 4:10

You need at least 2 time constants of risetime, given the passive pullup. Otherwise the positive-going waveform will not reach a clean "high" and the data-sampling circuits will conclude a "0" was transmitted.

Thus for 1Kohm pullup and 500 pF total capacitane (wiring, PCB, the ICs hanging on the buss with ESD protection and their data-sampling circuits), you have 500 nanoseconds time constant, and since you need at least 2 tau settling (with that being quite marginal), the bittime must be at least as long as 2 * 500nS = 1,000nS = 1uS => 1MHz rate.

I imagine Philipps has conservative specs on their IP. Respect that.

• Many i2c devices have maximum sink current specifications of 2-3 mA so 1kohm would be too low in a 5v system. The lowest acceptable would be 2.2k. Apr 21, 2020 at 16:00
• The NXP spec only requires 3mA of sink current in standard mode and fast mode, @KevinWhite makes a valid point. The specified maximum bus load for these two modes is not 500pF, it is 400pF. Apr 21, 2020 at 16:18