Showing results for 
Search instead for 
Did you mean: 

Broken Open Drain



I have a defect on the I2C on a STM32L151CBU6A SDA Pin (PB9). Every external component beside a 4.7k pullup resistor has been removed.

The system is running on 3.6 V and if I just let the pin toggle in Push/Pull configuration I am getting a clean 3.6 square Signal.

Reconfiguring to Open drain enabled leads to clean 0 state but ~1V in high state. Changing the internal pullup moves this voltage around a little bit.

I have put the originally connected i2c eeprom to another board and it works fine. So the only defect seems to be in the stm itself.

From my understanding Open drain should have less internal hardware connected than Push Pull mode so I can't explain this behaviour.
Any hints what could be broken are welcome.


just guessing : the output mosfet is defective, showing high leakage current .

maybe try strong pullup, 1k or so, as workaround.

Community manager
Community manager

Hi @v_g ,

Does your PCB allow you to check with another I2C instance like I2C2 (PB10/PB11 as SCL/SDA) or use another SDA pin (PB7 instead of PB9)?


To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi @Amel NASRI ,

it is not related to the i2c directly - i can reproduce the issue without using or initializing the i2c. I could use other pins but my only interest is to find out what could have happened with that pin. Since the whole pcb was potted neither moisture nor esd seem to be a good explanation. Especially since the i2c eeprom seems to be fine.