L53L0X TOF Sensor Introduction
一、introduction
1、Principle
We use a 940nm Vertical-Cavity Surface-Emitting Laser (VCSEL) to emit laser light, which reflects back when it hits an obstacle and is then received by the VL53L0X. The time it takes for the laser to travel in air is measured to obtain the distance. Knowledge about VCSEL.
2、Parameter
- Ultra-compact size: 4.4 x 2.4 x 1.0mm
- Maximum ranging distance: 2m
- The emitted laser is eye-safe and completely invisible.
- Operating voltage: 2.6 to 3.5 V
- Communication interface: IIC, 400KHz, device address 0x52, with the least significant bit being the read/write flag. 0 indicates write, 1 indicates read.
二、HW Connection layout,
I2C lines must have pull-up resistors according to the specification (refer I2C user manual)
三、HW Cover Criterion
Regarding the installation of the cover, there are regulations regarding the AIR GAP and the transparency of the cover for 940nm. ST has provided AN4907 Application note for detailed explanations on this part.
Ideal cover glass should have the following characteristics:
- (1)Plastic or glass material without structural defects
- (2)No surface defects that can cause fingerprint light scattering or stain sensitivity
- (3)Transparency >90% under near-infrared (940nm ± 10nm) and low haze conditions
- (4)Outer coating (anti-fingerprint or anti-reflection coating) that does not reduce fingerprint immunity
- (5)Single material. Using dual materials may alter performance.
The ideal design structure (cover glass on VL53L0X) has the following characteristics:
- Small air gap (<0.5 mm)
- Thin cover glass
- The angle between the cover glass and VL53L0X is less than 2 degrees
- Strict tolerance
四、Calibration Flow
(1)Data init
Call the VL53L0X_DataInit() function once, after the device is powered on. This changes the VL53L0X_State from VL53L0X_STATE_POWERDOWN to VL53L0X_STATE_WAIT_STATICINIT. VL53L0X_State is the initialization state machine, and by checking its value, the current initialization progress can be determined.
(2)Static Init
Call the VL53L0X_StaticInit() function to perform basic device initialization. This changes the VL53L0X_State from VL53L0X_STATE_WAIT_STATICINIT to VL53L0X_STATE_IDLE.
(3)Reference SPADs calibration
Call the VL53L0X_PerformRefSpadManagement() function to calibrate the SPADs. This function outputs the number and type of SPADs, which will be automatically programmed into the VL53L0X’s Flash. The host must also save these two parameters for future parameter initialization. This calibration process does not require a target object or lighting conditions, but placing a highly reflective target object in front of the VL53L0X may cause calibration failure and report a status code of ‘-50’.
(4)Ref (temperature) calibration
Call the VL53L0X_PerformRefCalibration() function to obtain two temperature-related parameters: VHV and phase cal. These two parameters can be used to set the sensitivity of the VL53L0X. It is recommended to recalibrate if the temperature changes by more than 8 degrees. If the temperature remains the same, the calibration data can be loaded and used directly.
(5)Offset calibration
Call the VL53L0X_PerformOffsetCalibration() function. The calibration value will also be automatically saved to the VL53L0X’s Flash after calibration. This value is usually calibrated when the VL53L0X leaves the factory, but it may have a large deviation depending on the user’s environment (such as different temperatures or added glass). It is recommended to use a white target object (88% reflectivity), placed 100mm away in a dark environment for calibration. The distance of the target object can be adjusted according to the user’s environment, but it must be selected in the linear part of the ranging curve because the offset value should be a constant. If it is in the nonlinear region, the offset value is not easy to determine