2020-06-10 11:12 AM
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.
2020-06-10 11:23 AM
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.
2020-06-10 11:33 AM
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.