2023-07-09 06:49 AM - last edited on 2023-07-28 07:49 AM by Anne BIGOT
Hello,
I am a committed STM32 addict and currently using the STM32F411 with nine VL53L0X's on a wheel robot project, which is working pretty well. However sometimes due to poll rate and beam angle/distance/speed small (narrow) objects are not seen until almost too late.
So I thought I would try the VL53L5CX which seems to have a great spec and has some really nice features, like sharpness/target order. Which I have not explored as yet as I am still trying to get multiple VL53L5CX's running again after a STM32F411 NRST/program update.
Problem I am having I think is due to the VL53L5CX tiny breakout boards I am using as they only have 6 pins:
3.3v, gnd, scl,sda, int, LPn but no i2c reset pin out.
Basically when my (STM32F411) app starts up it initializes and set new i2c address in the two VL53L5CX's, I then set the 8x8 resolution, ranging speed and Start Ranging, all of this works just fine.
Problem is after the STM32F411 app/code has been updated I can not acquire VL53L5CX (and I have tried many things) as they are still ranging and do not seem to respond to the LPn line been toggled. Hence I can't set there i2c address and re initialize them.
So the solution I have come up with is truly horrible, which is via a STM32F11 port and an PNP transistor I turn power to the VL53L5CX off and on and then do the i2c address change/setup as normal. Effectively power cycling them every code update and NRST I use during debugging
Questions are:
Am I shorting the life of the :VL53L5CX by power cycling them?
Is there something in the STM32duino VL53L5CX library/api I have missed with respect to reconnecting with the VL53L5CX after reprogramming the STM32F411 and having only scl,sda, LPn to control the VL53L5CX?
Sorry about long post but complex issues.
Many thanks in advance imk
2023-07-31 12:50 AM
Hello,
The extra stress on the device by power cycling should be minimal.
RAM is written to all the time so additional power cycles will not degrade that portion.
The EVK_I2C_RESET (pin 😎 which is not really a reset but clears the I2C buffers may allow reconnection. The real issue is the SW on the host and the FW on the module are out of sync and a power cycle is probably best.
Regards
Anne