FastArduino v1.10
C++ library to build fast but small Arduino/AVR projects
Loading...
Searching...
No Matches
vl53l0x_registers.h
1// Copyright 2016-2023 Jean-Francois Poilpret
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
16
17#ifndef VL53L0X_REGISTERS_H
18#define VL53L0X_REGISTERS_H
19
20#include <stdint.h>
21
22namespace devices::vl53l0x
23{
24 // Some registers in this list are "extended", which means that accessing them
25 // requires special I2C commands: access must be surrounded with 0xFF-0x01/0xFF-0x00
26 // Such registers are commented herebelow.
27 enum class Register : uint8_t
28 {
29 SYSRANGE_START = 0x00,
30 SYSTEM_SEQUENCE_CONFIG = 0x01,
31 SYSTEM_INTERMEASUREMENT_PERIOD = 0x04,
32 SYSTEM_RANGE_CONFIG = 0x09,
33 SYSTEM_INTERRUPT_CONFIG_GPIO = 0x0A,
34 SYSTEM_INTERRUPT_CLEAR = 0x0B,
35 SYSTEM_THRESH_HIGH = 0x0C,
36 SYSTEM_THRESH_LOW = 0x0E,
37 RESULT_INTERRUPT_STATUS = 0x13,
38 RESULT_RANGE_STATUS = 0x14,
39 RESULT_EFFECTIVE_SPAD_RTN_COUNT = 0x16,
40 RESULT_PEAK_SIGNAL_COUNT_RATE_RTN_MCPS = 0x1A,
41 RESULT_AMBIENT_RATE_RTN_MCPS = 0x1C,
42 RESULT_RANGE_MILLIMETER = 0x1E,
43 CROSSTALK_COMPENSATION_PEAK_RATE_MCPS = 0x20,
44 PRE_RANGE_CONFIG_MIN_SNR = 0x27,
45 ALGO_PART_TO_PART_RANGE_OFFSET_MM = 0x28,
46 ALGO_PHASECAL_LIM = 0x30, // Extended register index
47 ALGO_PHASECAL_CONFIG_TIMEOUT = 0x30,
48 GLOBAL_CONFIG_VCSEL_WIDTH = 0x32,
49 HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT = 0x33,
50 FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT = 0x44,
51 MSRC_CONFIG_TIMEOUT_MACROP = 0x46,
52 FINAL_RANGE_CONFIG_VALID_PHASE_LOW = 0x47,
53 FINAL_RANGE_CONFIG_VALID_PHASE_HIGH = 0x48,
54 DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD = 0x4E, // Extended register index
55 DYNAMIC_SPAD_REF_EN_START_OFFSET = 0x4F, // Extended register index
56 PRE_RANGE_CONFIG_VCSEL_PERIOD = 0x50,
57 PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI = 0x51,
58 PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO = 0x52,
59 HISTOGRAM_CONFIG_READOUT_CTRL = 0x55,
60 PRE_RANGE_CONFIG_VALID_PHASE_LOW = 0x56,
61 PRE_RANGE_CONFIG_VALID_PHASE_HIGH = 0x57,
62 MSRC_CONFIG_CONTROL = 0x60,
63 PRE_RANGE_CONFIG_SIGMA_THRESH_HI = 0x61,
64 PRE_RANGE_CONFIG_SIGMA_THRESH_LO = 0x62,
65 PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT = 0x64,
66 FINAL_RANGE_CONFIG_MIN_SNR = 0x67,
67 FINAL_RANGE_CONFIG_VCSEL_PERIOD = 0x70,
68 FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI = 0x71,
69 FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO = 0x72,
70 POWER_MANAGEMENT = 0x80,
71 SYSTEM_HISTOGRAM_BIN = 0x81,
72 DEVICE_STROBE = 0x83,
73 GPIO_HV_MUX_ACTIVE_HIGH = 0x84,
74 SYSTEM_CONFIG_I2C_MODE = 0x88,
75 VHV_CONFIG_PAD_SCL_SDA_EXTSUP_HV = 0x89,
76 I2C_SLAVE_DEVICE_ADDRESS = 0x8A,
77 SYSTEM_STOP_VARIABLE = 0x91,
78 SPAD_INFO = 0x92,
79 GLOBAL_CONFIG_SPAD_ENABLES_REF_0 = 0xB0,
80 GLOBAL_CONFIG_SPAD_ENABLES_REF_1 = 0xB1,
81 GLOBAL_CONFIG_SPAD_ENABLES_REF_2 = 0xB2,
82 GLOBAL_CONFIG_SPAD_ENABLES_REF_3 = 0xB3,
83 GLOBAL_CONFIG_SPAD_ENABLES_REF_4 = 0xB4,
84 GLOBAL_CONFIG_SPAD_ENABLES_REF_5 = 0xB5,
85 GLOBAL_CONFIG_REF_EN_START_SELECT = 0xB6,
86 RESULT_PEAK_SIGNAL_RATE_REF = 0xB6, // Extended register index
87 RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN = 0xBC,
88 SOFT_RESET_GO2_SOFT_RESET_N = 0xBF,
89 RESULT_CORE_RANGING_TOTAL_EVENTS_RTN = 0xC0, // Unused in original STM API (maybe extended register)
90 IDENTIFICATION_MODEL_ID = 0xC0,
91 IDENTIFICATION_REVISION_ID = 0xC2,
92 RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF = 0xD0,
93 RESULT_CORE_RANGING_TOTAL_EVENTS_REF = 0xD4,
94 OSC_CALIBRATE_VAL = 0xF8,
95 };
96}
97
98#endif /* VL53L0X_REGISTERS_H */
Defines API for VL53L0X Time-of-Flight ranging sensor chip usage.
Definition: vl53l0x.h:60