7 years, 4 months ago.

Use of MCU internal pullup resistors as I2C pullup resistors

Some MCUs have internal pull up resistors, which can optionally be connected to I/O pins The output pin drivers on a I2C device are open collector and therefore a pull up resistor must be connected to each I2C bus line at some point Does the MBED library's I2C module support connecting a MCU's internal pull up resistors as the required I2C bus pull up resistors ?

1 Answer

7 years, 4 months ago.

Ignoring any potential issues with the internals of how the pullups are implemented (they are actually current sources/sinks nor resistors) the internal pulls have an effective resistance in the 10's or even 100's of kohm range, far too large for reliable I2C communication.

e.g. on an LPC11U2x the pull up is between -15uA and -85uA with a typical value of -50uA. So with a power supply of 3.3V that is the equivalent of a pull up to 3.3V of somewhere between 38k and 220k with a typical value of 66k.

Other parts will be in the same ballpark.