I2C Pin configuration with internal strong pull-ups enable


I have configured my I2C in standard bus speed mode(100Khz) with Internal strong pull-ups enable on both SDA and SCL lines. My chips (IO-Expander and hall sensor) are compatible with 100Khz I2C and 10K pull up.
But still my I2C is getting stuck in Bus busy, but when I put external 10K pull-ups and disable internal pull-ups , it works fine.
Can anyone explain why it’s happening and what could be the fix for this, as i want to use internal pull-ups only.



You can only configure GPIO for pull-up or pull-down.


You can’t configure I2C/UART/SPI etc.

You have to use external resistors to pull up I2C SDA and SCL.


Thank you for using our community forum!