How would you go about picking pullup resistors for an I2C bus?

How would you go about picking pullup resistors for an I2C bus?

Each signal line has a pull-up resistor on it, to restore the signal to high when no device is asserting it low. Notice the two pull-up resistors on the two communication lines. Resistor selection varies with devices on the bus, but a good rule of thumb is to start with 4.7kΩ resistor and adjust down if necessary.

Why do we need pull up resistor in I2C?

A pull up resistor is used to provide a default state for a signal line or general purpose input/ouput (GPIO) pin. Typically they are of high resistance thousands or tens of thousands of ohms of resistance.

How is the pull up resistor of an I2C bus limited?

The maximum pullup resistance is limited by the bus capacitance (Cb) due to I2C standard rise time specifications. If the pullup resistor value is too high, the I2C line may not rise to a logical high before it is pulled low.

When do pull up resistors pull the line high?

The pullup resistors pull the line high when it is not driven low by the open-drain interface. The value of the pullup resistor is an important design consideration for I2C systems as an incorrect value can lead to signal loss.

Why does the PCB capacitance affect the I2C bus?

So if your I2C bus, with all the PCB capacitance and pin capacitance added together, winds up with a capacitance large enough, it will work to prevent the rapid changing of a voltage level on that bus, and suddenly you can’t make those quick snaps from logic low to logic high as cleanly as necessary. And how does this funky capacitor get charged?

What’s the maximum capacitance of an I2C resistor?

The maximum of all the capacitances are limited to 400pF by I2C standard, and you’d have to have either a really long signal trace on your PCB or a lot of devices on it to get anywhere near 400pF, but as the frequency of your signal increases, the impact of that charging rate will have a dramatic affect.