User manual
DocID026171 Rev 6 17/79
VL6180X Functional description
78
2.4.1 Single-shot range/ALS operation
A single-shot range or ALS measurement is performed as follows:
• Write 0x01 to the SYSRANGE__START register{0x18}.
• When the measurement is completed, bit 2 of
RESULT__INTERRUPT_STATUS_GPIO{0x4F} will be set.
• Similarly, a single-shot ALS measurement is initiated by writing 0x01 to the
SYSALS__START register{0x38}.
• When the measurement is completed, bit 5 of
RESULT__INTERRUPT_STATUS_GPIO{0x4F} will be set.
Note that in both cases the start bit, (bit 0) auto-clears.
• The range result is read from RESULT__RANGE_VAL{0x62}.
• The ALS result is read from RESULT__ALS_VAL{0x50}.
• Interrupt status flags are cleared by writing a ‘1’ to the appropriate bit of
SYSTEM__INTERRUPT_CLEAR{0x15}.
• Bit 0 of RESULT__RANGE_STATUS{0x4D} and RESULT__ALS_STATUS{0x4E}
indicate when either sensor is ready for the next operation.
• Error codes are indicated in bits [7:4] of the status registers
A detailed description of all the user accessible registers is given in Section 6: Device
registers.
Note: Single-shot ALS and range operations cannot be performed simultaneously. Only one of
these operations should be performed at any one time and once started must be allowed to
complete before another measurement is started. This is because any current operation will
be aborted if another is started.
2.4.2 Continuous range/ALS operation
A continuous range or ALS measurement is performed as follows:
• Write 0x03 to the SYSRANGE__START or SYSALS__START registers.
In both cases, bit 1 of the register sets the mode to continuous
• When a measurement is completed either bit 2 or bit 5 of
RESULT__INTERRUPT_STATUS_GPIO{0x4F} will be set.
• Results are read from RESULT__RANGE_VAL{0x62} or
RESULT__ALS_VAL{0x50}.
• Interrupt status flags are cleared by writing a ‘1’ to the appropriate bit of
SYSTEM__INTERRUPT_CLEAR{0x15}.
• Thereafter, measurements will be scheduled according to the relevant inter-
measurement period (see SYSRANGE__INTERMEASUREMENT_PERIOD{0x1B} or
SYSALS__INTERMEASUREMENT_PERIOD{0X3E}).
• Continuous mode operation can be stopped by writing 0 to either START register.
Continuous operation will be halted immediately and any pending measurement will be
aborted.
Note: It is not recommended to run range and ALS continuous modes simultaneously (i.e.
asynchronously). Instead, mode 7 ‘interleaved mode’ in
Table 5. should be used. In
‘interleaved mode’, scheduled range and ALS measurements operate off a single timer with
a range measurement proceeding immediately after every ALS measurement.