2018-03-21 07:37 PM
Description:
We encounter one problem when we port VL53L1X ranging sensors (left/center/right) to our platform STM32F429 controller, the left/right sensors can not be activated via I2C slave address 0x54 and 0x58. (center is 0x52).
Currently, I refer to module board X-NUCLEO-53L1A1 as an example by using IO interrupt to report our MCU
when starting to measure sensor values and however, we find when we enable left/right, we will get returned error -13 naming, VL53L1_ERROR_CONTROL_INTERFACE from fucntion (VL53L1_WaitDeviceBooted().for center sensor, it can be activated by default SA = 0x52; but not working at left and right sensors.Any help for it???
2018-05-01 03:51 PM
When any of the ST Time of Flight sensors power up they all come up at the same address. Clearly this will not work.
The trick is to bring them out of reset one by one and command each to change its I2C address to something else. There is an API for this.
That, unfortunately, is the only way to do it.
Then you can use the 3 sensors by addressing them differently
2018-05-17 01:11 PM
When you check the Nucleo board schematics, you'll see two GPIO expanders that control all three XSHUT lines. You need to turn two devices off and one on, change it's address and do the same for another one. The last one can use the default address.
Look into
STM32CubeExpansion_53L1A1_V1.0.0\Drivers\BSP\X-NUCLEO-53L1A1\X-NUCLEO-53L1A1.c
there is a good explanation.