Uploaded by Imad mohannad

vl6180

advertisement
VL6180
Proximity sensing module
Datasheet
- production data
Applications
 Laser Assisted Auto Focus
 Smartphones/portable touchscreen devices
 Tablet/laptop/gaming devices
 Domestic appliances/industrial devices
Description
Features
 Two-in-one smart optical module
– VCSEL light source
– Proximity sensor
 Fast, accurate distance ranging
– Measures absolute range from 0 to 62 cm
max (depending on conditions)
– Independent of object reflectance
– Ambient light rejection
– Cross-talk compensation for cover glass
 Gesture recognition
– Distance and signal level can be used by
host system to implement gesture
recognition
– Demo systems (implemented on Android
smartphone platform) available.
 Easy integration
– Single reflowable component
– No additional optics
– Single power supply
– I2C interface for device control and data
– Provided with a documented C portable
API (Application Programming Interface)
 Two programmable GPIO
– Window and thresholding functions for
ranging
July 2021
This is information on a product in full production.
The VL6180 is the latest product based on ST’s
patented FlightSense™ technology. This is a
ground-breaking technology allowing absolute
distance to be measured independent of target
reflectance. Instead of estimating the distance by
measuring the amount of light reflected back from
the object (which is significantly influenced by
color and surface), the VL6180 precisely
measures the time the light takes to travel to the
nearest object and reflect back to the sensor
(Time-of-Flight). 
Combining an IR emitter and a range sensor in a
two-in-one ready-to-use reflowable package, the
VL6180 is easy to integrate and saves the endproduct maker long and costly optical and
mechanical design optimizations. 
The module is designed for low power operation.
Ranging measurements can be automatically
performed at user defined intervals. Multiple
threshold and interrupt schemes are supported to
minimize host operations.
Host control and result reading is performed using
an I2C interface. Optional additional functions,
such as measurement ready and threshold
interrupts, are provided by two programmable
GPIO pins.
A complete API is also associated with the device
which consists of a set of C functions controlling
the VL6180 to enable fast development of enduser applications. This API is structured in a way
that it can be compiled on any kind of platform
through a well isolated platform layer (mainly for
low level I2C access).
DocID024986 Rev 14
1/73
www.st.com
Contents
VL6180
Contents
1
2
2/73
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1
Technical specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2
System block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3
Device pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4
Typical application schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5
Recommended solder pad dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6
Recommended reflow profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1
Ranging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2
System state diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3
Timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5
Operating modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.1
Polling mode - single shot measurement . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.2
Interrupt mode - continuous measurement . . . . . . . . . . . . . . . . . . . . . . 17
2.5.3
Asynchronous mode - single shot measurement . . . . . . . . . . . . . . . . . . 18
2.6
Range timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7
Range error codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8
Range checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8.1
Early convergence estimate (ECE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8.2
Range ignore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8.3
Signal-to-noise ratio (SNR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.9
Manual/autoVHV calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.10
History buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.11
Wrap Around Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.12
Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.13
Maximum ranging distance (Dmax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.14
Current consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.14.1
Ranging current consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.14.2
Current consumption calculator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.14.3
Current distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
DocID024986 Rev 14
VL6180
Contents
2.15
3
Other system considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.15.1
Part-to-part range offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.15.2
Cross-talk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.15.3
Offset calibration procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.15.4
Cross-talk calibration procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.15.5
Cross-talk limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.15.6
Cross-talk vs air gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Ranging specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1
Proximity ranging (0 to 100mm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1
3.2
4
6
Extended range (>100mm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1
Extended range conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2
Max range vs. ambient light level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
I2C control interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1
5
Max range vs. ambient light level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
I2C interface - timing characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Electrical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1
Absolute maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2
Normal operating conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3
Electrical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Device registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.1
Register encoding formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2
Register descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2.1
IDENTIFICATION__MODEL_ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2.2
IDENTIFICATION__MODEL_REV_MAJOR . . . . . . . . . . . . . . . . . . . . . 42
6.2.3
IDENTIFICATION__MODEL_REV_MINOR . . . . . . . . . . . . . . . . . . . . . 42
6.2.4
IDENTIFICATION__MODULE_REV_MAJOR . . . . . . . . . . . . . . . . . . . . 43
6.2.5
IDENTIFICATION__MODULE_REV_MINOR . . . . . . . . . . . . . . . . . . . . 43
6.2.6
IDENTIFICATION__DATE_HI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.7
IDENTIFICATION__DATE_LO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2.8
IDENTIFICATION__TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2.9
SYSTEM__MODE_GPIO0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2.10
SYSTEM__MODE_GPIO1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
DocID024986 Rev 14
3/73
5
Contents
4/73
VL6180
6.2.11
SYSTEM__HISTORY_CTRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2.12
SYSTEM__INTERRUPT_CONFIG_GPIO . . . . . . . . . . . . . . . . . . . . . . 48
6.2.13
SYSTEM__INTERRUPT_CLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.2.14
SYSTEM__FRESH_OUT_OF_RESET . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.2.15
SYSTEM__GROUPED_PARAMETER_HOLD . . . . . . . . . . . . . . . . . . . 49
6.2.16
SYSRANGE__START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2.17
SYSRANGE__THRESH_HIGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.2.18
SYSRANGE__THRESH_LOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.2.19
SYSRANGE__INTERMEASUREMENT_PERIOD . . . . . . . . . . . . . . . . 51
6.2.20
SYSRANGE__MAX_CONVERGENCE_TIME . . . . . . . . . . . . . . . . . . . 51
6.2.21
SYSRANGE__CROSSTALK_COMPENSATION_RATE . . . . . . . . . . . . 52
6.2.22
SYSRANGE__CROSSTALK_VALID_HEIGHT . . . . . . . . . . . . . . . . . . . 52
6.2.23
SYSRANGE__EARLY_CONVERGENCE_ESTIMATE . . . . . . . . . . . . . 52
6.2.24
SYSRANGE__PART_TO_PART_RANGE_OFFSET . . . . . . . . . . . . . . 53
6.2.25
SYSRANGE__RANGE_IGNORE_VALID_HEIGHT . . . . . . . . . . . . . . . 53
6.2.26
SYSRANGE__RANGE_IGNORE_THRESHOLD . . . . . . . . . . . . . . . . . 53
6.2.27
SYSRANGE__MAX_AMBIENT_LEVEL_MULT . . . . . . . . . . . . . . . . . . 54
6.2.28
SYSRANGE__RANGE_CHECK_ENABLES . . . . . . . . . . . . . . . . . . . . . 54
6.2.29
SYSRANGE__VHV_RECALIBRATE . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2.30
SYSRANGE__VHV_REPEAT_RATE . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2.31
RESULT__RANGE_STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2.32
RESULT__INTERRUPT_STATUS_GPIO . . . . . . . . . . . . . . . . . . . . . . . 57
6.2.33
RESULT__HISTORY_BUFFER_x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.2.34
RESULT__RANGE_VAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2.35
RESULT__RANGE_RAW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2.36
RESULT__RANGE_RETURN_RATE . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.2.37
RESULT__RANGE_REFERENCE_RATE . . . . . . . . . . . . . . . . . . . . . . . 60
6.2.38
RESULT__RANGE_RETURN_SIGNAL_COUNT . . . . . . . . . . . . . . . . . 60
6.2.39
RESULT__RANGE_REFERENCE_SIGNAL_COUNT . . . . . . . . . . . . . 61
6.2.40
RESULT__RANGE_RETURN_AMB_COUNT . . . . . . . . . . . . . . . . . . . . 61
6.2.41
RESULT__RANGE_REFERENCE_AMB_COUNT . . . . . . . . . . . . . . . . 61
6.2.42
RESULT__RANGE_RETURN_CONV_TIME . . . . . . . . . . . . . . . . . . . . 62
6.2.43
RESULT__RANGE_REFERENCE_CONV_TIME . . . . . . . . . . . . . . . . . 62
6.2.44
READOUT__AVERAGING_SAMPLE_PERIOD . . . . . . . . . . . . . . . . . . 62
6.2.45
FIRMWARE__BOOTUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.2.46
I2C_SLAVE__DEVICE_ADDRESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
DocID024986 Rev 14
VL6180
Contents
7
Outline drawing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8
Laser safety considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.1
9
Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Ordering information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.1
Traceability and identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.2
Part marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.3
Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
9.3.1
Package labeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
9.4
Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.5
ROHS Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
10
ECOPACK®
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
11
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
DocID024986 Rev 14
5/73
5
List of tables
VL6180
List of tables
Table 1.
Table 2.
Table 3.
Table 4.
Table 5.
Table 6.
Table 7.
Table 8.
Table 9.
Table 10.
Table 11.
Table 12.
Table 13.
Table 14.
Table 15.
Table 16.
Table 17.
Table 18.
Table 19.
Table 20.
Table 21.
Table 22.
Table 23.
Table 24.
Table 25.
Table 26.
Table 27.
Table 28.
6/73
Technical specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
VL6180 pin numbers and signal descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Recommended reflow profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Power-up timing constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
VL6180 operating modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Continuous mode limits (10 Hz operation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Typical range convergence time (ms). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Range error codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
History buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Typical current consumption in different operating states . . . . . . . . . . . . . . . . . . . . . . . . . 25
Breakdown of current consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Average current consumption on AVDD and AVDD_VCSEL . . . . . . . . . . . . . . . . . . . . . . . 27
Ranging specification 0 to 100mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Worst case max range vs. ambient 0 to 100mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Worst case max range vs. ambient >100mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Range limits for a 400 mm target @ ambient rate 2.1Mcps . . . . . . . . . . . . . . . . . . . . . . . . 33
Worst case achievable light levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
I2C interface - timing characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Absolute maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Normal operating conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Digital I/O electrical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Register groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
32-bit register example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Register formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Register summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Delivery format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Storage conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
DocID024986 Rev 14
VL6180
List of figures
List of figures
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
Figure 6.
Figure 7.
Figure 8.
Figure 9.
Figure 10.
Figure 11.
Figure 12.
Figure 13.
Figure 14.
Figure 15.
Figure 16.
Figure 17.
Figure 18.
Figure 19.
Figure 20.
Figure 21.
Figure 22.
Figure 23.
Figure 24.
Figure 25.
Figure 26.
Figure 27.
Figure 28.
Figure 29.
Figure 30.
Figure 31.
Figure 32.
Figure 33.
Figure 34.
VL6180 block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
VL6180 pinout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
VL6180 schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Recommended solder pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Recommended reflow profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Ranging pipe architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
System state diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Power-up timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Simple range routine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Polling mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Interrupt mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Asynchronous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Total range execution time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
ECE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Wrap around . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Typical ranging current consumption (10 Hz sampling rate). . . . . . . . . . . . . . . . . . . . . . . . 26
VCSEL pulse duty cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Part-to-part range offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Cross-talk compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Cross-talk vs air gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Typical ranging performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Serial interface data transfer protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
I2C device address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Single location, single write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Single location, single read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Multiple location write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Multiple location read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
I2
C timing characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Outline drawing - module - VL6180V1NR/1 - (page 1/2) . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Outline drawing - module - VL6180V1NR/1 - (page 2/2) . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Class 1 laser product label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Part marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Tape and reel packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Package labeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
DocID024986 Rev 14
7/73
7
Overview
1
VL6180
Overview
This datasheet is applicable to the final VL6180 ROM code revision.
1.1
Technical specification
Table 1. Technical specification
Feature
Detail
Package
Optical LGA12
Size
4.8 x 2.8 x 1.0 mm
Ranging
0 to 62(1) cm maximum
Functional operating voltage
2.6 to 3.0 V
Typical power consumption
Hardware standby (GPIO0 = 0): < 1 uA(2)
Software standby: < 1uA(2)
Ranging: 1.7 mA (typical average)(3)
Functional operating temperature
-20 to 70°C
IR emitter
850 nm
I2C
400 kHz serial bus
Address: 0x29 (7-bit)
1. Maximum distance dependent on target reflectance and external conditions (ambient light level,
temperature, voltage).
2. GPIO0, GPIO1, SCL and SDA are pulled up to AVDD (2.8V)
3. Assumes 10 Hz sampling rate, 17% reflective target at 50 mm
1.2
System block diagram
Figure 1. VL6180 block diagram
9/PRGXOH
9/VLOLFRQ
*3,2
*3,2
6'$
6&/
0LFURFRQWUROOHU
190
5$0
,5HPLWWHUGULYHU
,5,5
,5HPLWWHU
8/73
$9''
5DQJLQJ
DocID024986 Rev 14
$9''B9&6(/
*1'
$966B9&6(/
VL6180
1.3
Overview
Device pinout
Figure 2 shows the pinout of the VL6180.
Figure 2. VL6180 pinout
9/
*3,2
*1'
1&
1&
1&
$9''
*3,2
$966B9&6(/
6&/
$9''B9&6(/
6'$
1&
Table 2. VL6180 pin numbers and signal descriptions
Pin number
Signal name
Signal type
Signal description
1
GPIO1
Digital I/O
Interrupt output. Open-drain. If used,
it should be pulled high with 47 k
resistor, otherwise left unconnected.
2
NC
No connect
3
NC
No connect
4
GPIO0/CE
Digital I/O
5
SCL
Digital input
I2C serial clock
6
SDA
Digital I/O
I2C serial data
7
NC
8
AVDD_VCSEL
Supply
VCSEL power supply. 2.6 to 3.0 V
9
AVSS_VCSEL
Ground
VCSEL ground
10
AVDD
Supply
Digital/analog power supply. 2.6 to
3.0 V
11
NC
12
GND
Power-up default is chip enable
(CE). It should be pulled high with a
47 kresistor.
No connect
No connect
Ground
DocID024986 Rev 14
Digital/analog ground
9/73
69
Overview
1.4
VL6180
Typical application schematic
Figure 3 shows the typical application schematic of the VL6180.
Figure 3. VL6180 schematic
9RU9
9
9/
*3,2 *3,2
1&
1&
*3,2 *3,2
$966B9&6(/
6&/ 6&/
$9''B9&6(/
6'$ 6'$
1&
*1'
1&
$9''
Q)
—)
1. Open drain. If pin is used, then 47krecommended, otherwise leave floating
2. Open drain. 47krecommended
3. Open drain. Pull up resistors typically fitted once per I2C bus at host
Note:
Capacitors on AVDD and AVDD_VCSEL should be placed as close as possible to the
supply pads.
1.5
Recommended solder pad dimensions
Figure 4. Recommended solder pattern
3DGSLWFKPP
PP
PP
PP
10/73
DocID024986 Rev 14
6DPHDVGHYLFHSDGGLPHQVLRQV
VL6180
1.6
Overview
Recommended reflow profile
The recommend reflow profile is shown in Figure 5 and Table 3.
Figure 5. Recommended reflow profile
Table 3. Recommended reflow profile
Profile
Note:
Ramp to strike
Temperature gradient in preheat
(T= 70 - 180C):
0.9 +/- 0.1C/s
Temperature gradient
(T= 200 - 225C):
1.1 - 3.0C/s
Peak temperature in reflow
237C - 245C
Time above 220C
50 +/- 10 seconds
Temperature gradient in cooling
-1 to -4 C/s (-6C/s maximum)
Time from 50 to 220C
160 to 220 seconds
As the VL6180 package is not sealed, only a dry re-flow process should be used (such as
convection re-flow). Vapor phase re-flow is not suitable for this type of optical component.
The VL6180 is an optical component and as such, it should be treated carefully. This would
typically include using a ‘no-wash’ assembly process.
DocID024986 Rev 14
11/73
69
Functional description
2
VL6180
Functional description
It is assumed in the rest of the document that the host application is controlling the VL6180
device through it’s C API.
For a more detailed explanation of the API functions please refer to the documentation that
is supplied with the API.
The API is available on request from ST.
2.1
Ranging
The VL6180 uses a simple pipe architecture to achieve range measurement.
Figure 6. Ranging pipe architecture
2.2
System state diagram
Figure 7 describes the main operating states of the VL6180. Hardware standby is the reset
state (GPIO0=0)(a). The device is held in reset until GPIO0 is de-asserted. Note that the
device will not respond to I2C communication in this mode. When GPIO0=1, the device
enters software standby after the internal MCU boot sequence has completed.
a. Use of GPIO0 is optional
12/73
DocID024986 Rev 14
VL6180
Functional description
From a customer application point of view, the following sequence must be followed at the
power-up stage

Set GPIO0 to 0

Set GPIO0 to 1

Wait for a minimum of 400us

Call VL6180x_WaitDeviceBooted()(b) API function (or wait 1ms to ensure device is
ready).
Then, at this stage, it is possible to configure the device and start single-shot or continuous
ranging operation through API functions calls.
Figure 7. System state diagram
3RZHU2II
$9''2))
$9''21
*3,2 $9''21
*3,2 +DUGZDUH
VWDQGE\
*3,2 $9''2))
*3,2 0&8ERRW
6RIWZDUH
VWDQGE\
0RGH
FRQWLQXRXV
5DQJHBVWDUW
GRQH
5DQJH
PHDVXUHPHQW
VWDUW
VWRS
DXWR
DXWR
&RQWLQXRXV
PRGH
'HYLFHLVSODFHGLQDORZSRZHUVWDWHEHWZHHQPHDVXUHPHQWV
b. Warning: The VL6180x_WaitDeviceBooted() function expects the device to be fresh out of reset. Calling this
function when the device is not fresh out of rest will result in an infinite loop.
DocID024986 Rev 14
13/73
69
Functional description
2.3
VL6180
Timing diagram
Figure 8 and Table 4.show the VL6180 power-up timing constraints.
Note:

AVDD_VCSEL must be applied before or at the same time as AVDD.

GPIO0 defaults to an active low shutdown input. When GPIO0 = 0, the device is in
hardware standby. If GPIO0 is not used it should be connected to AVDD.

The internal microprocessor (MCU) boot sequence commences when AVDD is up and
GPIO0 is high whichever is the later.

GPIO1 power-up default is output low. It is tri-stated during the MCU boot sequence.
In hardware standby, GPIO1 is output low and will sink current through any pull-up resistor.
This leakage can be minimized by increasing the value of the pull-up resistor.

After the MCU boot sequence the device enters software standby. Host initialization
can commence immediately after entering software standby.
Figure 8. Power-up timing
'W/KϭƚƌŝͲƐƚĂƚĞĚ͕ŽŶůLJŚŝŐŚŝĨƉƵůůͲƵƉĨŝƚƚĞĚ
Table 4. Power-up timing constraints
Symbol
14/73
Parameter
Min
Max
Unit
-
0
ms
100
-
ns
t1
AVDD_VCSEL power applied after AVDD
t2
Minimum reset on GPIO0
t3
GPIO1 output low after hardware standby
-
400
s
t4
MCU boot
-
1
ms
t5
Software standby to host initialization
-
0
ms
DocID024986 Rev 14
VL6180
2.4
Functional description
Software
Figure 9 shows a simple start-up routine from initialization to completing a range
measurement (ignoring offset and cross-talk calibration).The polling function is a very
simple function, but would not be used in the final application as it is a blocking function.
Figure 9. Simple range routine
3RZHUXS
—VGHOD\
9/[B
:DLW'HYLFH%RRWHGRU
PVGHOD\
6RIWZDUHVWDQGE\
9/[B,QLW'DWD
9/[B3UHSDUH
9/[B5DQJH3ROO
0HDVXUHPHQW
DocID024986 Rev 14
15/73
69
Functional description
2.5
VL6180
Operating modes
The VL6180 device can operate in 2 different range modes:
Single-shot measurement or Continuous measurement.
From these 2 device modes, the VL6180 API enables 3 different typical operating modes:
Polling, interrupt or asynchronous.
Note:
Wrap Around Filter is not available in Continuous measurement mode.
Table 5. VL6180 operating modes
API
operating
mode
Polling
Interrupt
Asynchro
nous
2.5.1
Description
API functions
VL6180
mode
Comments
Host requests single
shot measurement
and waits for the
result
VL6180x_RangePollMeasurement
Single shot
Recommended for first
API porting or debug
Ranging results are
retrieved from
interrupts
VL6180x_RangeSetInterMeasPeriod
VL6180x_SetupGPIO1
VL6180x_RangeConfigInterrupt
(VL6180x_RangeSetThreshold)
Continuous
VL6180x_RangeStartContinuousMode
VL6180x_RangeGetMeasurement
VL6180x_ClearAllInterrupt
Recommended for User
Detection applications
where CPU is
interrupted by VL6180
so can be asleep when
no target is detected
(power saving)
VL6180x_RangeStartSingleShot
VL6180x_RangeGetMeasurement
IfReady
Recommended for AFAssist applications,
Android OS-based
system where CPU is
synchronized by
EOF/SOF from camera
or by a timer so that top
application controls
measurement periods
Host requests a
single shot
measurement and
regularly checks to
see if result is ready
or not
Single shot
Polling mode - single shot measurement
Host calls a blocking API function that requests a single shot measurement and waits for the
result. CPU is blocked during ranging.
16/73
DocID024986 Rev 14
VL6180
Functional description
Figure 10. Polling mode
Wh
s>ϲϭϴϬ
/ŶŝƚĂƚĂ;Ϳ͕WƌĞƉĂƌĞ;Ϳ
ZĂŶŐŝŶŐ
ZĂŶŐĞWŽůůDĞĂƐƵƌĞŵĞŶƚ;Ϳ
2.5.2
Interrupt mode - continuous measurement
Host programs the device in continuous mode and ranging results are retrieved from
interrupts.
Figure 11. Interrupt mode
Wh
s>ϲϭϴϬ
/ŶŝƚĂƚĂ;Ϳ͕WƌĞƉĂƌĞ;Ϳ
ZĂŶŐĞ^Ğƚ/ŶƚĞƌDĞĂƐWĞƌŝŽĚ;Ϳ
^ĞƚƵƉ'W/Kϭ;Ϳ
ZĂŶŐĞŽŶĨŝŐ/ŶƚĞƌƌƵƉƚ;Ϳ
ZĂŶŐĞ^ƚĂƌƚŽŶƚŝŶƵŽƵƐDŽĚĞ;Ϳ
ZĂŶŐŝŶŐ
WhĐĂŶďĞŝĚůĞŽƌĚŽŝŶŐ
ŽƚŚĞƌƚĂƐŬƐǁŚŝůĞǁĂŝƚŝŶŐ
ŽŶs>ϲϭϴϬŝŶƚĞƌƌƵƉƚ
'W/Kϭ/Ed
ZĂŶŐĞ'ĞƚDĞĂƐƵƌĞŵĞŶƚ;Ϳ
DocID024986 Rev 14
17/73
69
Functional description
VL6180
VL6180x_RangeConfigInterrupt()
The VL6180 can be configured to generate a range interrupt flag under any of the following
conditions:

New sample ready

Level low (range value < low threshold)

Level high (range value > high threshold)

Out of window (range value < low threshold) OR (range value > high threshold)
In new sample ready mode, an interrupt flag will be raised at the end of every measurement
irrespective of whether the measurement is valid or if an error has occurred. This mode is
particularly useful during development and debug. 
In level interrupt mode the system will raise an interrupt flag if either a low or high
programmable threshold has been crossed. 
Out of window interrupt mode activates both high and low level thresholds allowing a
window of operation to be specified.
Range interrupt modes are selected via VL6180x_RangeConfigInterrupt() with
VL6180x_RangeSetThresholds() used to set thresholds. Use
VL6180x_RangeGetInterruptStatus() to return the ranging interrupt status.
Note:
In level or window interrupt modes range errors will only trigger an interrupt if the logical
conditions described above are met.
Continuous mode limits
To take account of oscillator tolerances and internal processing overheads it is necessary to
place the following constraints on continuous mode operations. The following equations
define the minimum inter-measurement period to ensure correct operation:
Continuous range:
VL6180x_RangeSetMaxConvergenceTime() + 5  
VL6180x_RangeSetInterMeasPeriod() * 0.9
Table 6. gives an example how to apply these limits in continuous mode operating at a
sampling rate of 10 Hz.
Table 6. Continuous mode limits (10 Hz operation)
Parameter
2.5.3
Period (ms)
VL6180x_RangeSetMaxConvergenceTime()
30
Total RANGE EXECUTION TIME
35
Asynchronous mode - single shot measurement
Host requests a single shot measurement and can either check regularly to see if result is
ready or wait for an interrupt then call RangeGetMeasurementIfReady().
18/73
DocID024986 Rev 14
VL6180
Functional description
Figure 12. Asynchronous mode
Wh
s>ϲϭϴϬ
/ŶŝƚĂƚĂ;Ϳ͕WƌĞƉĂƌĞ;Ϳ
ZĂŶŐĞ^ƚĂƌƚ^ŝŶŐůĞ^ŚŽƚ;Ϳ
WhŵƵƐƚƌĞŐƵůĂƌůLJĐĂůů
ƚŚĞ
ZĂŶŐĞ'ĞƚDĞĂƐƵƌĞŵĞŶƚ/Ĩ
ZĞĂĚLJĨƵŶĐƚŝŽŶƚŽĐŚĞĐŬ
ĨŽƌƌĂŶŐĞŵĞĂƐƵƌĞŵĞŶƚ
z^
2.6
ZĂŶŐĞ'ĞƚDĞĂƐƵƌĞŵĞ
Ŷƚ/ĨZĞĂĚLJ;Ϳ
ZĂŶŐŝŶŐ
EK
ZĂŶŐĞĂŶĚ
ƐƚĂƚƵƐĚĂƚĂ
Range timing
Figure 13 gives a breakdown of total execution time for a single range measurement.

The pre-calibration phase is fixed (3.2 ms).

The range convergence time is variable and depends on target distance/reflectance
(see Table 7).

The recommended readout averaging period is 4.3 ms. Readout averaging helps to
reduce measurement noise. The recommended setting for
READOUT__AVERAGING_SAMPLE_PERIOD{0x10A} is 48(c) but is programmable in
the range 0-255. Note however that lower settings will result in increased noise.
Register READOUT__AVERAGING_SAMPLE_PERIOD{0x10A} is not programmable via the
API.
Note:
When a target is detected the API returns the actual range convergence time. The
convergence time returned by the API does not include the readout average. Range
convergence and readout averaging must be completed within the specified max
convergence time.
VL6180x_RangeSetMaxConvergenceTime() - sets maximum time to run measurement in
all ranging modes. Range = 1 - 63 ms; measurement aborted when limit reached. Effective
max convergence time depends on the actual convergence time plus readout averaging
sample period setting.
c.
Default readout averaging period is calculated as follows: 1300 µs + (48 x 64.5 µs) = 4.3 ms
DocID024986 Rev 14
19/73
69
Functional description
VL6180
Figure 13. Total range execution time
WƌĞͲĐĂů
ZĞĂĚŽƵƚ
ĂǀĞƌĂŐŝŶŐ
ZĂŶŐĞĐŽŶǀĞƌŐĞŶĐĞ
ŽŶǀĞƌŐĞŶĐĞƚŝŵĞ
; ǀĂƌŝĂďůĞͿ
ϰ͘ ϯŵƐ
Table 7. Typical range convergence time (ms)
Target reflectance
Range (mm)
2.7
3%
5%
17%
88%
10
0.43
0.33
0.18
0.18
20
0.94
0.73
0.28
0.18
30
1.89
1.40
0.51
0.18
40
3.07
2.25
0.81
0.18
50
4.35
3.24
1.18
0.24
60
5.70
4.22
1.60
0.32
70
7.07
5.35
2.07
0.49
80
8.41
6.45
2.58
0.50
90
9.58
7.56
3.14
0.61
100
10.73
8.65
3.69
0.73
Range error codes
Before using a measurement returned with a range API function, the application must first
check that the function call has succeeded (returned 0) and then check the
Range.errorStatus for possible error codes.
Table 8 gives a summary of the error codes. Calling VL6180x_RangeGetStatusErrString()
will also return the error code/description.
Table 8. Range error codes
Bits [7:4]
0
Description
No error
Valid measurement
System error
System error detected (can only happen on
power on). No measurement possible.
6
Early convergence estimate
ECE check failed
7
Max convergence
System did not converge before the specified
max. convergence time limit
8
Range ignore
Ignore threshold check failed
1-5
20/73
Error code
DocID024986 Rev 14
VL6180
Functional description
Table 8. Range error codes (continued)
Bits [7:4]
9-10
Description
Not used
-
Signal to Noise Ratio
Ambient conditions too high. Measurement not
valid
Range underflow
Range value < 0 
If the target is very close (0-10mm) and the offset
is not correctly calibrated it could lead to a small
negative value
Range overflow
Range value out of range. This occurs when the
target is detected by the device but is placed at a
high distance resulting in internal variable
overflow.
Proximity ranging, target > 200mm (scaling = 1)
Extended ranging, target > 550mm (scaling = 3)
16
Ranging_Filtered
Distance filtered by Wrap Around Filter (WAF).
Occurs when a high reflectance target is
detected between 600mm to 1.2m
17
Not used
-
18
Data_Not_Ready
Error returned by
VL6180x_RangeGetMeasurementIfReady()
when ranging data is not ready
11
12/14
13/15
2.8
Error code
Range checks
Error codes 6, 8 & 11 in Table 8 are configurable by the user (SNR, error 11, has not yet
been integrated into the API).
2.8.1
Early convergence estimate (ECE)
Note:
Early convergence estimate (ECE) is not used, by default, in extended ranging mode.
Early convergence estimate (ECE) is a programmable feature designed to minimize power
consumption when there is no target in the field-of-view (FOV).
The system is said to have ‘converged’ (i.e. range acquired), when the convergence
threshold(d) is reached before the max. convergence time limit (see Figure 14). This ratio
specifies the minimum return signal rate required for convergence. If there is no target in the
FOV, the system will continue to operate until the max. convergence time limit is reached
before switching off thereby consuming power. With ECE enabled, the system estimates the
return signal rate 0.5 ms after the start of every measurement. If it is below the ECE
threshold, the measurement is aborted and an ECE error is flagged.
d. For proximity ranging, the convergence threshold is set to 10240. The convergence threshold register is not
accessible by the user.
DocID024986 Rev 14
21/73
69
Functional description
VL6180
Figure 14. ECE
ECE is enabled by setting VL6180x_RangeSetEceState() and configured with
VL6180x_RangeSetEceFactor(). This allows the user to change the ECE threshold from
the default of 15% below minimum convergence rate. As shown by the example below.
85%  0.5  10240
ECE threshold = -------------------------------------------------------------------------------Max convergence time (in ms)
If the max convergence time is set to 30 ms (using
VL6180x_RangeSetMaxConvergenceTime()), then the ECE threshold is 196. That is, if
the return count is less than 196 after 0.5 ms, the measurement will be aborted.
Note:
The optimum value for the ECE threshold should be determined in the final application.
2.8.2
Range ignore
In a system with cover glass, the return signal from the glass (cross-talk) may be sufficient
to cause the system to converge and return a valid range measurement even when there is
no target present. The range ignore feature is designed to ensure that the system does not
range on the glass. (Cross-talk is described in more detail in Section 2.15.2).
The ignore threshold is enabled with VL6180x_RangeIgnoreSetEnable(). If enabled, the
ignore threshold and valid height must be specified, this is set with
VL6180x_RangeIgnoreConfigure().
A range ignore error will be flagged if the return signal rate is less than the ignore threshold.
Note:
The optimum value for the ignore threshold and valid height should be determined in the
final application.
2.8.3
Signal-to-noise ratio (SNR)
SNR function not yet implemented in API.
In high ambient conditions range accuracy can be impaired so the SNR threshold is used as
a safety limit to invalidate range measurements where the ambient/signal ratio is considered
too high.The default ambient/signal ratio limit is 10 (i.e. an SNR of 0.1) which is then
encoded in 4.4 format as follows:
SYSRANGE__MAX_AMBIENT_LEVEL_MULT{0x2C}= 10 x 16 = 160
22/73
DocID024986 Rev 14
VL6180
Functional description
To enable the SNR check, set bit 4 in SYSRANGE__RANGE_CHECK_ENABLES (0x02D). A
lower setting results in a more aggressive filter which will result in a lower effective range but
greater accuracy. A higher setting results in a less aggressive filter which will result in a
greater effective range but lower accuracy.
The SNR value can be calculated as follows:
RESULT__RANGE_RETURN_SIGNAL_COUNT{0x6C}
SNR = -------------------------------------------------------------------------------RESULT__RANGE_RETURN_AMB_COUNT{0x74} * 6
Note:
The SNR value is the inverse of the ambient/signal ratio limit {0x2C}.
Note:
The optimum value for SNR threshold should be determined in the final application.
2.9
Manual/autoVHV calibration
Manual/auto VHV not yet implemented in API.
SPAD(e) sensitivity is temperature dependent so VHV(f) calibration is used to regulate SPAD
sensitivity over temperature in order to minimize signal rate variation. VHV calibration is
performed either manually by the host processor or automatically by internal firmware.
Execution time is typically 200 s so has no impact on normal operation.
A VHV calibration is run once at power-up and then automatically after every N range
measurements defined by the SYSRANGE__VHV_REPEAT_RATE{0x31}register. AutoVHV
calibration is disabled by setting this register to 0. Default is 255. If autoVHV is disabled it is
recommended to run a manual VHV calibration periodically to recalibrate for any significant
temperature variation. A manual VHV calibration is performed by setting
SYSRANGE__VHV_RECALBRATE{0x2E} to 1. This register auto-clears. This operation
should only be performed in software standby.
2.10
History buffer
History buffer not yet implemented in API.
The history buffer is a 8 x 16-bit memory which can be used to store the last 16 range
measurements (8-bit). Use of the history buffer is controlled via register
SYSTEM__HISTORY_CTRL{0x12}. There are 3 basic functions:

enable

range selection

clear buffer
The buffer is read via eight 16-bit registers (RESULT__HISTORY_BUFFER_0{0x52} to
RESULT__HISTORY_BUFFER_7{0x60}). The buffer holds the last 16 x 8-bit range results
as shown in Table 9.
e. Photon detectors - Single Photon Avalanche Diodes
f.
VHV is an adjustable SPAD bias voltage and stands for Very High Voltage (typically around 14 V). Also
sometimes referred to as CP (Charge Pump).
DocID024986 Rev 14
23/73
69
Functional description
VL6180
Table 9. History buffer
Range
History buffer
(High byte)
Note:
(Low byte)
0
Range [15] (newest)
Range [14]
1
Range [13]
Range [12]
2
Range [11]
Range [10]
3
Range [9]
Range [8]
4
Range [7]
Range [6]
5
Range [5]
Range [4]
6
Range [3]
Range [2
7
Range [1]
Range [0] (oldest)
Only one data stream can be buffered at one time. There is no associated time stamp
information.
The clear buffer command is not immediate; it takes effect on the next range start
command.
The history buffer works independently of interrupt control i.e. the history buffer records all
new samples; its operation is unchanged in threshold and window modes.
2.11
Wrap Around Filter
Wrap-around is an effect linked to the ratio between the VCSEL pulse period and the photon
return pulse.
Figure 15. Wrap around
High reflective targets (like mirrors) placed at a far distance (>600mm) from the VL6180 can
still produce enough return signal for the VL6180 to declare a valid target and meet the
wrap-around condition resulting in a wrong (under-estimated) returned distance.
The WAF implemented in the API is able to automatically detect if a target is in the wraparound condition and filter it by returning an invalid distance (Range.errorStatus = 16). The
WAF is enabled/disabled via VL6180x_FilterSetState() and read with
VL6180x_FilterGetState().
2.12
Scaling
The default scaling factor is 3, which allows for maximum ranging capabilities. The scaling
factor can be decreased to x2 or x1 for short range applications.
24/73
DocID024986 Rev 14
VL6180
Note:
Functional description
With a scaling factor of 2/3. the reported range minimum resolution also increases to
2/3mm.
VL6180x_UpscaleSetScaling() is a single API function which allows the user to change the
scaling factor of the device. VL6180x_UpscaleGetScaling() can be used to read the
scaling factor.
Scaling factor = 1 = proximity ranging (up to ~20 cm)
Scaling factor = 1 = proximity ranging (up to ~40 cm)
Scaling factor = 3 = extended ranging (up to ~60 cm)
2.13
Maximum ranging distance (Dmax)
A target placed in front of the VL6180 device may not be detected because it is too far away
for the given ambient light conditions.
When ambient light level increases, max detection range (Dmax) decreases
When no target is detected (no valid distance), the VL6180 API is able to estimate Dmax as
the maximum distance up to which a 17% target would have been detected with the current
ambient light level.
When no target is detected by the VL6180, the application can interpret the Dmax value as
no target is detected and there is no 17% (or above) target between 0 and Dmax mm.
DMAX is enabled/disabled by VL6180x_DMaxSetState() and read with
VL6180x_DMaxGetState().
Note:
Dmax is estimated for a 17% reflectance target. If the real target has a lower reflectance,
then the Dmax calculated by the API could be overestimated.
2.14
Current consumption
Table 10. gives an overview of current consumption in different operating states.
Table 10. Typical current consumption in different operating states
Mode
Current
Conditions
Hardware standby
< 1 A
Shutdown (GPIO0 = 0). No I2C comms
Software standby
< 1 A
After MCU boot. Device ready
Ranging
1.7 mA
Average consumption during ranging(1)
1. 10 Hz sampling rate, 17% reflective target at 50 mm.
2.14.1
Ranging current consumption
Figure 16 shows typical ranging current consumption of the VL6180. Current consumption
depends on target distance, target reflectance and sampling rate. The example shown here
is based on default settings and a sampling rate of 10 Hz. The average current consumption
for a 17% reflective target at 50 mm operating at 10 Hz is 1.7 mA. At different sampling rates
the current consumption scales accordingly i.e. the average current consumption at 1 Hz
under the same conditions would be 0.17 mA.
DocID024986 Rev 14
25/73
69
Functional description
VL6180
Figure 16. Typical ranging current consumption (10 Hz sampling rate)
The minimum average current consumption in Figure 16. is 1.5 mA, 0.5 mA of which comes
from pre-calibration before each measurement and 1.0 mA from post-processing (readout
averaging). Pre-calibration is a fixed overhead but readout averaging can be reduced or
effectively disabled by setting the READOUT__AVERAGING_SAMPLE_PERIOD{0x10A} to
zero (default setting is 48).
Note:
Decreasing the READOUT__AVERAGING_SAMPLE_PERIOD will increase sampling noise. It
is recommended that any change in setting be properly evaluated in the end application.
Minimum current consumption scales with sampling rate i.e. at a sampling rate of 1 Hz the
current consumption associated with pre- and post-processing will be 0.15 mA.
2.14.2
Current consumption calculator
Table 11. gives a breakdown of typical current consumption for pre-calibration, ranging and
readout averaging.
Table 11. Breakdown of current consumption
Label
Phase
I (mA)
t (ms)
Q (C) = I x t
Q1
Pre-calibration
13.0
3.2
41.6
Q2
Ranging
22.0
per ms
22.0 per ms
Q3
Readout averaging
25.0
per ms
25.0 per ms
Current consumption can then be calculated as follows:
I (A) = sampling_rate * [Q1 + (Q2 * RESULT__RANGE_RETURN_CONV_TIME in ms) + 
Q3 * (1.3 + (READOUT__AVERAGING_SAMPLE_PERIOD * 0.0645 ms))]
Table 7. gives typical convergence times for different target reflectance.
So, for example, RESULT__RANGE_RETURN_CONV_TIME for a 3% target at 50 mm is 4.35
ms. At 10 Hz sampling rate this gives:
I (A) = 10 * [41.6 + (22 * 4.35) + 25 * (1.3 + (48 * 0.0645))] = 2472 A
26/73
DocID024986 Rev 14
VL6180
2.14.3
Functional description
Current distribution
Table 12. shows how current consumption is distributed between the two supplies in ranging
mode. AVDD_VCSEL supplies the VCSEL current and AVDD supplies all other functions.
Angle of divergent laser emission is 25° +/- 5°.
The condition of divergent angle of 25° laser emission is 1/e2 of the peak intensity.
Note:
The VCSEL driver is pulsed at 100 MHz with a 33% duty cycle (see Figure 17.) so average
current consumption on AVDD_VCSEL is one third of the peak.
Table 12. Average current consumption on AVDD and AVDD_VCSEL
Power supply(1)
Current
AVDD
14 mA
AVDD_VCSEL
8
mA(2)
Note
Average during active ranging
Average during active ranging (33% duty cycle).
1. Normally, both supplies will be driven from a common source giving a peak instantaneous current demand
of 38 mA.
2. Peak emitter current during ranging is 24 mA.Peak power is 14mW.
Figure 17. VCSEL pulse duty cycle
ͬϭϰŵtƉĞĂŬƉŽǁĞƌ
DocID024986 Rev 14
27/73
69
Functional description
2.15
VL6180
Other system considerations
This section describes part-to-part range offset and system cross-talk. In addition, a
procedure for cross-talk calibration is given.
2.15.1
Part-to-part range offset
The VL6180 is factory calibrated to produce an absolute linear range output as shown in
Figure 18. The part-to-part range offset is calibrated during manufacture and stored in NVM.
Use VL6180x_GetOffsetCalibrationData() to read offset from NVM (after
VL6180x_InitData()). The API always returns the range with the part-to-part offset already
applied.
Figure 18. Part-to-part range offset
2.15.2
Cross-talk
Cross-talk is defined as the signal return from the cover glass. The magnitude of the crosstalk depends on the type of glass, air gap and filter material. Cross-talk results in a range
error (see Figure 19) which is proportional to the ratio of the cross-talk to the signal return
from the target. The true range is recovered by applying automatic cross-talk compensation.
Figure 19. Cross-talk compensation
Cross-talk compensation is enabled by using VL6180x_SetXTalkCompensationRate(). A
cross-talk calibration procedure is described in Section 2.15.4.
28/73
DocID024986 Rev 14
VL6180
2.15.3
Functional description
Offset calibration procedure
Complete steps 1-4 to see if part-to-part offset calibration is required.
1.
Read scaling factor VL6180x_UpscaleGetScaling(), turn off WAF
VL6180x_FilterSetState() = 0, turn off range ignore features
VL6180x_RangeIgnoreSetEnable() = 0 and clear all interrupts
VL6180x_ClearAllInterrupt().
2.
Position a white target (88% reflectance(g)) at a distance of 50mm (scaling factor 1) or
100 mm (scaling factor 2/3) from the top of the cover glass.
3.
Perform a minimum of 10 range measurements and compute the average range using
VL6180x_RangePollMeasurement().
4.
If the average range is within target distance  3 mm, offset calibration is not required.
Otherwise, complete the calibration procedure.
5.
Set VL6180x_SetOffsetCalibrationData() = 0.
6.
Perform a minimum of 10 range measurements and compute the average range from
VL6180x_RangePollMeasurement().
7.
Calculate the part-to-part offset as follows:
part-to-part offset = target distance(mm) – average range(mm)
8.
2.15.4
The new offset value should be stored on system and written to the VL6180 by using
VL6180x_SetOffsetCalibrationData() each time the device is reset.
Cross-talk calibration procedure
This section describes a procedure for calibrating system cross-talk.
1.
Note:
Perform offset calibration if required (see Section 2.15.3) and write the value to the
device by using VL6180x_SetOffsetCalibrationData().
If the offset is incorrectly calibrated, cross-talk calibration will be inaccurate.
2.
Read scaling factor VL6180x_UpscaleGetScaling(), turn off WAF
VL6180x_FilterSetState() = 0 turn off range ignore features
VL6180x_RangeIgnoreSetEnable() = 0 and clear all interrupts
VL6180x_ClearAllInterrupt().
3.
Position a grey target (17% reflectance(h)) at a distance of 100mm (scaling factor 1) or
300mm (scaling factor 2) or 400mm (scaling factor 3) from the top of the cover glass.
4.
Write 0 to VL6180x_SetXTalkCompensationRate().
5.
Perform a minimum of 10 range measurements and compute the average return rate
and range value from VL6180x_RangePollMeasurement().
6.
Calculate the cross-talk factor as follows:
average range(mm)
cross-talk (in Mcps) = average return rate   1 – -----------------------------------------------------

target distance(mm)
7.
The cross-talk value should be stored on system and written to the VL6180 by using
VL6180x_SetXTalkCompensationRate() each time the device is reset.
g. Target reflectance should be high but absolute value is not critical.
h. Target reflectance should be low but absolute value is not critical.
DocID024986 Rev 14
29/73
69
Functional description
VL6180
Note:
Cross-talk compensation is only applied to targets above 20 mm. This is to ensure that
cross-talk correction is not applied to near targets where the signal rate is decreasing. The
API sets the cross-talk valid height dependent on scaling factor. 
The default is 20mm for scaling 1, 10mm (20/2) for scaling 2 and 7mm (~20/3) for scaling 3.
2.15.5
Cross-talk limit
For proximity ranging (scaling 1), a practical limit for cross-talk is < 3.0 Mcps. This is based
on two factors:
1.
The return rate for a 3% reflective target at 100 mm without glass is typically around 1.5
Mcps. If glass is added with a cross-talk of 3.0 Mcps, the resultant return rate will be 4.5
Mcps. This results in a cross-talk correction factor of x3 so for a 100 mm target the raw
range will be in the region of 30 mm. To ensure the cross-talk valid height restriction is
not breached, the minimum raw range allowing for noise margin is around 30 mm.
2.
A cross-talk correction factor of x3 also means that any range noise will be multiplied
by 3 so noise also becomes a limiting factor.
For extended ranging (scaling 3), a practical limit for cross-talk is < 0.2 Mcps.
2.15.6
Cross-talk vs air gap
Figure 20 shows the typical cross-talk vs air gap using low cross-talk glass. Above 1.5 mm,
the cross-talk rises rapidly.
Figure 20. Cross-talk vs air gap
30/73
DocID024986 Rev 14
VL6180
Ranging specification
3
Ranging specification
3.1
Proximity ranging (0 to 100mm)
The following table specifies ranging performance up to 100mm. These results are derived
from characterization of both typical and corner samples (representative of worst case
process conditions).
Unless specified otherwise, all results were performed at room temperature (23°C), nominal
voltage (2.8V) and in the dark. Results are based on the average of 100 measurements for
a 17% reflective target @ 50mm.
Table 13. Ranging specification 0 to 100mm
Parameter
Noise(1)
Range offset
error(2)
Temperature dependent drift
Voltage dependent drift
(3)
(4)
Convergence time (5)
Min.
Typ.
Max.
Unit
-
-
2.0
mm
-
-
13
mm
-
9
15
mm
-
3
5
mm
-
-
15
ms
1. Maximum standard deviation of 100 measurements
2. Maximum offset drift after 3 reflow cycles. This error can be removed by re-calibration in the final system
3. Tested over optimum operating temperature range (see Table 20.: Normal operating conditions)
4. Tested over optimum operating voltage range (see Table 20.: Normal operating conditions)
5. Based on a 3% reflective target @ 100 mm
3.1.1
Max range vs. ambient light level
The data shown in this section is worst case data for reference only.
Table 14 shows the worst case maximum range achievable under different ambient light
conditions.
Table 14. Worst case max range vs. ambient 0 to 100mm(1)(2)
Target
reflectance
In the dark(3)
Worst case indoor light
High ambient light
(1 kLux diffuse halogen) (5 kLux diffuse halogen)
3%
> 100
> 80
> 40
mm
5%
> 100
> 90
> 45
mm
17%
> 100
> 100
> 60
mm
88%
> 100
> 100
> 70
mm
Unit
1. Tested in an integrating sphere (repeatable lab test, not representative of real world ambient light) at 1
kLux and 5 kLux (halogen light source) using 80 x 80 mm targets. Due to high IR content, 5 kLux halogen
light approximates to 10 kLux to 15 kLux natural sunlight.
2. SNR limit of 0.1 applied. Note: maximum range could be increased by reducing the SNR limit to 0.06
3. Also applicable to lighting conditions with low IR content e.g typical office fluorescent lighting
DocID024986 Rev 14
31/73
69
Ranging specification
VL6180
Figure 21. Typical ranging performance
3.2
Extended range (>100mm)
3.2.1
Extended range conditions
Ranging beyond 100 mm requires a low cross-talk system, use of a gasket, small air gap
(below 1 mm) and cover glass with IR filter (transmission >80% @ 850nm and <15% @
450-700nm). Tuning of the following parameters are required:
3.2.2

SNR limit

Convergence threshold

Max convergence time

Factory calibrated ambient window calibration settings applied by the host
Max range vs. ambient light level
Table 15 shows the worst case maximum range achievable under different ambient light
conditions. No cover glass was used in these tests. The device was tuned as per
recommendations in Section 3.2.1. The minimum detection rate is the worst case
percentage of measurements that will return a valid measurement.
32/73
DocID024986 Rev 14
VL6180
Ranging specification
The light source used was a large, adjustable halogen ‘theatre’ lamp. The lamp was
mounted behind the device under test, pointing directly at the test chart, therefore the
ambient rate measured by VL6180 is from the light reflected off the test chart.
Table 15. Worst case max range vs. ambient >100mm
Target
reflectance (%)
Distance (mm)
Ambient Rate(1) (Mcps)
Minimum Detection Rate(2)
(%)
5
200
3.7
97.5
88
200
37
97.5
17
400
2.1
94.7
1. Ambient light level set at 23°C
2. Over the optimum operating temperature range (-10°C to + 60°C)
Table 16.shows upper and lower measurement limits based on characterization of both
typical and limit samples for a 17% target at 400 mm according to the conditions laid out in
Table 15. Testing was performed at 2.8 V and over the optimum operating temperature
range (-10°C to + 60°C).
Table 16. Range limits for a 400 mm target @ ambient rate 2.1Mcps
Lower limit (mm)
Upper limit (mm)
330
470
The data shown in Table 17 is worst case maximum range data for reference only and
shows the light levels that can be achieved using a low cross-talk system as defined in
Section 3.2.1.
Table 17. Worst case achievable light levels
Target reflectance
(%)
Distance (mm)
Equivalent Light
level on top of
glass (lux)
5
200
5,200
17
400
950
88
200
3,700
DocID024986 Rev 14
Notes
Sunlight
Halogen light source
Sunlight
33/73
69
I2C control interface
4
VL6180
I2C control interface
The VL6180 is controlled over an I2C interface. The default I2C address is 0x29 (7-bit). This
section describes the I2C protocol.
Figure 22. Serial interface data transfer protocol
Acknowledge
Start condition
SDA
MSB
SCL
S
LSB
1
2
3
4
5
8
7
6
As/Am
Address or data byte
P
Stop condition
Information is packed in 8-bit packets (bytes) always followed by an acknowledge bit, As for
sensor acknowledge and Am for master acknowledge. The internal data is produced by
sampling SDA at a rising edge of SCL. The external data must be stable during the high
period of SCL. The exceptions to this are start (S) or stop (P) conditions when SDA falls or
rises respectively, while SCL is high.
A message contains a series of bytes preceded by a start condition and followed by either a
stop or repeated start (another start condition but without a preceding stop condition)
followed by another message. The first byte contains the device address (0x52) and also
specifies the data direction. If the least significant bit is low (0x52) the message is a master
write to the slave. If the lsb is set (0x53) then the message is a master read from the slave.
Figure 23. I2C device address
LSBit
MSBit
0
1
0
1
0
0
1
R/W
All serial interface communications with the sensor must begin with a start condition. The
sensor acknowledges the receipt of a valid address by driving the SDA wire low. The state
of the read/write bit (lsb of the address byte) is stored and the next byte of data, sampled
from SDA, can be interpreted. During a write sequence the second and third bytes received
provide a 16-bit index which points to one of the internal 8-bit registers.
Figure 24. Single location, single write
Start
S
Acknowledge from sensor
Sensor acknowledges
valid address
ADDRESS[7:0]
As
INDEX[15:8]
As
0x52 (write)
34/73
INDEX[7:0]
As
DATA[7:0]
As P
Stop
DocID024986 Rev 14
I2C control interface
VL6180
As data is received by the slave it is written bit by bit to a serial/parallel register. After each
data byte has been received by the slave, an acknowledge is generated, the data is then
stored in the internal register addressed by the current index.
During a read message, the contents of the register addressed by the current index is read
out in the byte following the device address byte. The contents of this register are parallel
loaded into the serial/parallel register and clocked out of the device by the falling edge of
SCL.
Figure 25. Single location, single read
0x52 (write)
ADDRESS[7:0]
S
INDEX[15:8]
As
INDEX[7:0]
As
As P
0x53 (read)
ADDRESS[7:0]
S
DATA[7:0]
As
Am P
At the end of each byte, in both read and write message sequences, an acknowledge is
issued by the receiving device (that is, the sensor for a write and the master for a read).
A message can only be terminated by the bus master, either by issuing a stop condition or
by a negative acknowledge (that is, not pulling the SDA line low) after reading a complete
byte during a read operation.
The interface also supports auto-increment indexing. After the first data byte has been
transferred, the index is automatically incremented by 1. The master can therefore send
data bytes continuously to the slave until the slave fails to provide an acknowledge or the
master terminates the write communication with a stop condition. If the auto-increment
feature is used the master does not have to send address indexes to accompany the data
bytes.
Figure 26. Multiple location write
0x52 (write)
S
ADDRESS[7:0]
As
DATA[7:0]
INDEX[15:8]
DATA[7:0]
As
INDEX[7:0]
As
DATA[7:0]
As
As
As P
Figure 27. Multiple location read
0x52 (write)
ADDRESS[7:0]
S
INDEX[15:8]
As
INDEX[7:0]
As
As P
0x53 (read)
S
ADDRESS[7:0]
DATA[7:0]
As
Am
DATA[7:0]
DATA[7:0]
DocID024986 Rev 14
Am
Am
DATA[7:0]
DATA[7:0]
Am
Am P
35/73
69
I2C control interface
4.1
VL6180
I2C interface - timing characteristics
Timing characteristics are shown in Table 18. Please refer to Figure 28 for an explanation of
the parameters used.
Table 18. I2C interface - timing characteristics
Symbol
Parameter
Minimum
Typical
Maximum
Unit
FI2C
Operating frequency
0
-
400(1)
kHz
tLOW
Clock pulse width low
0.5
-
-
s
tHIGH
Clock pulse width high
0.26
-
-
s
tSP
Pulse width of spikes which are
suppressed by the input filter
-
-
50
ns
tBUF
Bus free time between transmissions
0.5
-
-
s
tHD.STA
Start hold time
0.26
-
-
s
tSU.STA
Start set-up time
0.26
-
-
s
tHD.DAT
Data in hold time
0
-
-
s
tSU.DAT
Data in set-up time
50
-
-
ns
tR
SCL/SDA rise time
-
-
120
ns
tF
SCL/SDA fall time
-
-
120
ns
tSU.STO
Stop set-up time
0.26
-
-
s
Ci/o
Input/output capacitance (SDA)
-
-
4
pF
Cin
Input capacitance (SCL)
-
-
4
pF
CL
Load capacitance
-
125
-
pF
1. The maximum bus speed may also be limited by the combination of load capacitance and pull-up resistor.
Please refer to the I2C specification for further information.
Figure 28. I2C timing characteristics
stop
start
start
...
SDA
tBUF
SCL
36/73
tR
VIH
VIL
tHD.STA
tF
VIH
...
VIL
tHD.STA
Note:
tLOW
stop
tHD.DAT
tHIGH
tSU.DAT
tSU.STA
All timing characteristics are measured with respect to VIL_MAX or VIH_MIN.
DocID024986 Rev 14
tSU.STO
VL6180
Electrical characteristics
5
Electrical characteristics
5.1
Absolute maximum ratings
Table 19. Absolute maximum ratings
Parameter
Min.
Typ.
Max.
Unit
AVDD
-0.5
-
3.6
V
AVDD_VCSEL
-0.5
-
3.6
V
SCL, SDA, GPIO0 and GPIO1
-0.5
-
3.6
V
VESD (Electrostatic discharge model)
Human body model(1)
Charge device model(2)
-2
-500
2
500
KV
V
Temperature (storage - manufacturing
test)
-40
+85
°C
-
1. HBM tests are performed in compliance with ESDA/JEDEC JS-001-2010 (ex: JESD22-A114)
MM test is performed in compliance with JESD22-A115.
2. CDM ESD tests are performed in compliance with JESD22-C101.
Note:
Stresses above those listed in Table 19. may cause permanent damage to the device. This
is a stress rating only and functional operation of the device at these or any other conditions
above those indicated in the operational sections of the specification is not implied.
Exposure to absolute maximum rating conditions for extended periods may affect device
reliability.
5.2
Normal operating conditions
Table 20. Normal operating conditions
Parameter
Min.
Typ.
Max.
Unit
Voltage (optimum operating)
2.7
2.8
2.9
V
Voltage (functional operating)
2.6
2.8
3.0
V
+60
°C
+70
°C
Voltage (AVDD and AVDD_VCSEL)
Temperature
Temperature (optimum operating)
-10
Temperature (functional operating)
-20
DocID024986 Rev 14
-
37/73
69
Electrical characteristics
5.3
VL6180
Electrical characteristics
Table 21. Digital I/O electrical characteristics
Symbol
Parameter
Minimum
Typical
Maximum
Unit
CMOS digital I/O (SDA, SCL, GPIO0 and GPIO1)
38/73
VIL
Low level input voltage
-0.5
-
0.6
V
VIH
High level input voltage
1.12
-
AVDD+0.5
V
VOL
Low level output voltage (8mA load)
-
-
0.4
V
VOH
High level output voltage (8mA load)
AVDD-0.4
-
-
V
IIL
Low level input current
-
-
-10
µA
IIH
High level input current
-
-
10
µA
DocID024986 Rev 14
VL6180
6
Device registers
Device registers
This section describes in detail all user accessible device registers. Registers are grouped
by function as shown in Table 22. to make them easier to read but also to simplify multi-byte
read/write I2C accesses (burst mode). More details in Section 4. Reset values are given for
each register which denotes the register value in software standby.
Table 22. Register groups
Register group
Address range
IDENTIFICATION
0x000 - 0x00F
SYSTEM SETUP
0x010 - 0x017
RANGE SETUP
0x018 - 0x037
RESULTS
0x04D - 0x080
Note that registers can be 8-,16- or 32-bit. Multi-byte registers are always addressed in
ascending order with MSB first as shown in Table 23.
Table 23. 32-bit register example
Register address
Address
6.1
Byte
MSB
Address + 1
..
Address + 2
..
Address + 3
LSB
Register encoding formats
Some registers are encoded to allow rational numbers to be expressed efficiently. Table 24
gives an explanation of 9.7 and 4.4 encoding formats. Table 25 gives a summary of the
device registers.
Table 24. Register formats
Format
9.7
Description
9 integer bits + 7 fractional bits (stored over 2 bytes)
For example, the value 4.2 is multiplied by 128, rounded and stored as
537 decimal. To decode, divide 537 by 128 = 4.19.
DocID024986 Rev 14
39/73
69
Device registers
VL6180
Table 25. Register summary
Address
Register name
0x000
IDENTIFICATION__MODEL_ID
Section 6.2.1 on page 42
0x001
IDENTIFICATION__MODEL_REV_MAJOR
Section 6.2.2 on page 42
0x002
IDENTIFICATION__MODEL_REV_MINOR
Section 6.2.3 on page 42
0x003
IDENTIFICATION__MODULE_REV_MAJOR
Section 6.2.4 on page 43
0x004
IDENTIFICATION__MODULE_REV_MINOR
Section 6.2.5 on page 43
0x006
IDENTIFICATION__DATE_HI
Section 6.2.6 on page 43
0x007
IDENTIFICATION__DATE_LO
Section 6.2.7 on page 44
0x008:0x009 IDENTIFICATION__TIME
Section 6.2.8 on page 44
0x010
SYSTEM__MODE_GPIO0
Section 6.2.9 on page 45
0x011
SYSTEM__MODE_GPIO1
Section 6.2.10 on page 46
0x012
SYSTEM__HISTORY_CTRL
Section 6.2.11 on page 47
0x014
SYSTEM__INTERRUPT_CONFIG_GPIO
Section 6.2.12 on page 48
0x015
SYSTEM__INTERRUPT_CLEAR
Section 6.2.13 on page 48
0x016
SYSTEM__FRESH_OUT_OF_RESET
Section 6.2.14 on page 48
0x017
SYSTEM__GROUPED_PARAMETER_HOLD
Section 6.2.15 on page 49
0x018
SYSRANGE__START
Section 6.2.16 on page 49
0x019
SYSRANGE__THRESH_HIGH
Section 6.2.17 on page 50
0x01A
SYSRANGE__THRESH_LOW
Section 6.2.18 on page 51
0x01B
SYSRANGE__INTERMEASUREMENT_PERIOD
Section 6.2.19 on page 51
0x01C
SYSRANGE__MAX_CONVERGENCE_TIME
Section 6.2.20 on page 51
0x01E
SYSRANGE__CROSSTALK_COMPENSATION_RATE
Section 6.2.21 on page 52
0x021
SYSRANGE__CROSSTALK_VALID_HEIGHT
Section 6.2.22 on page 52
0x022
SYSRANGE__EARLY_CONVERGENCE_ESTIMATE
Section 6.2.23 on page 52
0x024
SYSRANGE__PART_TO_PART_RANGE_OFFSET
Section 6.2.24 on page 53
0x025
SYSRANGE__RANGE_IGNORE_VALID_HEIGHT
Section 6.2.25 on page 53
0x026
SYSRANGE__RANGE_IGNORE_THRESHOLD
Section 6.2.26 on page 53
0x02C
SYSRANGE__MAX_AMBIENT_LEVEL_MULT
Section 6.2.27 on page 54
0x02D
SYSRANGE__RANGE_CHECK_ENABLES
Section 6.2.27 on page 54
0x02E
SYSRANGE__VHV_RECALIBRATE
Section 6.2.29 on page 55
0x031
SYSRANGE__VHV_REPEAT_RATE
Section 6.2.30 on page 55
0x04D
RESULT__RANGE_STATUS
Section 6.2.31 on page 56
0x04F
RESULT__INTERRUPT_STATUS_GPIO
Section 6.2.32 on page 57
0x052:0x060
RESULT__HISTORY_BUFFER_x
(0x2)
0x062
40/73
Reference
RESULT__RANGE_VAL
DocID024986 Rev 14
Section 6.2.33 on page 57
Section 6.2.34 on page 58
VL6180
Device registers
Table 25. Register summary (continued)
Address
Register name
Reference
0x064
RESULT__RANGE_RAW
Section 6.2.35 on page 58
0x066
RESULT__RANGE_RETURN_RATE
Section 6.2.36 on page 59
0x068
RESULT__RANGE_REFERENCE_RATE
Section 6.2.37 on page 60
0x06C
RESULT__RANGE_RETURN_SIGNAL_COUNT
Section 6.2.38 on page 60
0x070
RESULT__RANGE_REFERENCE_SIGNAL_COUNT
Section 6.2.39 on page 61
0x074
RESULT__RANGE_RETURN_AMB_COUNT
Section 6.2.40 on page 61
0x078
RESULT__RANGE_REFERENCE_AMB_COUNT
Section 6.2.41 on page 61
0x07C
RESULT__RANGE_RETURN_CONV_TIME
Section 6.2.42 on page 62
0x080
RESULT__RANGE_REFERENCE_CONV_TIME
Section 6.2.43 on page 62
0x10A
READOUT__AVERAGING_SAMPLE_PERIOD
Section 6.2.44 on page 62
0x119
FIRMWARE__BOOTUP
Section 6.2.44 on page 62
0x212
I2C_SLAVE__DEVICE_ADDRESS
Section 6.2.46 on page 63
DocID024986 Rev 14
41/73
69
Device registers
VL6180
6.2
Register descriptions
6.2.1
IDENTIFICATION__MODEL_ID
7
6
5
4
3
2
1
0
identification__model_id
R/W
Address:
0x000
Type:
R/W
Reset:
0xB4
Description:
[7:0]
6.2.2
identification__model_id: Device model identification number. 0xB4 = VL6180
IDENTIFICATION__MODEL_REV_MAJOR
7
6
Address:
0x001
Type:
R/W
Reset:
0x01
5
4
3
2
1
RESERVED
identification__model_rev_major
R
R/W
0
Description:
[2:0]
6.2.3
identification__model_rev_major: Revision identifier of the Device for major change.
IDENTIFICATION__MODEL_REV_MINOR
7
6
5
4
3
2
1
RESERVED
identification__model_rev_minor
R
R/W
Address:
0x002
Type:
R/W
Reset:
0x03, register default overwritten at boot-up by NVM contents.
Description:
[2:0]
identification__model_rev_minor: Revision identifier of the Device for minor change.
IDENTIFICATION__MODEL_REV_MINOR = 3 for latest ROM revision
42/73
DocID024986 Rev 14
0
VL6180
6.2.4
Device registers
IDENTIFICATION__MODULE_REV_MAJOR
7
6
5
4
3
2
1
RESERVED
identification__module_rev_major
R
R/W
Address:
0x003
Type:
R/W
Reset:
0xXX, register default overwritten at boot-up by NVM contents.
0
Description:
[2:0]
6.2.5
identification__module_rev_major: Revision identifier of the Module Package for major change.
Used to store NVM content version. Contact ST for current information.
VL6180V0NR1: 001
VL6180V1NR1: 010
IDENTIFICATION__MODULE_REV_MINOR
7
6
5
Address:
0x004
Type:
R/W
Reset:
0xXX
4
3
2
1
RESERVED
identification__module_rev_minor
R
R/W
0
Description:
[2:0]
6.2.6
identification__module_rev_minor: Revision identifier of the Module Package for minor change.
Used to store NVM content version. Contact ST for current information.
VL6180V0NR1: 010
VL6180V1NR1: 000
IDENTIFICATION__DATE_HI
7
6
5
4
3
2
1
identification__year
identification__month
R/W
R/W
Address:
0x006
Type:
R/W
Reset:
0xYY, register default overwritten at boot-up by NVM contents.
Description:
Part of the register set that can be used to uniquely identify a module.
[7:4]
identification__year: Last digit of manufacturing year (bits[3:0]).
[3:0]
identification__month: Manufacturing month (bits[3:0]).
DocID024986 Rev 14
0
43/73
69
Device registers
6.2.7
VL6180
IDENTIFICATION__DATE_LO
7
6
5
4
3
2
1
0
identification__day
identification__phase
R/W
R/W
Address:
0x007
Type:
R/W
Reset:
0xYY, register default overwritten at boot-up by NVM contents.
Description:
Part of the register set that can be used to uniquely identify a module.
[7:3]
identification__day: Manufacturing day (bits[4:0]).
[2:0]
identification__phase: Manufacturing phase identification (bits[2:0]).
6.2.8
IDENTIFICATION__TIME
15
14
13
12
11
10
9
8
7
6
5
4
3
2
identification__time
R/W
Address:
0x008:0x009
Type:
R/W
Reset:
0xYYYY, register default overwritten at boot-up by NVM contents.
Description:
Part of the register set that can be used to uniquely identify a module.
[15:0]
44/73
identification__time: Time since midnight (in seconds) = register_value * 2.
DocID024986 Rev 14
1
0
VL6180
6.2.9
Device registers
SYSTEM__MODE_GPIO0
2
1
0
RESERVED
3
system__gpio0_select
4
system__gpio0_polarity
5
system__gpio0_is_xshutdown
6
RESERVED
7
R
R/W
R/W
R/W
R/W
Address:
0x010
Type:
R/W
Reset:
0x60
Description:
[6]
system__gpio0_is_xshutdown: Priority mode - when enabled, other bits of the register are
ignored. GPIO0 is main XSHUTDOWN input.
0: Disabled
1: Enabled - GPIO0 is main XSHUTDOWN input.
[5]
system__gpio0_polarity: Signal Polarity Selection.
0: Active-low
1: Active-high
[4:1]
[0]
system__gpio0_select: Functional configuration options.
0000: OFF (Hi-Z)
1000: GPIO Interrupt output
Reserved. Write 0.
DocID024986 Rev 14
45/73
69
Device registers
6.2.10
VL6180
SYSTEM__MODE_GPIO1
3
2
R/W
R/W
R/W
0x011
Type:
R/W
Reset:
0x20
Description:
[4:1]
[0]
46/73
0
R
Address:
[5]
1
RESERVED
4
system__gpio1_select
5
system__gpio1_polarity
6
RESERVED
7
system__gpio1_polarity: Signal Polarity Selection.
0: Active-low
1: Active-high
system__gpio1_select: Functional configuration options.
0000: OFF (Hi-Z)
1000: GPIO Interrupt output
Reserved. Write 0.
DocID024986 Rev 14
VL6180
SYSTEM__HISTORY_CTRL
Address:
0x012
Type:
R/W
Reset:
0x0
4
3
2
1
0
system__history_buffer_enable
5
system__history_buffer_mode
6
system__history_buffer_clear
7
RESERVED
6.2.11
Device registers
R
R/W
R/W
R/W
Description:
[2]
system__history_buffer_clear: User-command to clear history (FW will auto-clear this bit when
clear has completed).
0: Disabled
1: Clear all history buffers
[1]
system__history_buffer_mode: Select mode buffer results for:
0: Ranging (stores the last 8 ranging values (8-bit)
1: n/a
[0]
system__history_buffer_enable: Enable History buffering.
0: Disabled
1: Enabled
DocID024986 Rev 14
47/73
69
Device registers
6.2.12
VL6180
SYSTEM__INTERRUPT_CONFIG_GPIO
7
6
5
4
3
2
1
RESERVED
RESERVED
range_int_mode
R
R/W
R/W
Address:
0x014
Type:
R/W
Reset:
0x0
0
Description:
[2:0]
6.2.13
range_int_mode: Interrupt mode source for Range readings:
0: Disabled
1: Level Low (value < thresh_low)
2: Level High (value > thresh_high)
3: Out Of Window (value < thresh_low OR value > thresh_high)
4: New sample ready
SYSTEM__INTERRUPT_CLEAR
7
6
Address:
0x015
Type:
R/W
Reset:
0x0
5
4
3
2
1
RESERVED
int_clear_sig
R
R/W
0
Description:
7
SYSTEM__FRESH_OUT_OF_RESET
6
Address:
0x016
Type:
R/W
48/73
5
4
3
2
1
0
fresh_out_of_reset
6.2.14
int_clear_sig: Interrupt clear bits Writing a 1 to each bit will clear the intended interrupt note that
the int is only cleared upon the write command itself. 
Bit [0] - Clear Range Int 
Bit [1] - Reserved
Bit [2] - Clear Error Int.
RESERVED
[2:0]
R
R/W
DocID024986 Rev 14
VL6180
Device registers
Reset:
0x1
Description:
[0]
SYSTEM__GROUPED_PARAMETER_HOLD
6
Address:
0x017
Type:
R/W
Reset:
0x0
5
4
3
2
1
0
grouped_parameter_hold
7
RESERVED
6.2.15
fresh_out_of_reset: Fresh out of reset bit, default of 1, user can set this to 0 after initial boot and
can therefore use this to check for a reset condition
R
R/W
Description:
6
Address:
0x018
Type:
R/W
Reset:
0x0
5
4
3
2
1
0
sysrange__startstop
7
SYSRANGE__START
sysrange__mode_select
6.2.16
grouped_parameter_hold: Flag set over I2C to indicate that data is being updated
0: Data is stable - FW is safe to copy
1: Data being updated - FW not safe to copy
Usage: set to 0x01 first, write any of the registers listed below, then set to 0x00 so that the
settings are used by the firmware at the start of the next measurement.
SYSTEM__INTERRUPT_CONFIG_GPIO
SYSRANGE__THRESH_HIGH
SYSRANGE__THRESH_LOW
RESERVED
[0]
R
R/W
R/W
DocID024986 Rev 14
49/73
69
Device registers
VL6180
Description:
[1]
sysrange__mode_select: Device Mode select
0: Ranging Mode Single-Shot
1: Ranging Mode Continuous
[0]
sysrange__startstop: StartStop trigger based on current mode and system configuration of
device_ready. FW clears register automatically.
Setting this bit to 1 in single-shot mode starts a single measurement. 
Setting this bit to 1 in continuous mode will either start continuous operation (if stopped) or halt
continuous operation (if started). 
This bit is auto-cleared in both modes of operation.
6.2.17
SYSRANGE__THRESH_HIGH
7
6
5
4
3
2
1
0
sysrange__thresh_high
R/W
Address:
0x019
Type:
R/W
Reset:
0xFF
Description:
[7:0]
50/73
sysrange__thresh_high: High Threshold value for ranging comparison. Range 0-255mm.
DocID024986 Rev 14
VL6180
Device registers
6.2.18
SYSRANGE__THRESH_LOW
7
6
5
4
3
2
1
0
sysrange__thresh_low
R/W
Address:
0x01A
Type:
R/W
Reset:
0x0
Description:
[7:0]
6.2.19
sysrange__thresh_low: Low Threshold value for ranging comparison. Range 0-255mm.
SYSRANGE__INTERMEASUREMENT_PERIOD
7
6
5
4
3
2
1
0
sysrange__intermeasurement_period
R/W
Address:
0x01B
Type:
R/W
Reset:
0xFF
Description:
[7:0]
6.2.20
sysrange__intermeasurement_period: Time delay between measurements in Ranging
continuous mode. Range 0-254 (0 = 10ms). Step size = 10ms.
SYSRANGE__MAX_CONVERGENCE_TIME
7
6
5
4
3
2
RESERVED
sysrange__max_convergence_time
R
R/W
Address:
0x01C
Type:
R/W
Reset:
0x31
1
0
Description:
[5:0]
sysrange__max_convergence_time: Maximum time to run measurement in Ranging modes.
Range 1 - 63 ms (1 code = 1 ms); Measurement aborted when limit reached to aid power
reduction. For example, 0x01 = 1ms, 0x0a = 10ms.
Note: Effective max_convergence_time depends on readout_averaging_sample_period
setting.
DocID024986 Rev 14
51/73
69
Device registers
6.2.21
15
VL6180
SYSRANGE__CROSSTALK_COMPENSATION_RATE
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
sysrange__crosstalk_compensation_rate
R/W
Address:
0x01E
Type:
R/W
Reset:
0x0
Description:
[15:0]
6.2.22
sysrange__crosstalk_compensation_rate: User-controlled cross-talk compensation in Mcps
(9.7 format)
SYSRANGE__CROSSTALK_VALID_HEIGHT
7
6
5
4
3
2
1
0
sysrange__crosstalk_valid_height
R/W
Address:
0x021
Type:
R/W
Reset:
0x14
Description:
[7:0]
6.2.23
15
sysrange__crosstalk_valid_height: Minimum range value in mm to qualify for cross-talk
compensation.
SYSRANGE__EARLY_CONVERGENCE_ESTIMATE
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
sysrange__early_convergence_estimate
R/W
Address:
0x022
Type:
R/W
Reset:
0x0
Description:
[15:0]
FW carries out an estimate of convergence rate 0.5ms into each new range measurement. If
convergence rate is below user input value, the operation aborts to save power.
Note: This register must be configured otherwise ECE should be disabled via
SYSRANGE__RANGE_CHECK_ENABLES.
52/73
DocID024986 Rev 14
VL6180
Device registers
6.2.24
SYSRANGE__PART_TO_PART_RANGE_OFFSET
7
6
5
4
3
2
1
0
1
0
sysrange__part_to_part_range_offset
R/W
Address:
0x024
Type:
R/W
Reset:
0xYY, register default overwritten at boot-up by NVM contents.
Description:
[7:0]
6.2.25
sysrange__part_to_part_range_offset: 2s complement.
SYSRANGE__RANGE_IGNORE_VALID_HEIGHT
7
6
5
4
3
2
sysrange__range_ignore_valid_height
R/W
Address:
0x025
Type:
R/W
Reset:
0x0, register default overwritten at boot-up by NVM contents.
Description:
[7:0]
6.2.26
15
sysrange__range_ignore_valid_height: Range below which ignore threshold is applied. Aim is
to ignore the cover glass i.e. low signal rate at near distance. Should not be applied to low
reflectance target at far distance. Range in mm.
Note: It is recommended to set this register to 255 if the range ignore feature is used.
SYSRANGE__RANGE_IGNORE_THRESHOLD
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
sysrange__range_ignore_threshold
R/W
Address:
0x026
Type:
R/W
Reset:
0x00
Description:
[15:0]
sysrange__range_ignore_threshold: User input min threshold signal return rate. Used to filter
out ranging due to cover glass when there is no target above the device. Mcps 9.7 format.
Note: Register must be initialized if this feature is used.
DocID024986 Rev 14
53/73
69
Device registers
6.2.27
VL6180
SYSRANGE__MAX_AMBIENT_LEVEL_MULT
7
6
5
4
3
2
1
0
sysrange__max_ambient_level_mult
R/W
Address:
0x02C
Type:
R/W
Reset:
0xA0, register default overwritten at boot-up by NVM contents.
Description:
[7:0]
6.2.28
sysrange__max_ambient_level_mult: User input value to multiply return_signal_count for
AMB:signal ratio check. If amb counts > return_signal_count * mult then abandon
measurement due to high ambient (4.4 format).
SYSRANGE__RANGE_CHECK_ENABLES
0
R
R/W
R/W
R
R/W
R/W
Address:
0x02D
Type:
R/W
Reset:
0x11, register default overwritten at boot-up by NVM contents.
Description:
54/73
1
sysrange__early_convergence_enable
2
sysrange__range_ignore_enable
3
0
4
0
5
sysrange__signal_to_noise_enable
6
RESERVED
7
[4]
sysrange__signal_to_noise_enable: Measurement enable/disable
[1]
sysrange__range_ignore_enable: Measurement enable/disable
[0]
sysrange__early_convergence_enable: Measurement enable/disable
DocID024986 Rev 14
VL6180
SYSRANGE__VHV_RECALIBRATE
Address:
0x02E
Type:
R/W
Reset:
0x0
5
4
3
2
1
0
sysrange__vhv_recalibrate
6
sysrange__vhv_status
7
RESERVED
6.2.29
Device registers
R
R/W
R/W
Description:
[1]
sysrange__vhv_status: FW controlled status bit showing when FW has completed auto-vhv
process.
0: FW has finished autoVHV operation
1: During autoVHV operation
[0]
sysrange__vhv_recalibrate: User-Controlled enable bit to force FW to carry out recalibration of
the VHV setting for sensor array. FW clears bit after operation carried out.
0: Disabled
1: Manual trigger for VHV recalibration. Can only be called when ranging is in STOP mode
6.2.30
SYSRANGE__VHV_REPEAT_RATE
7
6
5
4
3
2
1
0
sysrange__vhv_repeate_rate
R/W
Address:
0x031
Type:
R/W
Reset:
0x0
Description:
[7:0]
sysrange__vhv_repeate_rate: User entered repeat rate of auto VHV task (0 = off, 255 = after
every 255 measurements)
DocID024986 Rev 14
55/73
69
Device registers
3
2
1
0
result__range_max_threshold_hit
result__range_measurement_ready
result__range_device_ready
7
result__range_min_threshold_hit
RESULT__RANGE_STATUS
result__range_error_code
6.2.31
VL6180
6
5
R
R
R
R
R
Address:
0x04D
Type:
R
Reset:
0x1
4
Description:
[7:4]
56/73
result__range_error_code: Specific error codes
0000: No error
0001: VCSEL Continuity Test
0010: VCSEL Watchdog Test
0011: VCSEL Watchdog
0100: PLL1 Lock
0101: PLL2 Lock
0110: Early Convergence Estimate
0111: Max Convergence
1000: No Target Ignore
1001: Not used
1010: Not used
1011: Max Signal To Noise Ratio
1100: Raw Ranging Algo Underflow
1101: Raw Ranging Algo Overflow
1110: Ranging Algo Underflow
1111: Ranging Algo Overflow
[3]
result__range_min_threshold_hit: Legacy register - DO NOT USE
Use instead 6.2.32: RESULT__INTERRUPT_STATUS_GPIO.
[2]
result__range_max_threshold_hit: Legacy register - DO NOT USE
Use instead 6.2.32: RESULT__INTERRUPT_STATUS_GPIO.
[1]
result__range_measurement_ready: Legacy register - DO NOT USE
Use instead 6.2.32: RESULT__INTERRUPT_STATUS_GPIO.
[0]
result__range_device_ready: Device Ready. When set to 1, indicates the device mode and
configuration can be changed and a new start command will be accepted. When 0, indicates
the device is busy. Any new start commands will be ignored until device is ready. (RO).
DocID024986 Rev 14
VL6180
6.2.32
Device registers
RESULT__INTERRUPT_STATUS_GPIO
7
6
5
4
3
2
1
0
result_int_error_gpio
RESERVED
result_int_range_gpio
R
R
R
Address:
0x04F
Type:
R
Reset:
0x0
Description:
[7:6]
result_int_error_gpio: Interrupt bits for Error:
0: No error reported
1: Laser Safety Error
2: PLL error (either PLL1 or PLL2)
[2:0]
result_int_range_gpio: Interrupt bits for Range:
0: No threshold events reported
1: Level Low threshold event
2: Level High threshold event
3: Out Of Window threshold event
4: New Sample Ready threshold event
6.2.33
RESULT__HISTORY_BUFFER_x
15
14
13
12
11
10
9
8
7
6
RESULT__HISTOR
Y_BUFFER_0
result__history_buffer_0
RESULT__HISTOR
Y_BUFFER_1
result__history_buffer_1
RESULT__HISTOR
Y_BUFFER_2
result__history_buffer_2
RESULT__HISTOR
Y_BUFFER_3
result__history_buffer_3
RESULT__HISTOR
Y_BUFFER_4
result__history_buffer_4
RESULT__HISTOR
Y_BUFFER_5
result__history_buffer_5
RESULT__HISTOR
Y_BUFFER_6
result__history_buffer_6
RESULT__HISTOR
Y_BUFFER_7
result__history_buffer_7
5
4
3
2
1
0
R
Address:
0x052 + x * 0x2 (x=0 to 7)
Type:
R
Reset:
0x0
Description:
See also 6.2.11: SYSTEM__HISTORY_CTRL
DocID024986 Rev 14
57/73
69
Device registers
VL6180
RESULT__HISTOR
result__history_buffer_0: Range result value. 
Y_BUFFER_0:
Range mode; Bits[15:8] range_val_latest; Bits[7:0] range_val_d1;
[15:0]
RESULT__HISTOR
result__history_buffer_1: Range result value. 
Y_BUFFER_1:
Range mode; Bits[15:8] range_val_d2; Bits[7:0] range_val_d3;
[15:0]
RESULT__HISTOR
result__history_buffer_2: Range result value. 
Y_BUFFER_2:
Range mode; Bits[15:8] range_val_d4; Bits[7:0] range_val_d5;
[15:0]
RESULT__HISTOR
result__history_buffer_3: Range result value. 
Y_BUFFER_3:
Range mode; Bits[15:8] range_val_d6; Bits[7:0] range_val_d7;
[15:0]
RESULT__HISTOR
result__history_buffer_4: Range result value. 
Y_BUFFER_4:
Range mode; Bits[15:8] range_val_d8; Bits[7:0] range_val_d9;
[15:0]
RESULT__HISTOR
result__history_buffer_5: Range result value. 
Y_BUFFER_5:
Range mode; Bits[15:8] range_val_d10; Bits[7:0] range_val_d11;
[15:0]
RESULT__HISTOR
result__history_buffer_6: Range result value. 
Y_BUFFER_6:
Range mode; Bits[15:8] range_val_d12; Bits[7:0] range_val_d13;
[15:0]
RESULT__HISTOR
result__history_buffer_7: Range result value. 
Y_BUFFER_7:
Range mode; Bits[15:8] range_val_d14; Bits[7:0] range_val_d15;
[15:0]
6.2.34
RESULT__RANGE_VAL
7
6
5
4
3
2
1
0
result__range_val
R
Address:
0x062
Type:
R
Reset:
0x0
Description:
[7:0]
6.2.35
7
result__range_val: Final range result value presented to the user for use. Unit is in mm.
RESULT__RANGE_RAW
6
5
4
3
result__range_raw
R
Address:
0x064
Type:
R
58/73
DocID024986 Rev 14
2
1
0
VL6180
Device registers
Reset:
0x0
Description:
[7:0]
6.2.36
15
result__range_raw: Raw Range result value with offset applied (no cross-talk compensation
applied).
RESULT__RANGE_RETURN_RATE
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
result__range_return_rate
R
Address:
0x066
Type:
R
Reset:
0x0
Description:
[15:0]
result__range_return_rate: sensor count rate of signal returns correlated to IR emitter.
Computed from RETURN_SIGNAL_COUNT / RETURN_CONV_TIME. Mcps 9.7 format
DocID024986 Rev 14
59/73
69
Device registers
6.2.37
15
VL6180
RESULT__RANGE_REFERENCE_RATE
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
result__range_reference_rate
R
Address:
0x068
Type:
R
Reset:
0x0
Description:
[15:0]
6.2.38
result__range_reference_rate: sensor count rate of reference signal returns. Computed from
REFERENCE_SIGNAL_COUNT / RETURN_CONV_TIME. Mcps 9.7 format
Note: Both arrays converge at the same time, so using the return array convergence time is
correct.
RESULT__RANGE_RETURN_SIGNAL_COUNT
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
result__range_return_signal_count
R
Address:
0x06C
Type:
R
Reset:
0x0
Description:
[31:0]
60/73
result__range_return_signal_count: sensor count output value attributed to signal correlated to
IR emitter on the Return array.
DocID024986 Rev 14
VL6180
6.2.39
Device registers
RESULT__RANGE_REFERENCE_SIGNAL_COUNT
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
2
1
0
result__range_reference_signal_count
R
Address:
0x070
Type:
R
Reset:
0x0
Description:
[31:0]
6.2.40
result__range_reference_signal_count: sensor count output value attributed to signal
correlated to IR emitter on the Reference array.
RESULT__RANGE_RETURN_AMB_COUNT
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
result__range_return_amb_count
R
Address:
0x074
Type:
R
Reset:
0x0
Description:
[31:0]
6.2.41
result__range_return_amb_count: sensor count output value attributed to uncorrelated ambient
signal on the Return array. Must be multiplied by 6 if used to calculate the ambient to signal
threshold.
RESULT__RANGE_REFERENCE_AMB_COUNT
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
result__range_reference_amb_count
R
Address:
0x078
Type:
R
Reset:
0x0
Description:
[31:0]
result__range_reference_amb_count: sensor count output value attributed to uncorrelated
ambient signal on the Reference array.
DocID024986 Rev 14
61/73
69
Device registers
6.2.42
VL6180
RESULT__RANGE_RETURN_CONV_TIME
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
result__range_return_conv_time
R
Address:
0x07C
Type:
R
Reset:
0x0
Description:
[31:0]
6.2.43
result__range_return_conv_time: sensor count output value attributed to signal on the Return
array.
RESULT__RANGE_REFERENCE_CONV_TIME
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
result__range_reference_conv_time
R
Address:
0x080
Type:
R
Reset:
0x0
Description:
[31:0]
6.2.44
result__range_reference_conv_time: sensor count output value attributed to signal on the
Reference array.
READOUT__AVERAGING_SAMPLE_PERIOD
7
6
5
4
3
2
1
0
readout__averaging_sample_period
R/W
Address:
0x10A
Type:
R/W
Reset:
0x30
Description:
[7:0]
62/73
readout__averaging_sample_period: The internal readout averaging sample period can be
adjusted from 0 to 255. Increasing the sampling period decreases noise but also reduces the
effective max convergence time and increases power consumption:
Effective max convergence time = max convergence time - readout averaging period (see
Section 2.6: Range timing). Each unit sample period corresponds to around 64.5 µs additional
processing time. The recommended setting is 48 which equates to around 4.3 ms.
DocID024986 Rev 14
VL6180
FIRMWARE__BOOTUP
6
Address:
0x119
Type:
R/W
Reset:
0x1
5
4
3
2
1
0
firmware__bootup
7
RESERVED
6.2.45
Device registers
R
R/W
Description:
[0]
6.2.46
7
firmware__bootup: FW must set bit once initial boot has been completed.
I2C_SLAVE__DEVICE_ADDRESS
6
5
4
3
RESERVED
super_i2c_slave__device_address
R
R/W
Address:
0x212
Type:
R/W
Reset:
0x29
[6:0]
2
1
0
super_i2c_slave__device_address: User programmable I2C address (7-bit). Device address
can be re-designated after power-up.
DocID024986 Rev 14
63/73
69
64/73
DocID024986 Rev 14
F
E
D
C
B
3267,215(7851
$3(5785(
COSMETIC
CIRCLE
2
“
VENT ONLY
3
1
Linear
0 Place Decimals 0
±0.05
1 Place Decimals 0.0 ±0.05
2 Place Decimals 0.00 ±0.05
Angular
±0.25 degrees
+0.05
Diameter
Position
0.10
Surface Finish 1.6 microns
Tolerances, unless otherwise stated
2
3
Interpret drawing per BS8888,
3RD Angle Projection
127(6
',0(16,2160$5.('7+86$5(72%(86('
$6,163(&7,21',0(16,216
“
Finish
-
Material
-
/,*+7(0,66,21
$3(5785(
4
5
'(6&5,37,21
,1,7,$/5(/($6(
6
5(9,6,216
$
7
5(9
8570588
Part No.
18 AUG 14
Date
7
'$7(
Do Not Scale
8
VL6180V1NR/1
2
25:1
Scale
Sheet
VL6180 BABYBEAR NAH
MODULE OUTLINE DRAWING 1 OF
Title
8
SEE SHEET 2
STMicroelectronics
Imaging Division
Drawn
All dimensions
DAVID MCARDLE in mm
AREA RESERVED FOR
PART MARKING
“
6
F
E
D
C
B
A
7
“
A
1
Outline drawing
VL6180
Outline drawing
Figure 29. Outline drawing - module - VL6180V1NR/1 - (page 1/2)
DocID024986 Rev 14
1
Linear
0 Place Decimals 0
±0.05
1 Place Decimals 0.0 ±0.05
2 Place Decimals 0.00 ±0.05
Angular
±0.25 degrees
Diameter
+0.05
Position
0.10
Surface Finish 1.6 microns
Tolerances, unless otherwise stated
3$'1R )81&7,21
*3,2
1&
1&
*3,2
6&/
6'$
E
1&
$9''B9&6(/
$966B9&6(/
$9''
1&
*1'
F
2
3
4
Finish
-
Material
-
&21($3(;
PROXIMITY SENSOR
VIEW CONE
“
PIN INDICATOR
,1326
“
Interpret drawing per BS8888,
3RD Angle Projection
TOLERANCE 0.03 APPLIES
UNLESS OTHERWISE STATED
D &211(&7,217$%/(
C
B
,1326
3
2
A
1
5
6
6
8570588
Part No.
18 AUG 14
Date
Do Not Scale
&21($3(;
VL6180V1NR/1
8
VL6180 BABYBEAR NAH
MODULE OUTLINE DRAWING
Title
STMicroelectronics
Imaging Division
7
8
A
2 OF 2
Sheet
25:1
Scale
REV
PROXIMITY SENSOR
ILLUMINATION CONE
Drawn
All dimensions
DAVID MCARDLE in mm
ƒ
,1326
7
F
E
D
C
B
A
VL6180
Outline drawing
Figure 30. Outline drawing - module - VL6180V1NR/1 - (page 2/2)
65/73
69
Laser safety considerations
8
VL6180
Laser safety considerations
The VL6180 contains a laser emitter and corresponding drive circuitry. The laser output is
designed to remain within Class 1 laser safety limits under all reasonably foreseeable
conditions including single faults in compliance with IEC 60825-1:2007. The laser output will
remain within Class 1 limits as long as the STMicroelectronics recommended device
settings are used and the operating conditions specified in this datasheet are respected.
The laser output power must not be increased by any means and no optics should be used
with the intention of focusing the laser beam.
Figure 31. Class 1 laser product label
8.1
Compliance
Complies with 21 CFR 1040.10 and 1040.11 except for deviations pursuant to Laser Notice
No.50, dated June 24, 2007.
66/73
DocID024986 Rev 14
VL6180
9
Ordering information
Ordering information
VL6180 is currently available in the following format. More detailed information is available
on request.
Table 26. Delivery format
Order code
VL6180V1NR/1
9.1
Description
Tape and reel (5000 units in a reel).
Traceability and identification
Latest ROM revision can be identified as follows:
0x002 IDENTIFICATION__MODEL_REV_MINOR = 3
The minimum information required for traceability is the content of the following registers:
0x006 - IDENTIFICATION__DATE_HI
0x007 - IDENTIFICATION__DATE_LO
0x008 - IDENTIFICATION__TIME (16-bit)
0x00A - IDENTIFICATION__CODE
With this information, the module can be uniquely identified.
Preferably, all the IDENTIFICATION register contents should be provided for traceability.
9.2
Part marking
Devices are marked on the underside as shown below. 1st line is the product ID. 2nd line is
the manufacturing info. (circled in green), where the 1st four letters are the lot ID and the
last 3 digits are the year + week number. Here: 338 is 2013 wk38. The final letter, circled in
red, is the ROM revision (‘E’).
Figure 32. Part marking
DocID024986 Rev 14
67/73
69
Ordering information
9.3
VL6180
Packaging
The VL6180 is available in tape and reel packaging as shown in Figure 33. All dimensions
are in mm.
Figure 33. Tape and reel packaging
3R
'R
3
%
(
)
%R
ƒ
:
7
$
$
%
.R
3
'
6(&7,21%%
$R
6(&7,21$$
%R
.R
$R
9.3.1
(
86(5)(('
',5(&7,21
)
3R
3
3
'R
7
:
Package labeling
The labeling on the packing carton is shown in Figure 34. The latest ROM revision is
indicated alongside the order code (shaded green) and also after the product marking
(shaded pink).
Figure 34. Package labeling
9/9[15
9/9[15/&
1RWH[LQW\SHLVHTXDOWRRU
68/73
DocID024986 Rev 14
VL6180
9.4
Ordering information
Storage
The VL6180 is a MSL 3 package.
Table 27. Storage conditions
Floor Life (out of bag) at Factory
Level
3
Ambient <30oC/60% RH
1 Week
After this limit, dry bake to be done; 6 hours at 85oC.
9.5
ROHS Compliance
The VL6180 is Ecopack2 compliant as per ST definition.
Devices which are ROHS compliant even with use of ROHS exemption(s) and free of
Halogenated flame retardant are named ECOPACK2 devices with the following definition:

ROHS compliant even with use of ROHS exemption(s)

500 ppm maximum of Antimony as oxide or organic compound in each organic
assembly material (glue, substrate, mod compounds, housing...). Antimony in ceramic
parts, in glass and in solder alloy is not restricted.

900 ppm maximum Bromine + Chlorine in each organic assembly material (glue,
substrate, mold compounds, housing...)
These values are referring to maximum total content not to extractable ions content.
Purchasing specification of assembly materials can impose lower values for technical
reasons.
ECOPACK2 devices are of course fully compliant to ST banned and declarable substances
specification and for example cannot contain red Phosphorus flame retardant.
DocID024986 Rev 14
69/73
69
ECOPACK®
10
VL6180
ECOPACK®
In order to meet environmental requirements, ST offers these devices in different grades of
ECOPACK® packages, depending on their level of environmental compliance. ECOPACK®
specifications, grade definitions and product status are available at: www.st.com.
ECOPACK® is an ST trademark.
70/73
DocID024986 Rev 14
VL6180
11
Revision history
Revision history
Table 28. Document revision history
Date
Revision
23-Sep-2013
1
Changes
Initial release.
1.1
General update for latest ROM revision:
Section 1.1: Technical specification updated
Section 1.4: Typical application schematic updated
Section 1.5: Recommended solder pad dimensions updated
Notes added to Figure 5.: Recommended reflow profile
Section 4: I2C control interface updated.
Section 5.1: Absolute maximum ratings added
Section 5.2: Normal operating conditions extended
Section 4: I2C control interface added
Revised outline drawing added to Section 7: Outline drawing
Class 1 laser product label added to Section Figure 29.: Outline
drawing - module - VL6180V1NR/1 - (page 1/2)
Section 8.1: Compliance added information relating to device
marking and package labeling
20-Feb-2014
1.2
Section 6.2.32: RESULT__INTERRUPT_STATUS_GPIO
corrected error codes.
Section 4: I2C control interface updated to show ranging beyond
100mm.
Section 6.2.20: SYSRANGE__MAX_CONVERGENCE_TIME
updated.
28-Feb-2014
1.3
Section Figure 21.: Typical ranging performance updated to add
the concept of detection rate..
30-Jan-2014
24-Mar-2014
2
Update to the following sections:
Section 1.5: Recommended solder pad dimensions
Section 5.2: Normal operating conditions
Section 5.3: Electrical characteristics
Section 3.1: Proximity ranging (0 to 100mm)
Section Figure 21.: Typical ranging performance
Added 11: Revision history and Appendix B: Extended range
settings
10-Jun-2014
3
Added outline drawing of 2nd module cap supplier in Section 7:
Outline drawing
Added Section 8.1: Compliance
12-Jun-2014
4
Update with single outline drawing
7-Jul-2014
5
Updates:
Figure 32: Part marking
Figure 34: Package labeling
6
Updates:
Section 2: Functional description
Section 6: Device registers
Typical ranging performance graph updated.
Delivery & manufacturing info updated.
20-Aug-2014
DocID024986 Rev 14
71/73
72
Revision history
VL6180
Table 28. Document revision history (continued)
Date
Changes
6-Nov-2014
7
Add:
- Figure 29 and Figure 30
- VL6180V1NR/1 ordering code in Table 26.
Modify title of Figure 29 and Figure 29
Update package figure on first page and Figure 34
11-Dec-2014
8
Updates:
– Figure 20: Cross-talk vs air gap
9
Add
– Footnote below Table 1: Technical specification
– Section 2.2: System state diagram
Update:
– Section 2.15.4: Cross-talk calibration procedure
– Section 6.2.4: IDENTIFICATION__MODULE_REV_MAJOR
– Section 6.2.5: IDENTIFICATION__MODULE_REV_MINOR
Move
– Figure 21: Typical ranging performance to Section 3.1: Proximity
ranging (0 to 100mm)
15-Oct-2015
10
Updates:
– API integrated into datasheet
– Section 2.14.3: Current distribution
– Section 2.15.3: Offset calibration procedure
– Section 2.15.4: Cross-talk calibration procedure
Add:
– Section 2.11: Wrap Around Filter
– Section 2.12: Scaling
– Section 2.13: Maximum ranging distance (Dmax)
– Section 4.1: I2C interface - timing characteristics
11-May-2016
11
Update:
– Section 2.15.6: Cross-talk vs air gap, keep only one figure.
13-Mar-2017
12
Remove VL6180V0NR/1 device version
28-Feb-2020
13
Removed confidential watermark
xx-Jul-2021
14
Updated cover image
17-Dec-2014
72/73
Revision
DocID024986 Rev 14
VL6180
IMPORTANT NOTICE – PLEASE READ CAREFULLY
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and
improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on
ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order
acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or
the design of Purchasers’ products.
No license, express or implied, to any intellectual property right is granted by ST herein.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.
ST and the ST logo are trademarks of ST. For additional information about ST trademarks, please refer to www.st.com/trademarks. All other
product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.
© 2021 STMicroelectronics – All rights reserved
DocID024986 Rev 14
73/73
73
Related documents
Download