ST TOF Chip vl6180
ST TOF Chip vl6180
Applications
Laser Assisted Auto Focus
Smartphones/portable touchscreen devices
Tablet/laptop/gaming devices
Domestic appliances/industrial devices
Description
The VL6180 is the latest product based on ST’s
patented FlightSense™ technology. This is a
Features ground-breaking technology allowing absolute
distance to be measured independent of target
Two-in-one smart optical module reflectance. Instead of estimating the distance by
– VCSEL light source measuring the amount of light reflected back from
– Proximity sensor the object (which is significantly influenced by
color and surface), the VL6180 precisely
Fast, accurate distance ranging measures the time the light takes to travel to the
– Measures absolute range from 0 to 62 cm nearest object and reflect back to the sensor
max (depending on conditions) (Time-of-Flight).
– Independent of object reflectance Combining an IR emitter and a range sensor in a
– Ambient light rejection two-in-one ready-to-use reflowable package, the
– Cross-talk compensation for cover glass VL6180 is easy to integrate and saves the end-
product maker long and costly optical and
Gesture recognition mechanical design optimizations.
– Distance and signal level can be used by The module is designed for low power operation.
host system to implement gesture Ranging measurements can be automatically
recognition performed at user defined intervals. Multiple
– Demo systems (implemented on Android threshold and interrupt schemes are supported to
smartphone platform) available. minimize host operations.
Easy integration Host control and result reading is performed using
an I2C interface. Optional additional functions,
– Single reflowable component
such as measurement ready and threshold
– No additional optics interrupts, are provided by two programmable
– Single power supply GPIO pins.
– I2C interface for device control and data A complete API is also associated with the device
– Provided with a documented C portable which consists of a set of C functions controlling
API (Application Programming Interface) the VL6180 to enable fast development of end-
user applications. This API is structured in a way
Two programmable GPIO
that it can be compiled on any kind of platform
– Window and thresholding functions for through a well isolated platform layer (mainly for
ranging low level I2C access).
Contents
1 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
2 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
3 Ranging specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1 Proximity ranging (0 to 100mm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1 Max range vs. ambient light level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Extended range (>100mm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Extended range conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 Max range vs. ambient light level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5 Electrical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1 Absolute maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2 Normal operating conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3 Electrical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6 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
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
7 Outline drawing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9 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
List of tables
List of figures
1 Overview
9/VLOLFRQ
*3,2 $9''
5DQJLQJ
*3,2 $9''B9&6(/
0LFURFRQWUROOHU
6'$ *1'
190 5$0
,5HPLWWHU
*3,2 *1'
1& 1&
1& $9''
*3,2 $966B9&6(/
6&/ $9''B9&6(/
6'$ 1&
9RU9
9
9/
*3,2 *3,2 *1'
1& 1&
Note: Capacitors on AVDD and AVDD_VCSEL should be placed as close as possible to the
supply pads.
PP
PP
6DPHDVGHYLFHSDGGLPHQVLRQV
PP
Note: 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.
2 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.
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.
3RZHU2II
$9''21
$9''2))
*3,2
$9''21
*3,2
+DUGZDUH
VWDQGE\
*3,2
$9''2))
*3,2 0&8ERRW
6RIWZDUH
VWDQGE\
0RGH
5DQJHBVWDUW FRQWLQXRXV
VWDUW
GRQH VWRS
DXWR
5DQJH &RQWLQXRXV
PHDVXUHPHQW DXWR
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.
'W/KϭƚƌŝͲƐƚĂƚĞĚ͕ŽŶůLJŚŝŐŚŝĨƉƵůůͲƵƉĨŝƚƚĞĚ
2.4 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.
3RZHUXS
VGHOD\
9/[B
:DLW'HYLFH%RRWHGRU
PVGHOD\
6RIWZDUHVWDQGE\
9/[B,QLW'DWD
9/[B3UHSDUH
9/[B5DQJH3ROO
0HDVXUHPHQW
Wh s>ϲϭϴϬ
/ŶŝƚĂƚĂ;Ϳ͕WƌĞƉĂƌĞ;Ϳ
ZĂŶŐĞWŽůůDĞĂƐƵƌĞŵĞŶƚ;Ϳ ZĂŶŐŝŶŐ
Wh s>ϲϭϴϬ
/ŶŝƚĂƚĂ;Ϳ͕WƌĞƉĂƌĞ;Ϳ
ZĂŶŐĞ^Ğƚ/ŶƚĞƌDĞĂƐWĞƌŝŽĚ;Ϳ
^ĞƚƵƉ'W/Kϭ;Ϳ
ZĂŶŐĞŽŶĨŝŐ/ŶƚĞƌƌƵƉƚ;Ϳ
ZĂŶŐĞ^ƚĂƌƚŽŶƚŝŶƵŽƵƐDŽĚĞ;Ϳ
ZĂŶŐŝŶŐ
WhĐĂŶďĞŝĚůĞŽƌĚŽŝŶŐ
ŽƚŚĞƌƚĂƐŬƐǁŚŝůĞǁĂŝƚŝŶŐ
ŽŶs>ϲϭϴϬŝŶƚĞƌƌƵƉƚ 'W/Kϭ/Ed
ZĂŶŐĞ'ĞƚDĞĂƐƵƌĞŵĞŶƚ;Ϳ
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.
VL6180x_RangeSetMaxConvergenceTime() 30
Total RANGE EXECUTION TIME 35
/ŶŝƚĂƚĂ;Ϳ͕WƌĞƉĂƌĞ;Ϳ
ZĂŶŐĞ^ƚĂƌƚ^ŝŶŐůĞ^ŚŽƚ;Ϳ
WhŵƵƐƚƌĞŐƵůĂƌůLJĐĂůů
ƚŚĞ
ZĂŶŐĞ'ĞƚDĞĂƐƵƌĞŵĞŶƚ/Ĩ ZĂŶŐŝŶŐ
ZĞĂĚLJĨƵŶĐƚŝŽŶƚŽĐŚĞĐŬ
ĨŽƌƌĂŶŐĞŵĞĂƐƵƌĞŵĞŶƚ
ZĂŶŐĞ'ĞƚDĞĂƐƵƌĞŵĞ
ZĂŶŐĞĂŶĚ
z^ Ŷƚ/ĨZĞĂĚLJ;Ϳ EK
ƐƚĂƚƵƐĚĂƚĂ
c. Default readout averaging period is calculated as follows: 1300 µs + (48 x 64.5 µs) = 4.3 ms
ZĞĂĚŽƵƚ
WƌĞͲĐĂů ZĂŶŐĞĐŽŶǀĞƌŐĞŶĐĞ
ĂǀĞƌĂŐŝŶŐ
ŽŶǀĞƌŐĞŶĐĞƚŝŵĞ
ϰ͘ ϯŵƐ
; ǀĂƌŝĂďůĞͿ
d. For proximity ranging, the convergence threshold is set to 10240. The convergence threshold register is not
accessible by the user.
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.
Note: 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.
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 wrap-
around 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.
Note: 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)
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.
ͬϭϰŵtƉĞĂŬƉŽǁĞƌ
2.15.2 Cross-talk
Cross-talk is defined as the signal return from the cover glass. The magnitude of the cross-
talk 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.
8. The new offset value should be stored on system and written to the VL6180 by using
VL6180x_SetOffsetCalibrationData() each time the device is reset.
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.
3 Ranging specification
Noise(1) - - 2.0 mm
Range offset error(2) - - 13 mm
(3)
Temperature dependent drift - 9 15 mm
Voltage dependent drift (4)
- 3 5 mm
Convergence time (5) - - 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
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 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.
The VL6180 is controlled over an I2C interface. The default I2C address is 0x29 (7-bit). This
section describes the I2C protocol.
SDA
MSB LSB
SCL
S 7 8 P
1 2 3 4 5 6 As/Am
Address or data byte
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.
MSBit LSBit
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.
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.
0x53 (read)
S ADDRESS[7:0] As DATA[7:0] 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.
0x53 (read)
S ADDRESS[7:0] As DATA[7:0] Am DATA[7:0] Am
VIH
SDA ... VIL
VIH
SCL
VIL
...
Note: All timing characteristics are measured with respect to VIL_MAX or VIH_MIN.
5 Electrical characteristics
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.
6 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.
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.
Address MSB
Address + 1 ..
Address + 2 ..
Address + 3 LSB
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] identification__model_id: Device model identification number. 0xB4 = VL6180
6.2.2 IDENTIFICATION__MODEL_REV_MAJOR
7 6 5 4 3 2 1 0
RESERVED identification__model_rev_major
R R/W
Address: 0x001
Type: R/W
Reset: 0x01
Description:
[2:0] identification__model_rev_major: Revision identifier of the Device for major change.
6.2.3 IDENTIFICATION__MODEL_REV_MINOR
7 6 5 4 3 2 1 0
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
6.2.4 IDENTIFICATION__MODULE_REV_MAJOR
7 6 5 4 3 2 1 0
RESERVED identification__module_rev_major
R R/W
Address: 0x003
Type: R/W
Reset: 0xXX, register default overwritten at boot-up by NVM contents.
Description:
[2:0] 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
6.2.5 IDENTIFICATION__MODULE_REV_MINOR
7 6 5 4 3 2 1 0
RESERVED identification__module_rev_minor
R R/W
Address: 0x004
Type: R/W
Reset: 0xXX
Description:
[2:0] 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
6.2.6 IDENTIFICATION__DATE_HI
7 6 5 4 3 2 1 0
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.
6.2.7 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.
6.2.8 IDENTIFICATION__TIME
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
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.
6.2.9 SYSTEM__MODE_GPIO0
7 6 5 4 3 2 1 0
system__gpio0_is_xshutdown
system__gpio0_polarity
system__gpio0_select
RESERVED
RESERVED
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] system__gpio0_select: Functional configuration options.
0000: OFF (Hi-Z)
1000: GPIO Interrupt output
[0] Reserved. Write 0.
6.2.10 SYSTEM__MODE_GPIO1
7 6 5 4 3 2 1 0
system__gpio1_polarity
system__gpio1_select
RESERVED
RESERVED
R R/W R/W R/W
Address: 0x011
Type: R/W
Reset: 0x20
Description:
[5] system__gpio1_polarity: Signal Polarity Selection.
0: Active-low
1: Active-high
[4:1] system__gpio1_select: Functional configuration options.
0000: OFF (Hi-Z)
1000: GPIO Interrupt output
[0] Reserved. Write 0.
6.2.11 SYSTEM__HISTORY_CTRL
7 6 5 4 3 2 1 0
system__history_buffer_enable
system__history_buffer_mode
system__history_buffer_clear
RESERVED
Address: 0x012
Type: R/W
Reset: 0x0
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
6.2.12 SYSTEM__INTERRUPT_CONFIG_GPIO
7 6 5 4 3 2 1 0
RESERVED RESERVED range_int_mode
R R/W R/W
Address: 0x014
Type: R/W
Reset: 0x0
Description:
[2:0] 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
6.2.13 SYSTEM__INTERRUPT_CLEAR
7 6 5 4 3 2 1 0
RESERVED int_clear_sig
R R/W
Address: 0x015
Type: R/W
Reset: 0x0
Description:
[2:0] 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.
6.2.14 SYSTEM__FRESH_OUT_OF_RESET
7 6 5 4 3 2 1 0
fresh_out_of_reset
RESERVED
R R/W
Address: 0x016
Type: R/W
Reset: 0x1
Description:
[0] 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
6.2.15 SYSTEM__GROUPED_PARAMETER_HOLD
7 6 5 4 3 2 1 0
grouped_parameter_hold
RESERVED
R R/W
Address: 0x017
Type: R/W
Reset: 0x0
Description:
[0] 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
6.2.16 SYSRANGE__START
7 6 5 4 3 2 1 0
sysrange__mode_select
sysrange__startstop
RESERVED
R R/W R/W
Address: 0x018
Type: R/W
Reset: 0x0
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] sysrange__thresh_high: High Threshold value for ranging comparison. Range 0-255mm.
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] sysrange__thresh_low: Low Threshold value for ranging comparison. Range 0-255mm.
6.2.19 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] sysrange__intermeasurement_period: Time delay between measurements in Ranging
continuous mode. Range 0-254 (0 = 10ms). Step size = 10ms.
6.2.20 SYSRANGE__MAX_CONVERGENCE_TIME
7 6 5 4 3 2 1 0
RESERVED sysrange__max_convergence_time
R R/W
Address: 0x01C
Type: R/W
Reset: 0x31
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.
6.2.21 SYSRANGE__CROSSTALK_COMPENSATION_RATE
15 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] sysrange__crosstalk_compensation_rate: User-controlled cross-talk compensation in Mcps
(9.7 format)
6.2.22 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] sysrange__crosstalk_valid_height: Minimum range value in mm to qualify for cross-talk
compensation.
6.2.23 SYSRANGE__EARLY_CONVERGENCE_ESTIMATE
15 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.
6.2.24 SYSRANGE__PART_TO_PART_RANGE_OFFSET
7 6 5 4 3 2 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] sysrange__part_to_part_range_offset: 2s complement.
6.2.25 SYSRANGE__RANGE_IGNORE_VALID_HEIGHT
7 6 5 4 3 2 1 0
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] 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.
6.2.26 SYSRANGE__RANGE_IGNORE_THRESHOLD
15 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.
6.2.27 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] 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).
6.2.28 SYSRANGE__RANGE_CHECK_ENABLES
7 6 5 4 3 2 1 0
sysrange__early_convergence_enable
sysrange__signal_to_noise_enable
sysrange__range_ignore_enable
RESERVED
Address: 0x02D
Type: R/W
Reset: 0x11, register default overwritten at boot-up by NVM contents.
Description:
[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
6.2.29 SYSRANGE__VHV_RECALIBRATE
7 6 5 4 3 2 1 0
sysrange__vhv_recalibrate
sysrange__vhv_status
RESERVED
R R/W R/W
Address: 0x02E
Type: R/W
Reset: 0x0
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)
6.2.31 RESULT__RANGE_STATUS
7 6 5 4 3 2 1 0
result__range_measurement_ready
result__range_max_threshold_hit
result__range_min_threshold_hit
result__range_device_ready
result__range_error_code
R R R R R
Address: 0x04D
Type: R
Reset: 0x1
Description:
[7:4] 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).
6.2.32 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 5 4 3 2 1 0
RESULT__HISTOR
result__history_buffer_0
Y_BUFFER_0
RESULT__HISTOR
result__history_buffer_1
Y_BUFFER_1
RESULT__HISTOR
result__history_buffer_2
Y_BUFFER_2
RESULT__HISTOR
result__history_buffer_3
Y_BUFFER_3
RESULT__HISTOR
result__history_buffer_4
Y_BUFFER_4
RESULT__HISTOR
result__history_buffer_5
Y_BUFFER_5
RESULT__HISTOR
result__history_buffer_6
Y_BUFFER_6
RESULT__HISTOR
result__history_buffer_7
Y_BUFFER_7
R
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] result__range_val: Final range result value presented to the user for use. Unit is in mm.
6.2.35 RESULT__RANGE_RAW
7 6 5 4 3 2 1 0
result__range_raw
R
Address: 0x064
Type: R
Reset: 0x0
Description:
[7:0] result__range_raw: Raw Range result value with offset applied (no cross-talk compensation
applied).
6.2.36 RESULT__RANGE_RETURN_RATE
15 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
6.2.37 RESULT__RANGE_REFERENCE_RATE
15 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] 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.
6.2.38 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] result__range_return_signal_count: sensor count output value attributed to signal correlated to
IR emitter on the Return array.
6.2.39 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
result__range_reference_signal_count
R
Address: 0x070
Type: R
Reset: 0x0
Description:
[31:0] result__range_reference_signal_count: sensor count output value attributed to signal
correlated to IR emitter on the Reference array.
6.2.40 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 2 1 0
result__range_return_amb_count
R
Address: 0x074
Type: R
Reset: 0x0
Description:
[31:0] 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.
6.2.41 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.
6.2.42 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] result__range_return_conv_time: sensor count output value attributed to signal on the Return
array.
6.2.43 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] result__range_reference_conv_time: sensor count output value attributed to signal on the
Reference array.
6.2.44 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] 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.
6.2.45 FIRMWARE__BOOTUP
7 6 5 4 3 2 1 0
firmware__bootup
RESERVED
R R/W
Address: 0x119
Type: R/W
Reset: 0x1
Description:
[0] firmware__bootup: FW must set bit once initial boot has been completed.
6.2.46 I2C_SLAVE__DEVICE_ADDRESS
7 6 5 4 3 2 1 0
RESERVED super_i2c_slave__device_address
R R/W
Address: 0x212
Type: R/W
Reset: 0x29
64/73
1 2 3 4 5 6 7 8
Outline drawing
5(9,6,216
$ ,1,7,$/5(/($6(
A A
COSMETIC
B CIRCLE B
Outline drawing
C C
DocID024986 Rev 14
D D
1 2 3 4 5 6 7 8
REV A
A ,1326 A
,1326
B PIN INDICATOR B
C C
TOLERANCE 0.03 APPLIES
UNLESS OTHERWISE STATED
DocID024986 Rev 14
,1326
D &211(&7,217$%/( D
3$'1R )81&7,21 PROXIMITY SENSOR
*3,2 ILLUMINATION CONE
1& PROXIMITY SENSOR
VIEW CONE
1&
*3,2
6&/ &21($3(; &21($3(;
6'$
E 1& E
$9''B9&6(/
$966B9&6(/
$9''
1&
*1'
Material
Figure 30. Outline drawing - module - VL6180V1NR/1 - (page 2/2)
65/73
Outline drawing
1 2 3 6 7 8
69
Laser safety considerations VL6180
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.
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.
9 Ordering information
VL6180 is currently available in the following format. More detailed information is available
on request.
9.3 Packaging
The VL6180 is available in tape and reel packaging as shown in Figure 33. All dimensions
are in mm.
'R 3R
% 3
7
(
)
:
$ $
%R
.R % 3
'
6(&7,21%%
$R
6(&7,21$$ 86(5)(('
',5(&7,21
$R
%R
.R
(
)
3R
3
3
'R
7
:
9/9[15
9/9[15/&
1RWH[LQW\SHLVHTXDOWRRU
9.4 Storage
The VL6180 is a MSL 3 package.
3 1 Week
10 ECOPACK®
11 Revision history
Add:
- Figure 29 and Figure 30
6-Nov-2014 7 - VL6180V1NR/1 ordering code in Table 26.
Modify title of Figure 29 and Figure 29
Update package figure on first page and Figure 34
Updates:
11-Dec-2014 8
– Figure 20: Cross-talk vs air gap
Add
– Footnote below Table 1: Technical specification
– Section 2.2: System state diagram
Update:
– Section 2.15.4: Cross-talk calibration procedure
17-Dec-2014 9
– 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)
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
15-Oct-2015 10
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
Update:
11-May-2016 11
– 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
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.
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.