Skip to main content
RRapi.1
Associate
June 10, 2020
Question

VL6180X stops responding on I2C

  • June 10, 2020
  • 1 reply
  • 1126 views

We are using a VL6180X to set the state of GPIO1 when the detected distance goes outside a range. That part appears to work fine, until for no reason we can determine the VL6180X stops responding to any I2C requests. The only way we have been able to get it to start responding again is to power cycle. Has anyone else had such issues, or have any suggestions? We are running it in continuous range measurement mode, reading the results periodically.

This topic has been closed for replies.

1 reply

John E KVAM
ST Employee
June 10, 2020

I'm seen two issues:

1) the I2C wire length is too long. The I2C bus is not robust. Go to the NXP site (they bought Philips). This site will show you how to 'tune' the bus. (it will be pull-up selection or a few decoupling caps.) It this is your issue, the CLK line will be stuck low. A low level should never last very long.

2) Glitch on the XSHUT line. This line is very sensitive. Perhaps too sensitive. Put a stong pull-up on this line. A small glitch on this line will cause a partial reset. It screw everything up.

RRapi.1
RRapi.1Author
Associate
June 10, 2020

Those are the two issues I found by just googling for answers online, it's good to see confirmation that those are both areas to look at. Currently we have the XSHUT (GPIO0) tied high with a 46.4K Ohm resistor. I am more concerned about the I2C as it is running over wires between two boards in a fairly noisy environment.