cancel
Showing results for 
Search instead for 
Did you mean: 

i2c1 no pull-up

guansonghuang
Associate II

hello,my custom board using stm32mpa35faf7 i2c1, but I forget add externel pull-up resitors.

PD12--->I2C1_SCL

PE8 ---->I2C1_SDA

Now  ths i2c seems don't work.

please help me

1 ACCEPTED SOLUTION

Accepted Solutions

drive-push-pull is wrong for I2C. It is always drive-open-drain

hth

KnarfB

View solution in original post

3 REPLIES 3
KnarfB
Principal III

In general, this needs to be fixed by adding the missing pull-ups.

Just for testing, it may work configuring the internal pull-ups on I2C1_SDA and I2C1_SCL in CubeMX GPIO Settings. The internal pull-ups are generally too weak, but better than nothing. 

You may also increase the Rise Time in CubeMX and ideally watch the singnals on a scope. 

And, surely you should use the slowest mode (standard mode). 

hth

KnarfB

guansonghuang_0-1719376557502.jpegguansonghuang_1-1719376585861.png

I reconfig  the dts tree of i2c1,use inner pull-up and 1K baurate seems not work too

drive-push-pull is wrong for I2C. It is always drive-open-drain

hth

KnarfB