VL53L0X intermittent failure: no IR emission, re-init fails, only VL53L0X power-cycle recovers
Hello everyone,
I am using a VL53L0X and have encountered an intermittent failure. I would like help identifying the possible cause and the next debugging steps.
Hardware setup:
-
MCU: Cortex-M0, model MM32SPIN06PF
-
I2C: GPIO bit-banged I2C in open-drain mode, with 4.7 kΩ pull-ups.
-
An ENS210 temperature/humidity sensor is also on the same I2C bus. ENS210 address: 0x43.
-
VL53L0X 7-bit address: 0x29; 8-bit address: 0x52.
-
The VL53L0X XSHUT pin is only pulled up to 3.3 V through a 10 kΩ resistor. It is not controlled by an MCU GPIO.
-
VL53L0X supply voltage: 3.3 V.
-
VL53L0X API version: 1.0.4.
Failure symptoms:
-
The VL53L0X works normally at first, but occasionally malfunctions.
-
When the failure occurs, no IR emission can be seen from the VL53L0X using a phone camera. Can IR normally be seen with a phone camera? ____
-
Pressing a hardware button to re-initialize the VL53L0X does not recover it.
-
Only after power-cycling the VL53L0X alone and then pressing the button to re-initialize it does the VL53L0X return to normal operation.
My main questions:
-
Is it possible that, because XSHUT is not controlled by the MCU, the software cannot perform a true hardware reset of the VL53L0X?
-
Could sharing the I2C bus with the ENS210 cause bus lock-up or state conflicts?
-
What logs, waveforms, or register data should I capture to locate the root cause?
Thank you. Any help would be appreciated.
