cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L1X return 0 on every register rerad

MBaum.7
Associate III

I communicate with a VL53L1X-SATEL over I2C from a PSoC 5LP as I2C-master. The sensor as I2C-slave acknowledes commands as expected, but each register I try to read returns 0x00. I tried a for loop to read every register from 0 counting up, but the sensor always return 0x00.

What could be a reason for such a behaviour?

Please see the scope view of a read sequence to register 0x83.

MBaum7_1-1700746673324.png

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Zhiyuan.Han
ST Employee

The register should be 16 bits long, from your capture seems you are using 8-bits long setting. 

ZhiyuanHan_1-1700793812706.png

 

 


In order 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.

View solution in original post

6 REPLIES 6
TDK
Guru

The green trace (SDA) should not be tristated. Something is preventing those signals from reaching GND/VDD. Probably multiple things are trying to drive the pins.

Are pins in OD mode?

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

The SDA outputs driver of the VL53L1X-SATEL is not very strong...

But this was a try if stronger pullups. Below is the same sequence with 3.15 kOhm pullups (and open-drain outputs on SDA and SCL).The problem is still the same, also with 10 kOhm pullups. 

MBaum7_0-1700753600400.png

 

TDK
Guru

Still doesn't look right. There are slow rising edges on those signals either. The falling edge and rising edges look identical. Shouldn't be seeing overshoot on the rising edge. Something is misconfigured, likely the pins are not in OD mode.

Could prove it by putting an inline resistor on SDA on the sensor-side of the pullup and measuring both sides of it during the exchange.

Should look more like this. Not necessarily exactly, but you can see the asymmetry between rising and falling edges which is present in signals driven with OD pins and a pullup.

TDK_0-1700754717776.png

 

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

> The SDA outputs driver of the VL53L1X-SATEL is not very strong...

Datasheet of the VL53L1X suggests an 800 Ohm pullup in one example. Driver strength shouldn't be the issue.

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

The register should be 16 bits long, from your capture seems you are using 8-bits long setting. 

ZhiyuanHan_1-1700793812706.png

 

 


In order 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.
MBaum.7
Associate III

Thats really a good point... I will try to extend the register address to 16 bits. Thanks!