Contents
Why does I2C need pull up resistor?
As discussed in the I2C Basics module, the resistors that are commonly seen on I2C circuits sitting between the SCL and SDA lines and the voltage source are called pull up resistors. A pull up resistor is used to provide a default state for a signal line or general purpose input/ouput (GPIO) pin.
How do you select a pull up resistor for I2C?
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.
What is use of pull-up resistor?
In electronic logic circuits, a pull-up resistor or pull-down resistor is a resistor used to ensure a known state for a signal. A pull-up resistor effectively establishes an additional loop over the critical components, ensuring that the voltage is well-defined even when the switch is open.
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.
Why are I2C slave devices interfering with the bus?
The reason being is that the ESD diodes in the SCL/SDA pins of a slave that is powered down could be interfering with the I2C bus as they leech power from the bus to feed through the internals of the slave.
What does I2C mean for data and clock lines?
I2C is a TTL-logic protocol; so your data and clock lines are open-drain. In other words, the I2C hardware can only drive these lines low; they are left floating when not a zero. That’s where the pull-up resistors come in.
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?