Termination Versus Serial Resistance

Usually, if the I2C bus is used solely on one board, serial resistors Rs are very low or not existing at all. In some circuits, e.g. if the I2C bus is externally accessible by a connector, it is desirable to add serial resistors in the SDA and SCL line in order to protect the I2C devices against overcurrent.

Together with the termination resistance Rp, the serial resistance Rs affects the static low level of the I2C lines. The pictures below show parts of a master transmitter transfer on an I2C bus with the serial resistances Rs1 = 250 Ω and Rs2 = 0 Ω, and a pull-up resistance Rp = 1 kΩ. The first one shows the transfer as measured at the clamps of I2C device #1 (here: the master), the second one as measured at the clamps of I2C device #2 (here: the slave). Note the different low-level voltages; the low level measured at the slave is about Rs / (Rs + Rp) * Vcc = ~1/5 * Vcc while the low level measured at the master is nearly GND.

SDA (above) and SCL (below) as measured at I2C device #1 (master)
Same transfer as above, measured at I2C device #2 (slave)

A high low level on SCL and SDA can lead to problems under certain circumstances as some devices may not properly recognize this as a valid low level. If Rs cannot be reduced for some reason, it helps to raise the termination resistance Rp instead. The following picture shows the transfer at the slave clamps with an increased termination resistance of Rp = 10 kΩ.

Same transfer as above, measured at I2C device #2 (slave) with increased Rp

<< Termination Versus CapacitanceSerial Resistance And Debugging >>