2021-11-04 11:59 AM
I am using a VL53L1X with the VL53L1X_ULD library.
I have one ToF sensor that I initialize at the default address 0x52 and reset to an address of 0x56. It works at that address (I am planning to add more sensors, but haven't hot there yet.)
When I power down my microcontroller to save power, I send the XXSHUT terminal low.
When I power up again, I send the XSHUT high, at which point the controller doesn't find it at 0x56. It finds a sensor at 0x52, the default, but attempts to reinitialization at that address fail.
I can only restart it if I turn power off completely to the whole sensor.
Is there a way around this? Is there a reset command or some other way to restart?
2021-11-08 01:34 PM
There is a way around it.
Every time you drop XSHUT the sensor is completely off. And when you raise XSHUT it's identical to powering up from Start.
Use this to your advantage.
At boot, drop all the XSHUT lines.
Then, one at a time, bring the XSHUT up and issue the address change command.
If you drop the XSHUT when you drop power, you should be able to re-initialize at address 52.
The sensor doesn't know the difference between XSHUT going low and the power turning off.
'
2021-11-08 02:31 PM
As I said in my original post,
"When I power up again, I send the XSHUT high, at which point the controller doesn't find it at 0x56. It finds a sensor at 0x52, the default, but attempts to reinitialize at that address fail."
I have found that a way to use software to restart my microcontroller, which cycles the power to the sensor Vin as well as the XSHUT. For now, this is the solution that I am using. Slower than I would like, but it works and it is adequate.