2026-02-05 2:24 PM
I am currently using an STM32L011F4U6 to communicate with some other chips and it is failing to pull either I2C line down to GND fully when signalling, they are seemingly clamped to approximately 1.2V at a minimum as shown below making it impossible to communicate with my I2C devices which need the I2C lines to drop below 0.5 V to register a low state. Is this something anyone else has dealt with?
I2C waveforms with 10k pullups at Normal Mode speeds
I am using PA9 for SCL, PA10 for SDA, using the I2C1 peripheral.
In the photograph above I am using 10 kOhm resistors for pullups and the speed is Normal Mode. I am targeting Fast Mode speeds and use 2 kOhm resistors in the original circuit but I changed both to see if they had any effect - which they did not. The issue is the same in fast mode with the stronger pullups.
I have probed the circuit with a ammeter to verify the required sink current is within the expected range. With the 2 kOhm resistors the current sank to pull down to 0 V was under 2 mA - so that appears fine, similar story for the 10 kOhm pullup resistors.
I have changed the firmware to use the I2C pins as normal open-drain GPIO and they were able to properly pull the lines down to 0 V then.
The voltage being approximately 1.2 V makes me suspect something related to protection on the pins but it still fails to explain why direct open-drain mode worked fine to bring the lines to 0 V.
I have repeated this with a second fresh board and the issue is also present on it.
All this to say I am at a loss, does anyone have an idea why as I2C pins they can't pull down to 0 V properly anymore?