5.3.2 Improve accuracy
In order to improve the device accuracy, use the tuning parameter called
VL53LX_TUNINGPARM_PHASECAL_PATCH_POWER. By default this tuning parameter is not applied (value is
set to 0).
ST recommends to set the values of calibration and ranging flows to 2 after static_init.
In this case, the time to perform the reference signal measurement is increased and allows better accuracy.
Setting this parameter to 2 increases the duration to get the first measurement by 240 ms.
5.3.3 Improve latency and max ranging distance
When the target is moving, the VL53L3CX may need several ranges to react, depending on the scene.
A way to improve the latency is to tune the VL53LX_TUNINGPARM_RESET_MERGE_THRESHOLD parameter.
Default value is 15000. It can be lowered to improve latency, but maximum ranging distance will be impacted.
If the user increases the value, the maximum ranging distance can be improved, but latency is impacted.
5.4 Coverglass smudge detection
The crosstalk can be affected by smudge on the coverglass. VL53L3CX embeds a function able to detect smudge
on the fly and apply a new crosstalk correction value.
The user can enable/disable this function by calling VL53LX_SmudgeCorrectionEnable().
The following three options can be set with this function:
• VL53LX_SMUDGE_CORRECTION_NONE to disable the correction
• VL53LX_SMUDGE_CORRECTION_CONTINUOUS to enable a continuous correction
• VL53LX_SMUDGE_CORRECTION_SINGLE to enable a single correction after a start command is
received.
Smudge detection is running at each ranging. If some conditions are met (no object below 80 cm, ambient light
level below a threshold, and crosstalk value above 1kcps), a new crosstalk value is computed.
If the user has set the smudge correction, the crosstalk value will be corrected and the flag
HasXtalkValueChanged is set. This flag is automatically cleared at next range.
5.5 I2C address
The default I2C address of the VL53L3CX is 0x52.
Some applications need to set a different I2C device address. This is the case, for example, when several
VL53L3CX parts share the same I2C bus.
The customer should apply the following procedure:
• The board mounting the VL53L3CX have to be designed carefully. The Xshut and the GPIO1 (interrupt) pins
have to be controlled individually for each VL53L3CX
• The host has to put in HW Standby, setting the Xshut pin low, all the VL53L3CX.
• The host raises the Xshut pin of 1 of the VL53L3CX
• The host calls the function VL53LX_SetDeviceAddress()
• The host repeats the latter three points since all the VL53L3CX addresses are correctly set.
For example, by calling the function: status = VL53LX_SetDeviceAddress(&VL53L3Dev, WantedAddress)
the value of WantedAddress is set as the new I2C address.
UM2778
Coverglass smudge detection
UM2778 - Rev 1
page 13/25