cancel
Showing results for 
Search instead for 
Did you mean: 

I2C1 Negative Overshoot - STM32U5G9

jayjoshi
Associate

We are using STM32U5G9's I2C with a diff-I2C to single ended I2C converter IC PCA9616. PCA9616 is used to program the STM32 MCU over I2C1 by converting diff-I2C to single ended I2C.

However, while probing the I2C1 of the STM32U5G9, we are seeing negative overshoot and level shifting on it. It seems like MCU is taking control of the I2C while in the slave mode. See I2C_SCL_waveform1.png

Also, we have tried disabling I2C1 of the MCU (by configuring it as a GPIO input only), by doing this we are able to mitigate the negative overshoot problem. I think the problem is with MCU, looks like it is taking control even if it is a SLAVE. See I2C_SCL_waveform2.jpg

Kindly let us know the exact reason and how to mitigate this issue.

3 REPLIES 3
TDK
Super User

Yeah looks like something is wrong.

The MCU can't drive signals below 0 V, something else happening there. Because of that, I doubt it's an STM32 issue.

300 mV is roughly the threshold of the protection diodes. Perhaps ground bounce is happening or some current is being conducted via another source. How is the scope ground hooked up? How are the two grounds connected?

If you feel a post has answered your question, please click "Accept as Solution".

It is very suspicious that the base level of the SCL signal is about 400 mV ! It looks like a short circuit between two outputs or something similar. Disconnect all slave devices and see what the signal looks like.

MHoll.2
Senior III

If the plots are from the differential side of the PCA9616, then in think that this is normal, the I2C Slave will drive the SCL line low for some time, this is called clock streching and is a standard I2C function.

You see the different level on the differenatial line because both PCA9616 are driving the Line for this period. I don't see any negative values, so there are non problems with protection diodes or similare.