cancel
Showing results for 
Search instead for 
Did you mean: 

i have an issue with I2C line especially I2C3 on nucleo board with vl53l1x expansion board.

ABoya.14
Associate II

i'm trying to transmit distance measurement data recorded from the vl53l1 sensor to a caspian module in order to drive a liquid lens. And for that i'm using an i2c bus: i2c1 to collect measurements data from the sensor and i2c3 to communicate with a driver embedded in the caspian module (the driver is MAX14574EWL).

the pins were initialized by STM32CubeMx but i modified the software to deactivate the pull up or the pull down.

the problem is when monitoring the signals on the sda and scl lines, i'm getting collapsed signals (strongly collapsed on the sda line)

PS: the pull up resistors on the slave device (MAX14574EWL+ embedded in caspian module) have a value of 4.7 kohms.

 if someone could help me, i will be grateful.

i joined the image of the signals (green: SCL line and yellow: SDA line) and the main.c file of my software.

thank you for your help.

3 REPLIES 3
AvaTar
Lead

The value of the external pull-up resistor seems reasonable.

> ... the pins were initialized by STM32CubeMx but i modified the software to deactivate the pull up or the pull down.

That's fine, the internal pull-ups don't work for I2C.

How long are your lines, and do you have a larger capacitive load ?

ABoya.14
Associate II

i've already reduced the length of my lines and changed the external pull up value.

And also i don't have any capacitive load somewhere on the line.

Now i'm thinking that the problem is with my code. i'm trying to write a simple i2c function to test it on the I2C3 Bus.

i will come back to you once i get the result.

thank you for help.

AvaTar
Lead

Code does usually not generate ringing as seen on the scope image.

Especially the SCL rising edge, which seems to produce crosstalk on SDA.