Skip to main content
Yadav
Associate III
June 27, 2020
Question

vl53l0x stopped working suddenly !

  • June 27, 2020
  • 2 replies
  • 1957 views

vl53l0x was working good at start. I have connected i2c thermal camera in parallel with vl53lox sensor.. It was working good for past 3days.and then suddenly sometimes it stops updating the reading. When i restart it, it was working normal. Suddenly it today it stopped working permanently. it says failed to boot. I have tried single sensor also but same error is coming. Can you suggest me what would be the issue?

This topic has been closed for replies.

2 replies

John E KVAM
ST Employee
June 27, 2020

Basically the I2C is not a very robust bus. It's not ST's fault, the bus was designed by Philips long ago and they never expected it to handle has much stuff as it does.

Go to the NXP site and search for how to tune the I2C bus. (NXP bought Philips)

There is a combination of pull-ups and decoupling caps that have to be tuned to the number of devices you have on the bus, your line lengths, and your line thicknesses.

Don't give up - you can adjust the bus. But a good understanding of Electrical Engineering certainly helps.

And you might not even need a soldering iron. Your MCU will have some settings you can play with.

Good luck.

  • john

Yadav
YadavAuthor
Associate III
June 28, 2020

It was working good for 3days then suddenly it has stopped the working.. then how it could be i2c bus issue?

John E KVAM
ST Employee
June 28, 2020

Each time the CLK goes low, a bit is clocked. But what happens if the bus is heading low, gets a little bit of noise, and just as the bit is clocking, the CLK line goes up just a touch and then back down? You clock an extra bit, and screw up the communications. And yes, on your lab bench you could go for days before you come across a static charge just enough to trigger an error. And on an I2C bus an extra bit confuses all the devices, leaving you in a condition I call "bus stuck low".

Only way to clear this condition is to dump a lot of '0' bits onto the bus.

So by getting your pull-ups and caps to work according to the instructions on the NXP site is a must.

By default most I2C interfaces are configured for one device, but when you added the second device, you have to change your values to get a reliable configurations.

https://www.nxp.com/docs/en/user-guide/UM10204.pdf

is a fair reference - have a look at section 7

It shows how to configure you pull-ups.