Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: VL53L3ExpansionBoard
vl53lx_def.h
00001 00002 #ifndef __VL53LX_DEF_H 00003 #define __VL53LX_DEF_H 00004 00005 #include <stdint.h> 00006 #include <stdint.h> 00007 #include <stddef.h> 00008 #include <string.h> 00009 #include <stdio.h> 00010 #include <stdlib.h> 00011 00012 #include "vl53L3_I2c.h" 00013 00014 #ifdef __cplusplus 00015 extern "C" 00016 { 00017 #endif 00018 00019 //define from vl53lx_register_map.h 00020 00021 #define VL53LX_SOFT_RESET 0x0000 00022 00023 #define VL53LX_I2C_SLAVE__DEVICE_ADDRESS 0x0001 00024 00025 #define VL53LX_ANA_CONFIG__VHV_REF_SEL_VDDPIX 0x0002 00026 00027 #define VL53LX_ANA_CONFIG__VHV_REF_SEL_VQUENCH 0x0003 00028 00029 #define VL53LX_ANA_CONFIG__REG_AVDD1V2_SEL 0x0004 00030 00031 #define VL53LX_ANA_CONFIG__FAST_OSC__TRIM 0x0005 00032 00033 #define VL53LX_OSC_MEASURED__FAST_OSC__FREQUENCY 0x0006 00034 00035 #define VL53LX_OSC_MEASURED__FAST_OSC__FREQUENCY_HI 0x0006 00036 00037 #define VL53LX_OSC_MEASURED__FAST_OSC__FREQUENCY_LO 0x0007 00038 00039 #define VL53LX_VHV_CONFIG__TIMEOUT_MACROP_LOOP_BOUND 0x0008 00040 00041 #define VL53LX_VHV_CONFIG__COUNT_THRESH 0x0009 00042 00043 #define VL53LX_VHV_CONFIG__OFFSET 0x000A 00044 00045 #define VL53LX_VHV_CONFIG__INIT 0x000B 00046 00047 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_REF_0 0x000D 00048 00049 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_REF_1 0x000E 00050 00051 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_REF_2 0x000F 00052 00053 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_REF_3 0x0010 00054 00055 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_REF_4 0x0011 00056 00057 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_REF_5 0x0012 00058 00059 #define VL53LX_GLOBAL_CONFIG__REF_EN_START_SELECT 0x0013 00060 00061 #define VL53LX_REF_SPAD_MAN__NUM_REQUESTED_REF_SPADS 0x0014 00062 00063 #define VL53LX_REF_SPAD_MAN__REF_LOCATION 0x0015 00064 00065 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS 0x0016 00066 00067 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS_HI 0x0016 00068 00069 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS_LO 0x0017 00070 00071 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS 0x0018 00072 00073 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS_HI 0x0018 00074 00075 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS_LO 0x0019 00076 00077 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS 0x001A 00078 00079 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS_HI 0x001A 00080 00081 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS_LO 0x001B 00082 00083 #define VL53LX_REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS 0x001C 00084 00085 #define VL53LX_REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS_HI 0x001C 00086 00087 #define VL53LX_REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS_LO 0x001D 00088 00089 #define VL53LX_ALGO__PART_TO_PART_RANGE_OFFSET_MM 0x001E 00090 00091 #define VL53LX_ALGO__PART_TO_PART_RANGE_OFFSET_MM_HI 0x001E 00092 00093 #define VL53LX_ALGO__PART_TO_PART_RANGE_OFFSET_MM_LO 0x001F 00094 00095 #define VL53LX_MM_CONFIG__INNER_OFFSET_MM 0x0020 00096 00097 #define VL53LX_MM_CONFIG__INNER_OFFSET_MM_HI 0x0020 00098 00099 #define VL53LX_MM_CONFIG__INNER_OFFSET_MM_LO 0x0021 00100 00101 #define VL53LX_MM_CONFIG__OUTER_OFFSET_MM 0x0022 00102 00103 #define VL53LX_MM_CONFIG__OUTER_OFFSET_MM_HI 0x0022 00104 00105 #define VL53LX_MM_CONFIG__OUTER_OFFSET_MM_LO 0x0023 00106 00107 #define VL53LX_DSS_CONFIG__TARGET_TOTAL_RATE_MCPS 0x0024 00108 00109 #define VL53LX_DSS_CONFIG__TARGET_TOTAL_RATE_MCPS_HI 0x0024 00110 00111 #define VL53LX_DSS_CONFIG__TARGET_TOTAL_RATE_MCPS_LO 0x0025 00112 00113 #define VL53LX_DEBUG__CTRL 0x0026 00114 00115 #define VL53LX_TEST_MODE__CTRL 0x0027 00116 00117 #define VL53LX_CLK_GATING__CTRL 0x0028 00118 00119 #define VL53LX_NVM_BIST__CTRL 0x0029 00120 00121 #define VL53LX_NVM_BIST__NUM_NVM_WORDS 0x002A 00122 00123 #define VL53LX_NVM_BIST__START_ADDRESS 0x002B 00124 00125 #define VL53LX_HOST_IF__STATUS 0x002C 00126 00127 #define VL53LX_PAD_I2C_HV__CONFIG 0x002D 00128 00129 #define VL53LX_PAD_I2C_HV__EXTSUP_CONFIG 0x002E 00130 00131 #define VL53LX_GPIO_HV_PAD__CTRL 0x002F 00132 00133 #define VL53LX_GPIO_HV_MUX__CTRL 0x0030 00134 00135 #define VL53LX_GPIO__TIO_HV_STATUS 0x0031 00136 00137 #define VL53LX_GPIO__FIO_HV_STATUS 0x0032 00138 00139 #define VL53LX_ANA_CONFIG__SPAD_SEL_PSWIDTH 0x0033 00140 00141 #define VL53LX_ANA_CONFIG__VCSEL_PULSE_WIDTH_OFFSET 0x0034 00142 00143 #define VL53LX_ANA_CONFIG__FAST_OSC__CONFIG_CTRL 0x0035 00144 00145 #define VL53LX_SIGMA_ESTIMATOR__EFFECTIVE_PULSE_WIDTH_NS 0x0036 00146 00147 #define VL53LX_SIGMA_ESTIMATOR__EFFECTIVE_AMBIENT_WIDTH_NS 0x0037 00148 00149 #define VL53LX_SIGMA_ESTIMATOR__SIGMA_REF_MM 0x0038 00150 00151 #define VL53LX_ALGO__CROSSTALK_COMPENSATION_VALID_HEIGHT_MM 0x0039 00152 00153 #define VL53LX_SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_0 0x003A 00154 00155 #define VL53LX_SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_1 0x003B 00156 00157 #define VL53LX_ALGO__RANGE_IGNORE_THRESHOLD_MCPS 0x003C 00158 00159 #define VL53LX_ALGO__RANGE_IGNORE_THRESHOLD_MCPS_HI 0x003C 00160 00161 #define VL53LX_ALGO__RANGE_IGNORE_THRESHOLD_MCPS_LO 0x003D 00162 00163 #define VL53LX_ALGO__RANGE_IGNORE_VALID_HEIGHT_MM 0x003E 00164 00165 #define VL53LX_ALGO__RANGE_MIN_CLIP 0x003F 00166 00167 #define VL53LX_ALGO__CONSISTENCY_CHECK__TOLERANCE 0x0040 00168 00169 #define VL53LX_SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_2 0x0041 00170 00171 #define VL53LX_SD_CONFIG__RESET_STAGES_MSB 0x0042 00172 00173 #define VL53LX_SD_CONFIG__RESET_STAGES_LSB 0x0043 00174 00175 #define VL53LX_GPH_CONFIG__STREAM_COUNT_UPDATE_VALUE 0x0044 00176 00177 #define VL53LX_GLOBAL_CONFIG__STREAM_DIVIDER 0x0045 00178 00179 #define VL53LX_SYSTEM__INTERRUPT_CONFIG_GPIO 0x0046 00180 00181 #define VL53LX_CAL_CONFIG__VCSEL_START 0x0047 00182 00183 #define VL53LX_CAL_CONFIG__REPEAT_RATE 0x0048 00184 00185 #define VL53LX_CAL_CONFIG__REPEAT_RATE_HI 0x0048 00186 00187 #define VL53LX_CAL_CONFIG__REPEAT_RATE_LO 0x0049 00188 00189 #define VL53LX_GLOBAL_CONFIG__VCSEL_WIDTH 0x004A 00190 00191 #define VL53LX_PHASECAL_CONFIG__TIMEOUT_MACROP 0x004B 00192 00193 #define VL53LX_PHASECAL_CONFIG__TARGET 0x004C 00194 00195 #define VL53LX_PHASECAL_CONFIG__OVERRIDE 0x004D 00196 00197 #define VL53LX_DSS_CONFIG__ROI_MODE_CONTROL 0x004F 00198 00199 #define VL53LX_SYSTEM__THRESH_RATE_HIGH 0x0050 00200 00201 #define VL53LX_SYSTEM__THRESH_RATE_HIGH_HI 0x0050 00202 00203 #define VL53LX_SYSTEM__THRESH_RATE_HIGH_LO 0x0051 00204 00205 #define VL53LX_SYSTEM__THRESH_RATE_LOW 0x0052 00206 00207 #define VL53LX_SYSTEM__THRESH_RATE_LOW_HI 0x0052 00208 00209 #define VL53LX_SYSTEM__THRESH_RATE_LOW_LO 0x0053 00210 00211 #define VL53LX_DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT 0x0054 00212 00213 #define VL53LX_DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_HI 0x0054 00214 00215 #define VL53LX_DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_LO 0x0055 00216 00217 #define VL53LX_DSS_CONFIG__MANUAL_BLOCK_SELECT 0x0056 00218 00219 #define VL53LX_DSS_CONFIG__APERTURE_ATTENUATION 0x0057 00220 00221 #define VL53LX_DSS_CONFIG__MAX_SPADS_LIMIT 0x0058 00222 00223 #define VL53LX_DSS_CONFIG__MIN_SPADS_LIMIT 0x0059 00224 00225 #define VL53LX_MM_CONFIG__TIMEOUT_MACROP_A_HI 0x005A 00226 00227 #define VL53LX_MM_CONFIG__TIMEOUT_MACROP_A_LO 0x005B 00228 00229 #define VL53LX_MM_CONFIG__TIMEOUT_MACROP_B_HI 0x005C 00230 00231 #define VL53LX_MM_CONFIG__TIMEOUT_MACROP_B_LO 0x005D 00232 00233 #define VL53LX_RANGE_CONFIG__TIMEOUT_MACROP_A_HI 0x005E 00234 00235 #define VL53LX_RANGE_CONFIG__TIMEOUT_MACROP_A_LO 0x005F 00236 00237 #define VL53LX_RANGE_CONFIG__VCSEL_PERIOD_A 0x0060 00238 00239 #define VL53LX_RANGE_CONFIG__TIMEOUT_MACROP_B_HI 0x0061 00240 00241 #define VL53LX_RANGE_CONFIG__TIMEOUT_MACROP_B_LO 0x0062 00242 00243 #define VL53LX_RANGE_CONFIG__VCSEL_PERIOD_B 0x0063 00244 00245 #define VL53LX_RANGE_CONFIG__SIGMA_THRESH 0x0064 00246 00247 #define VL53LX_RANGE_CONFIG__SIGMA_THRESH_HI 0x0064 00248 00249 #define VL53LX_RANGE_CONFIG__SIGMA_THRESH_LO 0x0065 00250 00251 #define VL53LX_RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS 0x0066 00252 00253 #define VL53LX_RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_HI 0x0066 00254 00255 #define VL53LX_RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_LO 0x0067 00256 00257 #define VL53LX_RANGE_CONFIG__VALID_PHASE_LOW 0x0068 00258 00259 #define VL53LX_RANGE_CONFIG__VALID_PHASE_HIGH 0x0069 00260 00261 #define VL53LX_SYSTEM__INTERMEASUREMENT_PERIOD 0x006C 00262 00263 #define VL53LX_SYSTEM__INTERMEASUREMENT_PERIOD_3 0x006C 00264 00265 #define VL53LX_SYSTEM__INTERMEASUREMENT_PERIOD_2 0x006D 00266 00267 #define VL53LX_SYSTEM__INTERMEASUREMENT_PERIOD_1 0x006E 00268 00269 #define VL53LX_SYSTEM__INTERMEASUREMENT_PERIOD_0 0x006F 00270 00271 #define VL53LX_SYSTEM__FRACTIONAL_ENABLE 0x0070 00272 00273 #define VL53LX_SYSTEM__GROUPED_PARAMETER_HOLD_0 0x0071 00274 00275 #define VL53LX_SYSTEM__THRESH_HIGH 0x0072 00276 00277 #define VL53LX_SYSTEM__THRESH_HIGH_HI 0x0072 00278 00279 #define VL53LX_SYSTEM__THRESH_HIGH_LO 0x0073 00280 00281 #define VL53LX_SYSTEM__THRESH_LOW 0x0074 00282 00283 #define VL53LX_SYSTEM__THRESH_LOW_HI 0x0074 00284 00285 #define VL53LX_SYSTEM__THRESH_LOW_LO 0x0075 00286 00287 #define VL53LX_SYSTEM__ENABLE_XTALK_PER_QUADRANT 0x0076 00288 00289 #define VL53LX_SYSTEM__SEED_CONFIG 0x0077 00290 00291 #define VL53LX_SD_CONFIG__WOI_SD0 0x0078 00292 00293 #define VL53LX_SD_CONFIG__WOI_SD1 0x0079 00294 00295 #define VL53LX_SD_CONFIG__INITIAL_PHASE_SD0 0x007A 00296 00297 #define VL53LX_SD_CONFIG__INITIAL_PHASE_SD1 0x007B 00298 00299 #define VL53LX_SYSTEM__GROUPED_PARAMETER_HOLD_1 0x007C 00300 00301 #define VL53LX_SD_CONFIG__FIRST_ORDER_SELECT 0x007D 00302 00303 #define VL53LX_SD_CONFIG__QUANTIFIER 0x007E 00304 00305 #define VL53LX_ROI_CONFIG__USER_ROI_CENTRE_SPAD 0x007F 00306 00307 #define VL53LX_ROI_CONFIG__USER_ROI_REQUESTED_GLOBAL_XY_SIZE 0x0080 00308 00309 #define VL53LX_SYSTEM__SEQUENCE_CONFIG 0x0081 00310 00311 #define VL53LX_SYSTEM__GROUPED_PARAMETER_HOLD 0x0082 00312 00313 #define VL53LX_POWER_MANAGEMENT__GO1_POWER_FORCE 0x0083 00314 00315 #define VL53LX_SYSTEM__STREAM_COUNT_CTRL 0x0084 00316 00317 #define VL53LX_FIRMWARE__ENABLE 0x0085 00318 00319 #define VL53LX_SYSTEM__INTERRUPT_CLEAR 0x0086 00320 00321 #define VL53LX_SYSTEM__MODE_START 0x0087 00322 00323 #define VL53LX_RESULT__INTERRUPT_STATUS 0x0088 00324 00325 #define VL53LX_RESULT__RANGE_STATUS 0x0089 00326 00327 #define VL53LX_RESULT__REPORT_STATUS 0x008A 00328 00329 #define VL53LX_RESULT__STREAM_COUNT 0x008B 00330 00331 #define VL53LX_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0 0x008C 00332 00333 #define VL53LX_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x008C 00334 00335 #define VL53LX_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x008D 00336 00337 #define VL53LX_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0 0x008E 00338 00339 #define VL53LX_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI 0x008E 00340 00341 #define VL53LX_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO 0x008F 00342 00343 #define VL53LX_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0 0x0090 00344 00345 #define VL53LX_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI 0x0090 00346 00347 #define VL53LX_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO 0x0091 00348 00349 #define VL53LX_RESULT__SIGMA_SD0 0x0092 00350 00351 #define VL53LX_RESULT__SIGMA_SD0_HI 0x0092 00352 00353 #define VL53LX_RESULT__SIGMA_SD0_LO 0x0093 00354 00355 #define VL53LX_RESULT__PHASE_SD0 0x0094 00356 00357 #define VL53LX_RESULT__PHASE_SD0_HI 0x0094 00358 00359 #define VL53LX_RESULT__PHASE_SD0_LO 0x0095 00360 00361 #define VL53LX_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0 0x0096 00362 00363 #define VL53LX_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI 0x0096 00364 00365 #define VL53LX_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO 0x0097 00366 00367 #define VL53LX_PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0 0x0098 00368 00369 #define VL53LX__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI 0x0098 00370 00371 #define VL53LX___PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO 0x0099 00372 00373 #define VL53LX_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0 0x009A 00374 00375 #define VL53LX_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x009A 00376 00377 #define VL53LX_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x009B 00378 00379 #define VL53LX_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0 0x009C 00380 00381 #define VL53LX_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x009C 00382 00383 #define VL53LX_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x009D 00384 00385 #define VL53LX_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0 0x009E 00386 00387 #define VL53LX_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI 0x009E 00388 00389 #define VL53LX_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO 0x009F 00390 00391 #define VL53LX_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1 0x00A0 00392 00393 #define VL53LX_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI 0x00A0 00394 00395 #define VL53LX_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO 0x00A1 00396 00397 #define VL53LX_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1 0x00A2 00398 00399 #define VL53LX_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI 0x00A2 00400 00401 #define VL53LX_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO 0x00A3 00402 00403 #define VL53LX_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1 0x00A4 00404 00405 #define VL53LX_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI 0x00A4 00406 00407 #define VL53LX_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO 0x00A5 00408 00409 #define VL53LX_RESULT__SIGMA_SD1 0x00A6 00410 00411 #define VL53LX_RESULT__SIGMA_SD1_HI 0x00A6 00412 00413 #define VL53LX_RESULT__SIGMA_SD1_LO 0x00A7 00414 00415 #define VL53LX_RESULT__PHASE_SD1 0x00A8 00416 00417 #define VL53LX_RESULT__PHASE_SD1_HI 0x00A8 00418 00419 #define VL53LX_RESULT__PHASE_SD1_LO 0x00A9 00420 00421 #define VL53LX_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1 0x00AA 00422 00423 #define VL53LX_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI 0x00AA 00424 00425 #define VL53LX_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO 0x00AB 00426 00427 #define VL53LX_RESULT__SPARE_0_SD1 0x00AC 00428 00429 #define VL53LX_RESULT__SPARE_0_SD1_HI 0x00AC 00430 00431 #define VL53LX_RESULT__SPARE_0_SD1_LO 0x00AD 00432 00433 #define VL53LX_RESULT__SPARE_1_SD1 0x00AE 00434 00435 #define VL53LX_RESULT__SPARE_1_SD1_HI 0x00AE 00436 00437 #define VL53LX_RESULT__SPARE_1_SD1_LO 0x00AF 00438 00439 #define VL53LX_RESULT__SPARE_2_SD1 0x00B0 00440 00441 #define VL53LX_RESULT__SPARE_2_SD1_HI 0x00B0 00442 00443 #define VL53LX_RESULT__SPARE_2_SD1_LO 0x00B1 00444 00445 #define VL53LX_RESULT__SPARE_3_SD1 0x00B2 00446 00447 #define VL53LX_RESULT__THRESH_INFO 0x00B3 00448 00449 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 0x00B4 00450 00451 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3 0x00B4 00452 00453 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2 0x00B5 00454 00455 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1 0x00B6 00456 00457 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0 0x00B7 00458 00459 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0 0x00B8 00460 00461 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3 0x00B8 00462 00463 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2 0x00B9 00464 00465 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1 0x00BA 00466 00467 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0 0x00BB 00468 00469 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0 0x00BC 00470 00471 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3 0x00BC 00472 00473 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2 0x00BD 00474 00475 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1 0x00BE 00476 00477 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0 0x00BF 00478 00479 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0 0x00C0 00480 00481 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3 0x00C0 00482 00483 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2 0x00C1 00484 00485 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1 0x00C2 00486 00487 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0 0x00C3 00488 00489 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1 0x00C4 00490 00491 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3 0x00C4 00492 00493 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2 0x00C5 00494 00495 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1 0x00C6 00496 00497 #define VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0 0x00C7 00498 00499 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1 0x00C8 00500 00501 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3 0x00C8 00502 00503 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2 0x00C9 00504 00505 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1 0x00CA 00506 00507 #define VL53LX_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0 0x00CB 00508 00509 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1 0x00CC 00510 00511 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3 0x00CC 00512 00513 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2 0x00CD 00514 00515 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1 0x00CE 00516 00517 #define VL53LX_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0 0x00CF 00518 00519 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1 0x00D0 00520 00521 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3 0x00D0 00522 00523 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2 0x00D1 00524 00525 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1 0x00D2 00526 00527 #define VL53LX_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0 0x00D3 00528 00529 #define VL53LX_RESULT_CORE__SPARE_0 0x00D4 00530 00531 #define VL53LX_PHASECAL_RESULT__REFERENCE_PHASE 0x00D6 00532 00533 #define VL53LX_PHASECAL_RESULT__REFERENCE_PHASE_HI 0x00D6 00534 00535 #define VL53LX_PHASECAL_RESULT__REFERENCE_PHASE_LO 0x00D7 00536 00537 #define VL53LX_PHASECAL_RESULT__VCSEL_START 0x00D8 00538 00539 #define VL53LX_REF_SPAD_CHAR_RESULT__NUM_ACTUAL_REF_SPADS 0x00D9 00540 00541 #define VL53LX_REF_SPAD_CHAR_RESULT__REF_LOCATION 0x00DA 00542 00543 #define VL53LX_VHV_RESULT__COLDBOOT_STATUS 0x00DB 00544 00545 #define VL53LX_VHV_RESULT__SEARCH_RESULT 0x00DC 00546 00547 #define VL53LX_VHV_RESULT__LATEST_SETTING 0x00DD 00548 00549 #define VL53LX_RESULT__OSC_CALIBRATE_VAL 0x00DE 00550 00551 #define VL53LX_RESULT__OSC_CALIBRATE_VAL_HI 0x00DE 00552 00553 #define VL53LX_RESULT__OSC_CALIBRATE_VAL_LO 0x00DF 00554 00555 #define VL53LX_ANA_CONFIG__POWERDOWN_GO1 0x00E0 00556 00557 #define VL53LX_ANA_CONFIG__REF_BG_CTRL 0x00E1 00558 00559 #define VL53LX_ANA_CONFIG__REGDVDD1V2_CTRL 0x00E2 00560 00561 #define VL53LX_ANA_CONFIG__OSC_SLOW_CTRL 0x00E3 00562 00563 #define VL53LX_TEST_MODE__STATUS 0x00E4 00564 00565 #define VL53LX_FIRMWARE__SYSTEM_STATUS 0x00E5 00566 00567 #define VL53LX_FIRMWARE__MODE_STATUS 0x00E6 00568 00569 #define VL53LX_FIRMWARE__SECONDARY_MODE_STATUS 0x00E7 00570 00571 #define VL53LX_FIRMWARE__CAL_REPEAT_RATE_COUNTER 0x00E8 00572 00573 #define VL53LX_FIRMWARE__CAL_REPEAT_RATE_COUNTER_HI 0x00E8 00574 00575 #define VL53LX_FIRMWARE__CAL_REPEAT_RATE_COUNTER_LO 0x00E9 00576 00577 #define VL53LX_FIRMWARE__HISTOGRAM_BIN 0x00EA 00578 00579 #define VL53LX_GPH__SYSTEM__THRESH_HIGH 0x00EC 00580 00581 #define VL53LX_GPH__SYSTEM__THRESH_HIGH_HI 0x00EC 00582 00583 #define VL53LX_GPH__SYSTEM__THRESH_HIGH_LO 0x00ED 00584 00585 #define VL53LX_GPH__SYSTEM__THRESH_LOW 0x00EE 00586 00587 #define VL53LX_GPH__SYSTEM__THRESH_LOW_HI 0x00EE 00588 00589 #define VL53LX_GPH__SYSTEM__THRESH_LOW_LO 0x00EF 00590 00591 #define VL53LX_GPH__SYSTEM__ENABLE_XTALK_PER_QUADRANT 0x00F0 00592 00593 #define VL53LX_GPH__SPARE_0 0x00F1 00594 00595 #define VL53LX_GPH__SD_CONFIG__WOI_SD0 0x00F2 00596 00597 #define VL53LX_GPH__SD_CONFIG__WOI_SD1 0x00F3 00598 00599 #define VL53LX_GPH__SD_CONFIG__INITIAL_PHASE_SD0 0x00F4 00600 00601 #define VL53LX_GPH__SD_CONFIG__INITIAL_PHASE_SD1 0x00F5 00602 00603 #define VL53LX_GPH__SD_CONFIG__FIRST_ORDER_SELECT 0x00F6 00604 00605 #define VL53LX_GPH__SD_CONFIG__QUANTIFIER 0x00F7 00606 00607 #define VL53LX_GPH__ROI_CONFIG__USER_ROI_CENTRE_SPAD 0x00F8 00608 00609 #define VL53LX_GPH__ROI_CONFIG__USER_ROI_REQUESTED_GLOBAL_XY_SIZE 0x00F9 00610 00611 #define VL53LX_GPH__SYSTEM__SEQUENCE_CONFIG 0x00FA 00612 00613 #define VL53LX_GPH__GPH_ID 0x00FB 00614 00615 #define VL53LX_SYSTEM__INTERRUPT_SET 0x00FC 00616 00617 #define VL53LX_INTERRUPT_MANAGER__ENABLES 0x00FD 00618 00619 #define VL53LX_INTERRUPT_MANAGER__CLEAR 0x00FE 00620 00621 #define VL53LX_INTERRUPT_MANAGER__STATUS 0x00FF 00622 00623 #define VL53LX_MCU_TO_HOST_BANK__WR_ACCESS_EN 0x0100 00624 00625 #define VL53LX_POWER_MANAGEMENT__GO1_RESET_STATUS 0x0101 00626 00627 #define VL53LX_PAD_STARTUP_MODE__VALUE_RO 0x0102 00628 00629 #define VL53LX_PAD_STARTUP_MODE__VALUE_CTRL 0x0103 00630 00631 #define VL53LX_PLL_PERIOD_US 0x0104 00632 00633 #define VL53LX_PLL_PERIOD_US_3 0x0104 00634 00635 #define VL53LX_PLL_PERIOD_US_2 0x0105 00636 00637 #define VL53LX_PLL_PERIOD_US_1 0x0106 00638 00639 #define VL53LX_PLL_PERIOD_US_0 0x0107 00640 00641 #define VL53LX_INTERRUPT_SCHEDULER__DATA_OUT 0x0108 00642 00643 #define VL53LX_INTERRUPT_SCHEDULER__DATA_OUT_3 0x0108 00644 00645 #define VL53LX_INTERRUPT_SCHEDULER__DATA_OUT_2 0x0109 00646 00647 #define VL53LX_INTERRUPT_SCHEDULER__DATA_OUT_1 0x010A 00648 00649 #define VL53LX_INTERRUPT_SCHEDULER__DATA_OUT_0 0x010B 00650 00651 #define VL53LX_NVM_BIST__COMPLETE 0x010C 00652 00653 #define VL53LX_NVM_BIST__STATUS 0x010D 00654 00655 #define VL53LX_IDENTIFICATION__MODEL_ID 0x010F 00656 00657 #define VL53LX_IDENTIFICATION__MODULE_TYPE 0x0110 00658 00659 #define VL53LX_IDENTIFICATION__REVISION_ID 0x0111 00660 00661 #define VL53LX_IDENTIFICATION__MODULE_ID 0x0112 00662 00663 #define VL53LX_IDENTIFICATION__MODULE_ID_HI 0x0112 00664 00665 #define VL53LX_IDENTIFICATION__MODULE_ID_LO 0x0113 00666 00667 #define VL53LX_ANA_CONFIG__FAST_OSC__TRIM_MAX 0x0114 00668 00669 #define VL53LX_ANA_CONFIG__FAST_OSC__FREQ_SET 0x0115 00670 00671 #define VL53LX_ANA_CONFIG__VCSEL_TRIM 0x0116 00672 00673 #define VL53LX_ANA_CONFIG__VCSEL_SELION 0x0117 00674 00675 #define VL53LX_ANA_CONFIG__VCSEL_SELION_MAX 0x0118 00676 00677 #define VL53LX_PROTECTED_LASER_SAFETY__LOCK_BIT 0x0119 00678 00679 #define VL53LX_LASER_SAFETY__KEY 0x011A 00680 00681 #define VL53LX_LASER_SAFETY__KEY_RO 0x011B 00682 00683 #define VL53LX_LASER_SAFETY__CLIP 0x011C 00684 00685 #define VL53LX_LASER_SAFETY__MULT 0x011D 00686 00687 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_0 0x011E 00688 00689 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_1 0x011F 00690 00691 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_2 0x0120 00692 00693 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_3 0x0121 00694 00695 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_4 0x0122 00696 00697 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_5 0x0123 00698 00699 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_6 0x0124 00700 00701 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_7 0x0125 00702 00703 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_8 0x0126 00704 00705 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_9 0x0127 00706 00707 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_10 0x0128 00708 00709 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_11 0x0129 00710 00711 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_12 0x012A 00712 00713 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_13 0x012B 00714 00715 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_14 0x012C 00716 00717 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_15 0x012D 00718 00719 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_16 0x012E 00720 00721 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_17 0x012F 00722 00723 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_18 0x0130 00724 00725 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_19 0x0131 00726 00727 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_20 0x0132 00728 00729 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_21 0x0133 00730 00731 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_22 0x0134 00732 00733 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_23 0x0135 00734 00735 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_24 0x0136 00736 00737 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_25 0x0137 00738 00739 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_26 0x0138 00740 00741 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_27 0x0139 00742 00743 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_28 0x013A 00744 00745 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_29 0x013B 00746 00747 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_30 0x013C 00748 00749 #define VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_RTN_31 0x013D 00750 00751 #define VL53LX_ROI_CONFIG__MODE_ROI_CENTRE_SPAD 0x013E 00752 00753 #define VL53LX_ROI_CONFIG__MODE_ROI_XY_SIZE 0x013F 00754 00755 #define VL53LX_GO2_HOST_BANK_ACCESS__OVERRIDE 0x0300 00756 00757 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLICAND 0x0400 00758 00759 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLICAND_3 0x0400 00760 00761 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLICAND_2 0x0401 00762 00763 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLICAND_1 0x0402 00764 00765 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLICAND_0 0x0403 00766 00767 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLIER 0x0404 00768 00769 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLIER_3 0x0404 00770 00771 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLIER_2 0x0405 00772 00773 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLIER_1 0x0406 00774 00775 #define VL53LX_MCU_UTIL_MULTIPLIER__MULTIPLIER_0 0x0407 00776 00777 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_HI 0x0408 00778 00779 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_HI_3 0x0408 00780 00781 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_HI_2 0x0409 00782 00783 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_HI_1 0x040A 00784 00785 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_HI_0 0x040B 00786 00787 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_LO 0x040C 00788 00789 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_LO_3 0x040C 00790 00791 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_LO_2 0x040D 00792 00793 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_LO_1 0x040E 00794 00795 #define VL53LX_MCU_UTIL_MULTIPLIER__PRODUCT_LO_0 0x040F 00796 00797 #define VL53LX_MCU_UTIL_MULTIPLIER__START 0x0410 00798 00799 #define VL53LX_MCU_UTIL_MULTIPLIER__STATUS 0x0411 00800 00801 #define VL53LX_MCU_UTIL_DIVIDER__START 0x0412 00802 00803 #define VL53LX_MCU_UTIL_DIVIDER__STATUS 0x0413 00804 00805 #define VL53LX_MCU_UTIL_DIVIDER__DIVIDEND 0x0414 00806 00807 #define VL53LX_MCU_UTIL_DIVIDER__DIVIDEND_3 0x0414 00808 00809 #define VL53LX_MCU_UTIL_DIVIDER__DIVIDEND_2 0x0415 00810 00811 #define VL53LX_MCU_UTIL_DIVIDER__DIVIDEND_1 0x0416 00812 00813 #define VL53LX_MCU_UTIL_DIVIDER__DIVIDEND_0 0x0417 00814 00815 #define VL53LX_MCU_UTIL_DIVIDER__DIVISOR 0x0418 00816 00817 #define VL53LX_MCU_UTIL_DIVIDER__DIVISOR_3 0x0418 00818 00819 #define VL53LX_MCU_UTIL_DIVIDER__DIVISOR_2 0x0419 00820 00821 #define VL53LX_MCU_UTIL_DIVIDER__DIVISOR_1 0x041A 00822 00823 #define VL53LX_MCU_UTIL_DIVIDER__DIVISOR_0 0x041B 00824 00825 #define VL53LX_MCU_UTIL_DIVIDER__QUOTIENT 0x041C 00826 00827 #define VL53LX_MCU_UTIL_DIVIDER__QUOTIENT_3 0x041C 00828 00829 #define VL53LX_MCU_UTIL_DIVIDER__QUOTIENT_2 0x041D 00830 00831 #define VL53LX_MCU_UTIL_DIVIDER__QUOTIENT_1 0x041E 00832 00833 #define VL53LX_MCU_UTIL_DIVIDER__QUOTIENT_0 0x041F 00834 00835 #define VL53LX_TIMER0__VALUE_IN 0x0420 00836 00837 #define VL53LX_TIMER0__VALUE_IN_3 0x0420 00838 00839 #define VL53LX_TIMER0__VALUE_IN_2 0x0421 00840 00841 #define VL53LX_TIMER0__VALUE_IN_1 0x0422 00842 00843 #define VL53LX_TIMER0__VALUE_IN_0 0x0423 00844 00845 #define VL53LX_TIMER1__VALUE_IN 0x0424 00846 00847 #define VL53LX_TIMER1__VALUE_IN_3 0x0424 00848 00849 #define VL53LX_TIMER1__VALUE_IN_2 0x0425 00850 00851 #define VL53LX_TIMER1__VALUE_IN_1 0x0426 00852 00853 #define VL53LX_TIMER1__VALUE_IN_0 0x0427 00854 00855 #define VL53LX_TIMER0__CTRL 0x0428 00856 00857 #define VL53LX_TIMER1__CTRL 0x0429 00858 00859 #define VL53LX_MCU_GENERAL_PURPOSE__GP_0 0x042C 00860 00861 #define VL53LX_MCU_GENERAL_PURPOSE__GP_1 0x042D 00862 00863 #define VL53LX_MCU_GENERAL_PURPOSE__GP_2 0x042E 00864 00865 #define VL53LX_MCU_GENERAL_PURPOSE__GP_3 0x042F 00866 00867 #define VL53LX_MCU_RANGE_CALC__CONFIG 0x0430 00868 00869 #define VL53LX_MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE 0x0432 00870 00871 #define VL53LX_MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE_HI 0x0432 00872 00873 #define VL53LX_MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE_LO 0x0433 00874 00875 #define VL53LX_MCU_RANGE_CALC__SPARE_4 0x0434 00876 00877 #define VL53LX_MCU_RANGE_CALC__SPARE_4_3 0x0434 00878 00879 #define VL53LX_MCU_RANGE_CALC__SPARE_4_2 0x0435 00880 00881 #define VL53LX_MCU_RANGE_CALC__SPARE_4_1 0x0436 00882 00883 #define VL53LX_MCU_RANGE_CALC__SPARE_4_0 0x0437 00884 00885 #define VL53LX_MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC 0x0438 00886 00887 #define VL53LX_MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC_HI 0x0438 00888 00889 #define VL53LX_MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC_LO 0x0439 00890 00891 #define VL53LX_MCU_RANGE_CALC__ALGO_VCSEL_PERIOD 0x043C 00892 00893 #define VL53LX_MCU_RANGE_CALC__SPARE_5 0x043D 00894 00895 #define VL53LX_MCU_RANGE_CALC__ALGO_TOTAL_PERIODS 0x043E 00896 00897 #define VL53LX_MCU_RANGE_CALC__ALGO_TOTAL_PERIODS_HI 0x043E 00898 00899 #define VL53LX_MCU_RANGE_CALC__ALGO_TOTAL_PERIODS_LO 0x043F 00900 00901 #define VL53LX_MCU_RANGE_CALC__ALGO_ACCUM_PHASE 0x0440 00902 00903 #define VL53LX_MCU_RANGE_CALC__ALGO_ACCUM_PHASE_3 0x0440 00904 00905 #define VL53LX_MCU_RANGE_CALC__ALGO_ACCUM_PHASE_2 0x0441 00906 00907 #define VL53LX_MCU_RANGE_CALC__ALGO_ACCUM_PHASE_1 0x0442 00908 00909 #define VL53LX_MCU_RANGE_CALC__ALGO_ACCUM_PHASE_0 0x0443 00910 00911 #define VL53LX_MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS 0x0444 00912 00913 #define VL53LX_MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_3 0x0444 00914 00915 #define VL53LX_MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_2 0x0445 00916 00917 #define VL53LX_MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_1 0x0446 00918 00919 #define VL53LX_MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_0 0x0447 00920 00921 #define VL53LX_MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS 0x0448 00922 00923 #define VL53LX_MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_3 0x0448 00924 00925 #define VL53LX_MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_2 0x0449 00926 00927 #define VL53LX_MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_1 0x044A 00928 00929 #define VL53LX_MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_0 0x044B 00930 00931 #define VL53LX_MCU_RANGE_CALC__SPARE_6 0x044C 00932 00933 #define VL53LX_MCU_RANGE_CALC__SPARE_6_HI 0x044C 00934 00935 #define VL53LX_MCU_RANGE_CALC__SPARE_6_LO 0x044D 00936 00937 #define VL53LX_MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD 0x044E 00938 00939 #define VL53LX_MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD_HI 0x044E 00940 00941 #define VL53LX_MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD_LO 0x044F 00942 00943 #define VL53LX_MCU_RANGE_CALC__NUM_SPADS 0x0450 00944 00945 #define VL53LX_MCU_RANGE_CALC__NUM_SPADS_HI 0x0450 00946 00947 #define VL53LX_MCU_RANGE_CALC__NUM_SPADS_LO 0x0451 00948 00949 #define VL53LX_MCU_RANGE_CALC__PHASE_OUTPUT 0x0452 00950 00951 #define VL53LX_MCU_RANGE_CALC__PHASE_OUTPUT_HI 0x0452 00952 00953 #define VL53LX_MCU_RANGE_CALC__PHASE_OUTPUT_LO 0x0453 00954 00955 #define VL53LX_MCU_RANGE_CALC__RATE_PER_SPAD_MCPS 0x0454 00956 00957 #define VL53LX_MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_3 0x0454 00958 00959 #define VL53LX_MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_2 0x0455 00960 00961 #define VL53LX_MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_1 0x0456 00962 00963 #define VL53LX_MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_0 0x0457 00964 00965 #define VL53LX_MCU_RANGE_CALC__SPARE_7 0x0458 00966 00967 #define VL53LX_MCU_RANGE_CALC__SPARE_8 0x0459 00968 00969 #define VL53LX_MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS 0x045A 00970 00971 #define VL53LX_MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS_HI 0x045A 00972 00973 #define VL53LX_MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS_LO 0x045B 00974 00975 #define VL53LX_MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS 0x045C 00976 00977 #define VL53LX_MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS_HI 0x045C 00978 00979 #define VL53LX_MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS_LO 0x045D 00980 00981 #define VL53LX_MCU_RANGE_CALC__AMBIENT_RATE_MCPS 0x045E 00982 00983 #define VL53LX_MCU_RANGE_CALC__AMBIENT_RATE_MCPS_HI 0x045E 00984 00985 #define VL53LX_MCU_RANGE_CALC__AMBIENT_RATE_MCPS_LO 0x045F 00986 00987 #define VL53LX_MCU_RANGE_CALC__XTALK 0x0460 00988 00989 #define VL53LX_MCU_RANGE_CALC__XTALK_HI 0x0460 00990 00991 #define VL53LX_MCU_RANGE_CALC__XTALK_LO 0x0461 00992 00993 #define VL53LX_MCU_RANGE_CALC__CALC_STATUS 0x0462 00994 00995 #define VL53LX_MCU_RANGE_CALC__DEBUG 0x0463 00996 00997 #define VL53LX_MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS 0x0464 00998 00999 #define VL53LX_MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS_HI 0x0464 01000 01001 #define VL53LX_MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS_LO 0x0465 01002 01003 #define VL53LX_MCU_RANGE_CALC__SPARE_0 0x0468 01004 01005 #define VL53LX_MCU_RANGE_CALC__SPARE_1 0x0469 01006 01007 #define VL53LX_MCU_RANGE_CALC__SPARE_2 0x046A 01008 01009 #define VL53LX_MCU_RANGE_CALC__SPARE_3 0x046B 01010 01011 #define VL53LX_PATCH__CTRL 0x0470 01012 01013 #define VL53LX_PATCH__JMP_ENABLES 0x0472 01014 01015 #define VL53LX_PATCH__JMP_ENABLES_HI 0x0472 01016 01017 #define VL53LX_PATCH__JMP_ENABLES_LO 0x0473 01018 01019 #define VL53LX_PATCH__DATA_ENABLES 0x0474 01020 01021 #define VL53LX_PATCH__DATA_ENABLES_HI 0x0474 01022 01023 #define VL53LX_PATCH__DATA_ENABLES_LO 0x0475 01024 01025 #define VL53LX_PATCH__OFFSET_0 0x0476 01026 01027 #define VL53LX_PATCH__OFFSET_0_HI 0x0476 01028 01029 #define VL53LX_PATCH__OFFSET_0_LO 0x0477 01030 01031 #define VL53LX_PATCH__OFFSET_1 0x0478 01032 01033 #define VL53LX_PATCH__OFFSET_1_HI 0x0478 01034 01035 #define VL53LX_PATCH__OFFSET_1_LO 0x0479 01036 01037 #define VL53LX_PATCH__OFFSET_2 0x047A 01038 01039 #define VL53LX_PATCH__OFFSET_2_HI 0x047A 01040 01041 #define VL53LX_PATCH__OFFSET_2_LO 0x047B 01042 01043 #define VL53LX_PATCH__OFFSET_3 0x047C 01044 01045 #define VL53LX_PATCH__OFFSET_3_HI 0x047C 01046 01047 #define VL53LX_PATCH__OFFSET_3_LO 0x047D 01048 01049 #define VL53LX_PATCH__OFFSET_4 0x047E 01050 01051 #define VL53LX_PATCH__OFFSET_4_HI 0x047E 01052 01053 #define VL53LX_PATCH__OFFSET_4_LO 0x047F 01054 01055 #define VL53LX_PATCH__OFFSET_5 0x0480 01056 01057 #define VL53LX_PATCH__OFFSET_5_HI 0x0480 01058 01059 #define VL53LX_PATCH__OFFSET_5_LO 0x0481 01060 01061 #define VL53LX_PATCH__OFFSET_6 0x0482 01062 01063 #define VL53LX_PATCH__OFFSET_6_HI 0x0482 01064 01065 #define VL53LX_PATCH__OFFSET_6_LO 0x0483 01066 01067 #define VL53LX_PATCH__OFFSET_7 0x0484 01068 01069 #define VL53LX_PATCH__OFFSET_7_HI 0x0484 01070 01071 #define VL53LX_PATCH__OFFSET_7_LO 0x0485 01072 01073 #define VL53LX_PATCH__OFFSET_8 0x0486 01074 01075 #define VL53LX_PATCH__OFFSET_8_HI 0x0486 01076 01077 #define VL53LX_PATCH__OFFSET_8_LO 0x0487 01078 01079 #define VL53LX_PATCH__OFFSET_9 0x0488 01080 01081 #define VL53LX_PATCH__OFFSET_9_HI 0x0488 01082 01083 #define VL53LX_PATCH__OFFSET_9_LO 0x0489 01084 01085 #define VL53LX_PATCH__OFFSET_10 0x048A 01086 01087 #define VL53LX_PATCH__OFFSET_10_HI 0x048A 01088 01089 #define VL53LX_PATCH__OFFSET_10_LO 0x048B 01090 01091 #define VL53LX_PATCH__OFFSET_11 0x048C 01092 01093 #define VL53LX_PATCH__OFFSET_11_HI 0x048C 01094 01095 #define VL53LX_PATCH__OFFSET_11_LO 0x048D 01096 01097 #define VL53LX_PATCH__OFFSET_12 0x048E 01098 01099 #define VL53LX_PATCH__OFFSET_12_HI 0x048E 01100 01101 #define VL53LX_PATCH__OFFSET_12_LO 0x048F 01102 01103 #define VL53LX_PATCH__OFFSET_13 0x0490 01104 01105 #define VL53LX_PATCH__OFFSET_13_HI 0x0490 01106 01107 #define VL53LX_PATCH__OFFSET_13_LO 0x0491 01108 01109 #define VL53LX_PATCH__OFFSET_14 0x0492 01110 01111 #define VL53LX_PATCH__OFFSET_14_HI 0x0492 01112 01113 #define VL53LX_PATCH__OFFSET_14_LO 0x0493 01114 01115 #define VL53LX_PATCH__OFFSET_15 0x0494 01116 01117 #define VL53LX_PATCH__OFFSET_15_HI 0x0494 01118 01119 #define VL53LX_PATCH__OFFSET_15_LO 0x0495 01120 01121 #define VL53LX_PATCH__ADDRESS_0 0x0496 01122 01123 #define VL53LX_PATCH__ADDRESS_0_HI 0x0496 01124 01125 #define VL53LX_PATCH__ADDRESS_0_LO 0x0497 01126 01127 #define VL53LX_PATCH__ADDRESS_1 0x0498 01128 01129 #define VL53LX_PATCH__ADDRESS_1_HI 0x0498 01130 01131 #define VL53LX_PATCH__ADDRESS_1_LO 0x0499 01132 01133 #define VL53LX_PATCH__ADDRESS_2 0x049A 01134 01135 #define VL53LX_PATCH__ADDRESS_2_HI 0x049A 01136 01137 #define VL53LX_PATCH__ADDRESS_2_LO 0x049B 01138 01139 #define VL53LX_PATCH__ADDRESS_3 0x049C 01140 01141 #define VL53LX_PATCH__ADDRESS_3_HI 0x049C 01142 01143 #define VL53LX_PATCH__ADDRESS_3_LO 0x049D 01144 01145 #define VL53LX_PATCH__ADDRESS_4 0x049E 01146 01147 #define VL53LX_PATCH__ADDRESS_4_HI 0x049E 01148 01149 #define VL53LX_PATCH__ADDRESS_4_LO 0x049F 01150 01151 #define VL53LX_PATCH__ADDRESS_5 0x04A0 01152 01153 #define VL53LX_PATCH__ADDRESS_5_HI 0x04A0 01154 01155 #define VL53LX_PATCH__ADDRESS_5_LO 0x04A1 01156 01157 #define VL53LX_PATCH__ADDRESS_6 0x04A2 01158 01159 #define VL53LX_PATCH__ADDRESS_6_HI 0x04A2 01160 01161 #define VL53LX_PATCH__ADDRESS_6_LO 0x04A3 01162 01163 #define VL53LX_PATCH__ADDRESS_7 0x04A4 01164 01165 #define VL53LX_PATCH__ADDRESS_7_HI 0x04A4 01166 01167 #define VL53LX_PATCH__ADDRESS_7_LO 0x04A5 01168 01169 #define VL53LX_PATCH__ADDRESS_8 0x04A6 01170 01171 #define VL53LX_PATCH__ADDRESS_8_HI 0x04A6 01172 01173 #define VL53LX_PATCH__ADDRESS_8_LO 0x04A7 01174 01175 #define VL53LX_PATCH__ADDRESS_9 0x04A8 01176 01177 #define VL53LX_PATCH__ADDRESS_9_HI 0x04A8 01178 01179 #define VL53LX_PATCH__ADDRESS_9_LO 0x04A9 01180 01181 #define VL53LX_PATCH__ADDRESS_10 0x04AA 01182 01183 #define VL53LX_PATCH__ADDRESS_10_HI 0x04AA 01184 01185 #define VL53LX_PATCH__ADDRESS_10_LO 0x04AB 01186 01187 #define VL53LX_PATCH__ADDRESS_11 0x04AC 01188 01189 #define VL53LX_PATCH__ADDRESS_11_HI 0x04AC 01190 01191 #define VL53LX_PATCH__ADDRESS_11_LO 0x04AD 01192 01193 #define VL53LX_PATCH__ADDRESS_12 0x04AE 01194 01195 #define VL53LX_PATCH__ADDRESS_12_HI 0x04AE 01196 01197 #define VL53LX_PATCH__ADDRESS_12_LO 0x04AF 01198 01199 #define VL53LX_PATCH__ADDRESS_13 0x04B0 01200 01201 #define VL53LX_PATCH__ADDRESS_13_HI 0x04B0 01202 01203 #define VL53LX_PATCH__ADDRESS_13_LO 0x04B1 01204 01205 #define VL53LX_PATCH__ADDRESS_14 0x04B2 01206 01207 #define VL53LX_PATCH__ADDRESS_14_HI 0x04B2 01208 01209 #define VL53LX_PATCH__ADDRESS_14_LO 0x04B3 01210 01211 #define VL53LX_PATCH__ADDRESS_15 0x04B4 01212 01213 #define VL53LX_PATCH__ADDRESS_15_HI 0x04B4 01214 01215 #define VL53LX_PATCH__ADDRESS_15_LO 0x04B5 01216 01217 #define VL53LX_SPI_ASYNC_MUX__CTRL 0x04C0 01218 01219 #define VL53LX_CLK__CONFIG 0x04C4 01220 01221 #define VL53LX_GPIO_LV_MUX__CTRL 0x04CC 01222 01223 #define VL53LX_GPIO_LV_PAD__CTRL 0x04CD 01224 01225 #define VL53LX_PAD_I2C_LV__CONFIG 0x04D0 01226 01227 #define VL53LX_PAD_STARTUP_MODE__VALUE_RO_GO1 0x04D4 01228 01229 #define VL53LX_HOST_IF__STATUS_GO1 0x04D5 01230 01231 #define VL53LX_MCU_CLK_GATING__CTRL 0x04D8 01232 01233 #define VL53LX_TEST__BIST_ROM_CTRL 0x04E0 01234 01235 #define VL53LX_TEST__BIST_ROM_RESULT 0x04E1 01236 01237 #define VL53LX_TEST__BIST_ROM_MCU_SIG 0x04E2 01238 01239 #define VL53LX_TEST__BIST_ROM_MCU_SIG_HI 0x04E2 01240 01241 #define VL53LX_TEST__BIST_ROM_MCU_SIG_LO 0x04E3 01242 01243 #define VL53LX_TEST__BIST_RAM_CTRL 0x04E4 01244 01245 #define VL53LX_TEST__BIST_RAM_RESULT 0x04E5 01246 01247 #define VL53LX_TEST__TMC 0x04E8 01248 01249 #define VL53LX_TEST__PLL_BIST_MIN_THRESHOLD 0x04F0 01250 01251 #define VL53LX_TEST__PLL_BIST_MIN_THRESHOLD_HI 0x04F0 01252 01253 #define VL53LX_TEST__PLL_BIST_MIN_THRESHOLD_LO 0x04F1 01254 01255 #define VL53LX_TEST__PLL_BIST_MAX_THRESHOLD 0x04F2 01256 01257 #define VL53LX_TEST__PLL_BIST_MAX_THRESHOLD_HI 0x04F2 01258 01259 #define VL53LX_TEST__PLL_BIST_MAX_THRESHOLD_LO 0x04F3 01260 01261 #define VL53LX_TEST__PLL_BIST_COUNT_OUT 0x04F4 01262 01263 #define VL53LX_TEST__PLL_BIST_COUNT_OUT_HI 0x04F4 01264 01265 #define VL53LX_TEST__PLL_BIST_COUNT_OUT_LO 0x04F5 01266 01267 #define VL53LX_TEST__PLL_BIST_GONOGO 0x04F6 01268 01269 #define VL53LX_TEST__PLL_BIST_CTRL 0x04F7 01270 01271 #define VL53LX_RANGING_CORE__DEVICE_ID 0x0680 01272 01273 #define VL53LX_RANGING_CORE__REVISION_ID 0x0681 01274 01275 #define VL53LX_RANGING_CORE__CLK_CTRL1 0x0683 01276 01277 #define VL53LX_RANGING_CORE__CLK_CTRL2 0x0684 01278 01279 #define VL53LX_RANGING_CORE__WOI_1 0x0685 01280 01281 #define VL53LX_RANGING_CORE__WOI_REF_1 0x0686 01282 01283 #define VL53LX_RANGING_CORE__START_RANGING 0x0687 01284 01285 #define VL53LX_RANGING_CORE__LOW_LIMIT_1 0x0690 01286 01287 #define VL53LX_RANGING_CORE__HIGH_LIMIT_1 0x0691 01288 01289 #define VL53LX_RANGING_CORE__LOW_LIMIT_REF_1 0x0692 01290 01291 #define VL53LX_RANGING_CORE__HIGH_LIMIT_REF_1 0x0693 01292 01293 #define VL53LX_RANGING_CORE__QUANTIFIER_1_MSB 0x0694 01294 01295 #define VL53LX_RANGING_CORE__QUANTIFIER_1_LSB 0x0695 01296 01297 #define VL53LX_RANGING_CORE__QUANTIFIER_REF_1_MSB 0x0696 01298 01299 #define VL53LX_RANGING_CORE__QUANTIFIER_REF_1_LSB 0x0697 01300 01301 #define VL53LX_RANGING_CORE__AMBIENT_OFFSET_1_MSB 0x0698 01302 01303 #define VL53LX_RANGING_CORE__AMBIENT_OFFSET_1_LSB 0x0699 01304 01305 #define VL53LX_RANGING_CORE__AMBIENT_OFFSET_REF_1_MSB 0x069A 01306 01307 #define VL53LX_RANGING_CORE__AMBIENT_OFFSET_REF_1_LSB 0x069B 01308 01309 #define VL53LX_RANGING_CORE__FILTER_STRENGTH_1 0x069C 01310 01311 #define VL53LX_RANGING_CORE__FILTER_STRENGTH_REF_1 0x069D 01312 01313 #define VL53LX_RANGING_CORE__SIGNAL_EVENT_LIMIT_1_MSB 0x069E 01314 01315 #define VL53LX_RANGING_CORE__SIGNAL_EVENT_LIMIT_1_LSB 0x069F 01316 01317 #define VL53LX_RANGING_CORE__SIGNAL_EVENT_LIMIT_REF_1_MSB 0x06A0 01318 01319 #define VL53LX_RANGING_CORE__SIGNAL_EVENT_LIMIT_REF_1_LSB 0x06A1 01320 01321 #define VL53LX_RANGING_CORE__TIMEOUT_OVERALL_PERIODS_MSB 0x06A4 01322 01323 #define VL53LX_RANGING_CORE__TIMEOUT_OVERALL_PERIODS_LSB 0x06A5 01324 01325 #define VL53LX_RANGING_CORE__INVERT_HW 0x06A6 01326 01327 #define VL53LX_RANGING_CORE__FORCE_HW 0x06A7 01328 01329 #define VL53LX_RANGING_CORE__STATIC_HW_VALUE 0x06A8 01330 01331 #define VL53LX_RANGING_CORE__FORCE_CONTINUOUS_AMBIENT 0x06A9 01332 01333 #define VL53LX_RANGING_CORE__TEST_PHASE_SELECT_TO_FILTER 0x06AA 01334 01335 #define VL53LX_RANGING_CORE__TEST_PHASE_SELECT_TO_TIMING_GEN 0x06AB 01336 01337 #define VL53LX_RANGING_CORE__INITIAL_PHASE_VALUE_1 0x06AC 01338 01339 #define VL53LX_RANGING_CORE__INITIAL_PHASE_VALUE_REF_1 0x06AD 01340 01341 #define VL53LX_RANGING_CORE__FORCE_UP_IN 0x06AE 01342 01343 #define VL53LX_RANGING_CORE__FORCE_DN_IN 0x06AF 01344 01345 #define VL53LX_RANGING_CORE__STATIC_UP_VALUE_1 0x06B0 01346 01347 #define VL53LX_RANGING_CORE__STATIC_UP_VALUE_REF_1 0x06B1 01348 01349 #define VL53LX_RANGING_CORE__STATIC_DN_VALUE_1 0x06B2 01350 01351 #define VL53LX_RANGING_CORE__STATIC_DN_VALUE_REF_1 0x06B3 01352 01353 #define VL53LX_RANGING_CORE__MONITOR_UP_DN 0x06B4 01354 01355 #define VL53LX_RANGING_CORE__INVERT_UP_DN 0x06B5 01356 01357 #define VL53LX_RANGING_CORE__CPUMP_1 0x06B6 01358 01359 #define VL53LX_RANGING_CORE__CPUMP_2 0x06B7 01360 01361 #define VL53LX_RANGING_CORE__CPUMP_3 0x06B8 01362 01363 #define VL53LX_RANGING_CORE__OSC_1 0x06B9 01364 01365 #define VL53LX_RANGING_CORE__PLL_1 0x06BB 01366 01367 #define VL53LX_RANGING_CORE__PLL_2 0x06BC 01368 01369 #define VL53LX_RANGING_CORE__REFERENCE_1 0x06BD 01370 01371 #define VL53LX_RANGING_CORE__REFERENCE_3 0x06BF 01372 01373 #define VL53LX_RANGING_CORE__REFERENCE_4 0x06C0 01374 01375 #define VL53LX_RANGING_CORE__REFERENCE_5 0x06C1 01376 01377 #define VL53LX_RANGING_CORE__REGAVDD1V2 0x06C3 01378 01379 #define VL53LX_RANGING_CORE__CALIB_1 0x06C4 01380 01381 #define VL53LX_RANGING_CORE__CALIB_2 0x06C5 01382 01383 #define VL53LX_RANGING_CORE__CALIB_3 0x06C6 01384 01385 #define VL53LX_RANGING_CORE__TST_MUX_SEL1 0x06C9 01386 01387 #define VL53LX_RANGING_CORE__TST_MUX_SEL2 0x06CA 01388 01389 #define VL53LX_RANGING_CORE__TST_MUX 0x06CB 01390 01391 #define VL53LX_RANGING_CORE__GPIO_OUT_TESTMUX 0x06CC 01392 01393 #define VL53LX_RANGING_CORE__CUSTOM_FE 0x06CD 01394 01395 #define VL53LX_RANGING_CORE__CUSTOM_FE_2 0x06CE 01396 01397 #define VL53LX_RANGING_CORE__SPAD_READOUT 0x06CF 01398 01399 #define VL53LX_RANGING_CORE__SPAD_READOUT_1 0x06D0 01400 01401 #define VL53LX_RANGING_CORE__SPAD_READOUT_2 0x06D1 01402 01403 #define VL53LX_RANGING_CORE__SPAD_PS 0x06D2 01404 01405 #define VL53LX_RANGING_CORE__LASER_SAFETY_2 0x06D4 01406 01407 #define VL53LX_RANGING_CORE__NVM_CTRL__MODE 0x0780 01408 01409 #define VL53LX_RANGING_CORE__NVM_CTRL__PDN 0x0781 01410 01411 #define VL53LX_RANGING_CORE__NVM_CTRL__PROGN 0x0782 01412 01413 #define VL53LX_RANGING_CORE__NVM_CTRL__READN 0x0783 01414 01415 #define VL53LX_RANGING_CORE__NVM_CTRL__PULSE_WIDTH_MSB 0x0784 01416 01417 #define VL53LX_RANGING_CORE__NVM_CTRL__PULSE_WIDTH_LSB 0x0785 01418 01419 #define VL53LX_RANGING_CORE__NVM_CTRL__HV_RISE_MSB 0x0786 01420 01421 #define VL53LX_RANGING_CORE__NVM_CTRL__HV_RISE_LSB 0x0787 01422 01423 #define VL53LX_RANGING_CORE__NVM_CTRL__HV_FALL_MSB 0x0788 01424 01425 #define VL53LX_RANGING_CORE__NVM_CTRL__HV_FALL_LSB 0x0789 01426 01427 #define VL53LX_RANGING_CORE__NVM_CTRL__TST 0x078A 01428 01429 #define VL53LX_RANGING_CORE__NVM_CTRL__TESTREAD 0x078B 01430 01431 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAIN_MMM 0x078C 01432 01433 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAIN_LMM 0x078D 01434 01435 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAIN_LLM 0x078E 01436 01437 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAIN_LLL 0x078F 01438 01439 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAOUT_MMM 0x0790 01440 01441 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAOUT_LMM 0x0791 01442 01443 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAOUT_LLM 0x0792 01444 01445 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAOUT_LLL 0x0793 01446 01447 #define VL53LX_RANGING_CORE__NVM_CTRL__ADDR 0x0794 01448 01449 #define VL53LX_RANGING_CORE__NVM_CTRL__DATAOUT_ECC 0x0795 01450 01451 #define VL53LX_RANGING_CORE__RET_SPAD_EN_0 0x0796 01452 01453 #define VL53LX_RANGING_CORE__RET_SPAD_EN_1 0x0797 01454 01455 #define VL53LX_RANGING_CORE__RET_SPAD_EN_2 0x0798 01456 01457 #define VL53LX_RANGING_CORE__RET_SPAD_EN_3 0x0799 01458 01459 #define VL53LX_RANGING_CORE__RET_SPAD_EN_4 0x079A 01460 01461 #define VL53LX_RANGING_CORE__RET_SPAD_EN_5 0x079B 01462 01463 #define VL53LX_RANGING_CORE__RET_SPAD_EN_6 0x079C 01464 01465 #define VL53LX_RANGING_CORE__RET_SPAD_EN_7 0x079D 01466 01467 #define VL53LX_RANGING_CORE__RET_SPAD_EN_8 0x079E 01468 01469 #define VL53LX_RANGING_CORE__RET_SPAD_EN_9 0x079F 01470 01471 #define VL53LX_RANGING_CORE__RET_SPAD_EN_10 0x07A0 01472 01473 #define VL53LX_RANGING_CORE__RET_SPAD_EN_11 0x07A1 01474 01475 #define VL53LX_RANGING_CORE__RET_SPAD_EN_12 0x07A2 01476 01477 #define VL53LX_RANGING_CORE__RET_SPAD_EN_13 0x07A3 01478 01479 #define VL53LX_RANGING_CORE__RET_SPAD_EN_14 0x07A4 01480 01481 #define VL53LX_RANGING_CORE__RET_SPAD_EN_15 0x07A5 01482 01483 #define VL53LX_RANGING_CORE__RET_SPAD_EN_16 0x07A6 01484 01485 #define VL53LX_RANGING_CORE__RET_SPAD_EN_17 0x07A7 01486 01487 #define VL53LX_RANGING_CORE__SPAD_SHIFT_EN 0x07BA 01488 01489 #define VL53LX_RANGING_CORE__SPAD_DISABLE_CTRL 0x07BB 01490 01491 #define VL53LX_RANGING_CORE__SPAD_EN_SHIFT_OUT_DEBUG 0x07BC 01492 01493 #define VL53LX_RANGING_CORE__SPI_MODE 0x07BD 01494 01495 #define VL53LX_RANGING_CORE__GPIO_DIR 0x07BE 01496 01497 #define VL53LX_RANGING_CORE__VCSEL_PERIOD 0x0880 01498 01499 #define VL53LX_RANGING_CORE__VCSEL_START 0x0881 01500 01501 #define VL53LX_RANGING_CORE__VCSEL_STOP 0x0882 01502 01503 #define VL53LX_RANGING_CORE__VCSEL_1 0x0885 01504 01505 #define VL53LX_RANGING_CORE__VCSEL_STATUS 0x088D 01506 01507 #define VL53LX_RANGING_CORE__STATUS 0x0980 01508 01509 #define VL53LX_RANGING_CORE__LASER_CONTINUITY_STATE 0x0981 01510 01511 #define VL53LX_RANGING_CORE__RANGE_1_MMM 0x0982 01512 01513 #define VL53LX_RANGING_CORE__RANGE_1_LMM 0x0983 01514 01515 #define VL53LX_RANGING_CORE__RANGE_1_LLM 0x0984 01516 01517 #define VL53LX_RANGING_CORE__RANGE_1_LLL 0x0985 01518 01519 #define VL53LX_RANGING_CORE__RANGE_REF_1_MMM 0x0986 01520 01521 #define VL53LX_RANGING_CORE__RANGE_REF_1_LMM 0x0987 01522 01523 #define VL53LX_RANGING_CORE__RANGE_REF_1_LLM 0x0988 01524 01525 #define VL53LX_RANGING_CORE__RANGE_REF_1_LLL 0x0989 01526 01527 #define VL53LX_RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_MMM 0x098A 01528 01529 #define VL53LX_RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LMM 0x098B 01530 01531 #define VL53LX_RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LLM 0x098C 01532 01533 #define VL53LX_RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LLL 0x098D 01534 01535 #define VL53LX_RANGING_CORE__RANGING_TOTAL_EVENTS_1_MMM 0x098E 01536 01537 #define VL53LX_RANGING_CORE__RANGING_TOTAL_EVENTS_1_LMM 0x098F 01538 01539 #define VL53LX_RANGING_CORE__RANGING_TOTAL_EVENTS_1_LLM 0x0990 01540 01541 #define VL53LX_RANGING_CORE__RANGING_TOTAL_EVENTS_1_LLL 0x0991 01542 01543 #define VL53LX_RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_MMM 0x0992 01544 01545 #define VL53LX_RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LMM 0x0993 01546 01547 #define VL53LX_RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LLM 0x0994 01548 01549 #define VL53LX_RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LLL 0x0995 01550 01551 #define VL53LX_RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_MM 0x0996 01552 01553 #define VL53LX_RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_LM 0x0997 01554 01555 #define VL53LX_RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_LL 0x0998 01556 01557 #define VL53LX_RANGING_CORE__AMBIENT_MISMATCH_MM 0x0999 01558 01559 #define VL53LX_RANGING_CORE__AMBIENT_MISMATCH_LM 0x099A 01560 01561 #define VL53LX_RANGING_CORE__AMBIENT_MISMATCH_LL 0x099B 01562 01563 #define VL53LX_RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_MMM 0x099C 01564 01565 #define VL53LX_RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LMM 0x099D 01566 01567 #define VL53LX_RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LLM 0x099E 01568 01569 #define VL53LX_RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LLL 0x099F 01570 01571 #define VL53LX_RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_MMM 0x09A0 01572 01573 #define VL53LX_RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LMM 0x09A1 01574 01575 #define VL53LX_RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LLM 0x09A2 01576 01577 #define VL53LX_RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LLL 0x09A3 01578 01579 #define VL53LX_RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_MMM 0x09A4 01580 01581 #define VL53LX_RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LMM 0x09A5 01582 01583 #define VL53LX_RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LLM 0x09A6 01584 01585 #define VL53LX_RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LLL 0x09A7 01586 01587 #define VL53LX_RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_MM 0x09A8 01588 01589 #define VL53LX_RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_LM 0x09A9 01590 01591 #define VL53LX_RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_LL 0x09AA 01592 01593 #define VL53LX_RANGING_CORE__AMBIENT_MISMATCH_REF_MM 0x09AB 01594 01595 #define VL53LX_RANGING_CORE__AMBIENT_MISMATCH_REF_LM 0x09AC 01596 01597 #define VL53LX_RANGING_CORE__AMBIENT_MISMATCH_REF_LL 0x09AD 01598 01599 #define VL53LX_RANGING_CORE__GPIO_CONFIG__A0 0x0A00 01600 01601 #define VL53LX_RANGING_CORE__RESET_CONTROL__A0 0x0A01 01602 01603 #define VL53LX_RANGING_CORE__INTR_MANAGER__A0 0x0A02 01604 01605 #define VL53LX_RANGING_CORE__POWER_FSM_TIME_OSC__A0 0x0A06 01606 01607 #define VL53LX_RANGING_CORE__VCSEL_ATEST__A0 0x0A07 01608 01609 #define VL53LX_RANGING_CORE__VCSEL_PERIOD_CLIPPED__A0 0x0A08 01610 01611 #define VL53LX_RANGING_CORE__VCSEL_STOP_CLIPPED__A0 0x0A09 01612 01613 #define VL53LX_RANGING_CORE__CALIB_2__A0 0x0A0A 01614 01615 #define VL53LX_RANGING_CORE__STOP_CONDITION__A0 0x0A0B 01616 01617 #define VL53LX_RANGING_CORE__STATUS_RESET__A0 0x0A0C 01618 01619 #define VL53LX_RANGING_CORE__READOUT_CFG__A0 0x0A0D 01620 01621 #define VL53LX_RANGING_CORE__WINDOW_SETTING__A0 0x0A0E 01622 01623 #define VL53LX_RANGING_CORE__VCSEL_DELAY__A0 0x0A1A 01624 01625 #define VL53LX_RANGING_CORE__REFERENCE_2__A0 0x0A1B 01626 01627 #define VL53LX_RANGING_CORE__REGAVDD1V2__A0 0x0A1D 01628 01629 #define VL53LX_RANGING_CORE__TST_MUX__A0 0x0A1F 01630 01631 #define VL53LX_RANGING_CORE__CUSTOM_FE_2__A0 0x0A20 01632 01633 #define VL53LX_RANGING_CORE__SPAD_READOUT__A0 0x0A21 01634 01635 #define VL53LX_RANGING_CORE__CPUMP_1__A0 0x0A22 01636 01637 #define VL53LX_RANGING_CORE__SPARE_REGISTER__A0 0x0A23 01638 01639 #define VL53LX_RANGING_CORE__VCSEL_CONT_STAGE5_BYPASS__A0 0x0A24 01640 01641 #define VL53LX_RANGING_CORE__RET_SPAD_EN_18 0x0A25 01642 01643 #define VL53LX_RANGING_CORE__RET_SPAD_EN_19 0x0A26 01644 01645 #define VL53LX_RANGING_CORE__RET_SPAD_EN_20 0x0A27 01646 01647 #define VL53LX_RANGING_CORE__RET_SPAD_EN_21 0x0A28 01648 01649 #define VL53LX_RANGING_CORE__RET_SPAD_EN_22 0x0A29 01650 01651 #define VL53LX_RANGING_CORE__RET_SPAD_EN_23 0x0A2A 01652 01653 #define VL53LX_RANGING_CORE__RET_SPAD_EN_24 0x0A2B 01654 01655 #define VL53LX_RANGING_CORE__RET_SPAD_EN_25 0x0A2C 01656 01657 #define VL53LX_RANGING_CORE__RET_SPAD_EN_26 0x0A2D 01658 01659 #define VL53LX_RANGING_CORE__RET_SPAD_EN_27 0x0A2E 01660 01661 #define VL53LX_RANGING_CORE__RET_SPAD_EN_28 0x0A2F 01662 01663 #define VL53LX_RANGING_CORE__RET_SPAD_EN_29 0x0A30 01664 01665 #define VL53LX_RANGING_CORE__RET_SPAD_EN_30 0x0A31 01666 01667 #define VL53LX_RANGING_CORE__RET_SPAD_EN_31 0x0A32 01668 01669 #define VL53LX_RANGING_CORE__REF_SPAD_EN_0__EWOK 0x0A33 01670 01671 #define VL53LX_RANGING_CORE__REF_SPAD_EN_1__EWOK 0x0A34 01672 01673 #define VL53LX_RANGING_CORE__REF_SPAD_EN_2__EWOK 0x0A35 01674 01675 #define VL53LX_RANGING_CORE__REF_SPAD_EN_3__EWOK 0x0A36 01676 01677 #define VL53LX_RANGING_CORE__REF_SPAD_EN_4__EWOK 0x0A37 01678 01679 #define VL53LX_RANGING_CORE__REF_SPAD_EN_5__EWOK 0x0A38 01680 01681 #define VL53LX_RANGING_CORE__REF_EN_START_SELECT 0x0A39 01682 01683 #define VL53LX_RANGING_CORE__REGDVDD1V2_ATEST__EWOK 0x0A41 01684 01685 #define VL53LX_SOFT_RESET_GO1 0x0B00 01686 01687 #define VL53LX_PRIVATE__PATCH_BASE_ADDR_RSLV 0x0E00 01688 01689 #define VL53LX_PREV_SHADOW_RESULT__INTERRUPT_STATUS 0x0ED0 01690 01691 #define VL53LX_PREV_SHADOW_RESULT__RANGE_STATUS 0x0ED1 01692 01693 #define VL53LX_PREV_SHADOW_RESULT__REPORT_STATUS 0x0ED2 01694 01695 #define VL53LX_PREV_SHADOW_RESULT__STREAM_COUNT 0x0ED3 01696 01697 #define VL53LX_PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0 0x0ED4 01698 01699 #define VL53LX_PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x0ED4 01700 01701 #define VL53LX_PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x0ED5 01702 01703 #define VL53LX_PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0 0x0ED6 01704 01705 #define VL53LX_PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI 0x0ED6 01706 01707 #define VL53LX_PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO 0x0ED7 01708 01709 #define VL53LX_PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0 0x0ED8 01710 01711 #define VL53LX_PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI 0x0ED8 01712 01713 #define VL53LX_PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO 0x0ED9 01714 01715 #define VL53LX_PREV_SHADOW_RESULT__SIGMA_SD0 0x0EDA 01716 01717 #define VL53LX_PREV_SHADOW_RESULT__SIGMA_SD0_HI 0x0EDA 01718 01719 #define VL53LX_PREV_SHADOW_RESULT__SIGMA_SD0_LO 0x0EDB 01720 01721 #define VL53LX_PREV_SHADOW_RESULT__PHASE_SD0 0x0EDC 01722 01723 #define VL53LX_PREV_SHADOW_RESULT__PHASE_SD0_HI 0x0EDC 01724 01725 #define VL53LX_PREV_SHADOW_RESULT__PHASE_SD0_LO 0x0EDD 01726 01727 #define VL53LX_PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0 0x0EDE 01728 01729 #define VL53LX_PREV__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI 0x0EDE 01730 01731 #define VL53LX_PREV__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO 0x0EDF 01732 01733 #define VL53LX_PREV__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0 0x0EE0 01734 01735 #define VL53LX_PPEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI 0x0EE0 01736 01737 #define VL53LX_PPEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO 0x0EE1 01738 01739 #define VL53LX_PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0 0x0EE2 01740 01741 #define VL53LX_PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x0EE2 01742 01743 #define VL53LX_PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x0EE3 01744 01745 #define VL53LX_PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0 0x0EE4 01746 01747 #define VL53LX_PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x0EE4 01748 01749 #define VL53LX_PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x0EE5 01750 01751 #define VL53LX_PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0 0x0EE6 01752 01753 #define VL53LX_PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI 0x0EE6 01754 01755 #define VL53LX_PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO 0x0EE7 01756 01757 #define VL53LX_PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1 0x0EE8 01758 01759 #define VL53LX_PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI 0x0EE8 01760 01761 #define VL53LX_PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO 0x0EE9 01762 01763 #define VL53LX_PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1 0x0EEA 01764 01765 #define VL53LX_PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI 0x0EEA 01766 01767 #define VL53LX_PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO 0x0EEB 01768 01769 #define VL53LX_PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1 0x0EEC 01770 01771 #define VL53LX_PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI 0x0EEC 01772 01773 #define VL53LX_PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO 0x0EED 01774 01775 #define VL53LX_PREV_SHADOW_RESULT__SIGMA_SD1 0x0EEE 01776 01777 #define VL53LX_PREV_SHADOW_RESULT__SIGMA_SD1_HI 0x0EEE 01778 01779 #define VL53LX_PREV_SHADOW_RESULT__SIGMA_SD1_LO 0x0EEF 01780 01781 #define VL53LX_PREV_SHADOW_RESULT__PHASE_SD1 0x0EF0 01782 01783 #define VL53LX_PREV_SHADOW_RESULT__PHASE_SD1_HI 0x0EF0 01784 01785 #define VL53LX_PREV_SHADOW_RESULT__PHASE_SD1_LO 0x0EF1 01786 01787 #define VL53LX_PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1 0x0EF2 01788 01789 #define VL53LX_PFINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI 0x0EF2 01790 01791 #define VL53LX_PFINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO 0x0EF3 01792 01793 #define VL53LX_PREV_SHADOW_RESULT__SPARE_0_SD1 0x0EF4 01794 01795 #define VL53LX_PREV_SHADOW_RESULT__SPARE_0_SD1_HI 0x0EF4 01796 01797 #define VL53LX_PREV_SHADOW_RESULT__SPARE_0_SD1_LO 0x0EF5 01798 01799 #define VL53LX_PREV_SHADOW_RESULT__SPARE_1_SD1 0x0EF6 01800 01801 #define VL53LX_PREV_SHADOW_RESULT__SPARE_1_SD1_HI 0x0EF6 01802 01803 #define VL53LX_PREV_SHADOW_RESULT__SPARE_1_SD1_LO 0x0EF7 01804 01805 #define VL53LX_PREV_SHADOW_RESULT__SPARE_2_SD1 0x0EF8 01806 01807 #define VL53LX_PREV_SHADOW_RESULT__SPARE_2_SD1_HI 0x0EF8 01808 01809 #define VL53LX_PREV_SHADOW_RESULT__SPARE_2_SD1_LO 0x0EF9 01810 01811 #define VL53LX_PREV_SHADOW_RESULT__SPARE_3_SD1 0x0EFA 01812 01813 #define VL53LX_PREV_SHADOW_RESULT__SPARE_3_SD1_HI 0x0EFA 01814 01815 #define VL53LX_PREV_SHADOW_RESULT__SPARE_3_SD1_LO 0x0EFB 01816 01817 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 0x0EFC 01818 01819 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3 0x0EFC 01820 01821 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2 0x0EFD 01822 01823 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1 0x0EFE 01824 01825 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0 0x0EFF 01826 01827 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0 0x0F00 01828 01829 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3 0x0F00 01830 01831 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2 0x0F01 01832 01833 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1 0x0F02 01834 01835 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0 0x0F03 01836 01837 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0 0x0F04 01838 01839 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3 0x0F04 01840 01841 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2 0x0F05 01842 01843 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1 0x0F06 01844 01845 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0 0x0F07 01846 01847 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0 0x0F08 01848 01849 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3 0x0F08 01850 01851 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2 0x0F09 01852 01853 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1 0x0F0A 01854 01855 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0 0x0F0B 01856 01857 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1 0x0F0C 01858 01859 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3 0x0F0C 01860 01861 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2 0x0F0D 01862 01863 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1 0x0F0E 01864 01865 #define VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0 0x0F0F 01866 01867 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1 0x0F10 01868 01869 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3 0x0F10 01870 01871 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2 0x0F11 01872 01873 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1 0x0F12 01874 01875 #define VL53LX_PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0 0x0F13 01876 01877 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1 0x0F14 01878 01879 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3 0x0F14 01880 01881 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2 0x0F15 01882 01883 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1 0x0F16 01884 01885 #define VL53LX_PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0 0x0F17 01886 01887 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1 0x0F18 01888 01889 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3 0x0F18 01890 01891 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2 0x0F19 01892 01893 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1 0x0F1A 01894 01895 #define VL53LX_PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0 0x0F1B 01896 01897 #define VL53LX_PREV_SHADOW_RESULT_CORE__SPARE_0 0x0F1C 01898 01899 #define VL53LX_RESULT__DEBUG_STATUS 0x0F20 01900 01901 #define VL53LX_RESULT__DEBUG_STAGE 0x0F21 01902 01903 #define VL53LX_GPH__SYSTEM__THRESH_RATE_HIGH 0x0F24 01904 01905 #define VL53LX_GPH__SYSTEM__THRESH_RATE_HIGH_HI 0x0F24 01906 01907 #define VL53LX_GPH__SYSTEM__THRESH_RATE_HIGH_LO 0x0F25 01908 01909 #define VL53LX_GPH__SYSTEM__THRESH_RATE_LOW 0x0F26 01910 01911 #define VL53LX_GPH__SYSTEM__THRESH_RATE_LOW_HI 0x0F26 01912 01913 #define VL53LX_GPH__SYSTEM__THRESH_RATE_LOW_LO 0x0F27 01914 01915 #define VL53LX_GPH__SYSTEM__INTERRUPT_CONFIG_GPIO 0x0F28 01916 01917 #define VL53LX_GPH__DSS_CONFIG__ROI_MODE_CONTROL 0x0F2F 01918 01919 #define VL53LX_GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT 0x0F30 01920 01921 #define VL53LX_GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_HI 0x0F30 01922 01923 #define VL53LX_GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_LO 0x0F31 01924 01925 #define VL53LX_GPH__DSS_CONFIG__MANUAL_BLOCK_SELECT 0x0F32 01926 01927 #define VL53LX_GPH__DSS_CONFIG__MAX_SPADS_LIMIT 0x0F33 01928 01929 #define VL53LX_GPH__DSS_CONFIG__MIN_SPADS_LIMIT 0x0F34 01930 01931 #define VL53LX_GPH__MM_CONFIG__TIMEOUT_MACROP_A_HI 0x0F36 01932 01933 #define VL53LX_GPH__MM_CONFIG__TIMEOUT_MACROP_A_LO 0x0F37 01934 01935 #define VL53LX_GPH__MM_CONFIG__TIMEOUT_MACROP_B_HI 0x0F38 01936 01937 #define VL53LX_GPH__MM_CONFIG__TIMEOUT_MACROP_B_LO 0x0F39 01938 01939 #define VL53LX_GPH__RANGE_CONFIG__TIMEOUT_MACROP_A_HI 0x0F3A 01940 01941 #define VL53LX_GPH__RANGE_CONFIG__TIMEOUT_MACROP_A_LO 0x0F3B 01942 01943 #define VL53LX_GPH__RANGE_CONFIG__VCSEL_PERIOD_A 0x0F3C 01944 01945 #define VL53LX_GPH__RANGE_CONFIG__VCSEL_PERIOD_B 0x0F3D 01946 01947 #define VL53LX_GPH__RANGE_CONFIG__TIMEOUT_MACROP_B_HI 0x0F3E 01948 01949 #define VL53LX_GPH__RANGE_CONFIG__TIMEOUT_MACROP_B_LO 0x0F3F 01950 01951 #define VL53LX_GPH__RANGE_CONFIG__SIGMA_THRESH 0x0F40 01952 01953 #define VL53LX_GPH__RANGE_CONFIG__SIGMA_THRESH_HI 0x0F40 01954 01955 #define VL53LX_GPH__RANGE_CONFIG__SIGMA_THRESH_LO 0x0F41 01956 01957 #define VL53LX_GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS 0x0F42 01958 01959 #define VL53LX_GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_HI 0x0F42 01960 01961 #define VL53LX_GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_LO 0x0F43 01962 01963 #define VL53LX_GPH__RANGE_CONFIG__VALID_PHASE_LOW 0x0F44 01964 01965 #define VL53LX_GPH__RANGE_CONFIG__VALID_PHASE_HIGH 0x0F45 01966 01967 #define VL53LX_FIRMWARE__INTERNAL_STREAM_COUNT_DIV 0x0F46 01968 01969 #define VL53LX_FIRMWARE__INTERNAL_STREAM_COUNTER_VAL 0x0F47 01970 01971 #define VL53LX_DSS_CALC__ROI_CTRL 0x0F54 01972 01973 #define VL53LX_DSS_CALC__SPARE_1 0x0F55 01974 01975 #define VL53LX_DSS_CALC__SPARE_2 0x0F56 01976 01977 #define VL53LX_DSS_CALC__SPARE_3 0x0F57 01978 01979 #define VL53LX_DSS_CALC__SPARE_4 0x0F58 01980 01981 #define VL53LX_DSS_CALC__SPARE_5 0x0F59 01982 01983 #define VL53LX_DSS_CALC__SPARE_6 0x0F5A 01984 01985 #define VL53LX_DSS_CALC__SPARE_7 0x0F5B 01986 01987 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_0 0x0F5C 01988 01989 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_1 0x0F5D 01990 01991 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_2 0x0F5E 01992 01993 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_3 0x0F5F 01994 01995 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_4 0x0F60 01996 01997 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_5 0x0F61 01998 01999 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_6 0x0F62 02000 02001 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_7 0x0F63 02002 02003 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_8 0x0F64 02004 02005 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_9 0x0F65 02006 02007 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_10 0x0F66 02008 02009 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_11 0x0F67 02010 02011 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_12 0x0F68 02012 02013 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_13 0x0F69 02014 02015 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_14 0x0F6A 02016 02017 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_15 0x0F6B 02018 02019 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_16 0x0F6C 02020 02021 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_17 0x0F6D 02022 02023 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_18 0x0F6E 02024 02025 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_19 0x0F6F 02026 02027 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_20 0x0F70 02028 02029 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_21 0x0F71 02030 02031 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_22 0x0F72 02032 02033 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_23 0x0F73 02034 02035 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_24 0x0F74 02036 02037 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_25 0x0F75 02038 02039 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_26 0x0F76 02040 02041 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_27 0x0F77 02042 02043 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_28 0x0F78 02044 02045 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_29 0x0F79 02046 02047 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_30 0x0F7A 02048 02049 #define VL53LX_DSS_CALC__USER_ROI_SPAD_EN_31 0x0F7B 02050 02051 #define VL53LX_DSS_CALC__USER_ROI_0 0x0F7C 02052 02053 #define VL53LX_DSS_CALC__USER_ROI_1 0x0F7D 02054 02055 #define VL53LX_DSS_CALC__MODE_ROI_0 0x0F7E 02056 02057 #define VL53LX_DSS_CALC__MODE_ROI_1 0x0F7F 02058 02059 #define VL53LX_SIGMA_ESTIMATOR_CALC__SPARE_0 0x0F80 02060 02061 #define VL53LX_VHV_RESULT__PEAK_SIGNAL_RATE_MCPS 0x0F82 02062 02063 #define VL53LX_VHV_RESULT__PEAK_SIGNAL_RATE_MCPS_HI 0x0F82 02064 02065 #define VL53LX_VHV_RESULT__PEAK_SIGNAL_RATE_MCPS_LO 0x0F83 02066 02067 #define VL53LX_VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF 0x0F84 02068 02069 #define VL53LX_VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_3 0x0F84 02070 02071 #define VL53LX_VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_2 0x0F85 02072 02073 #define VL53LX_VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_1 0x0F86 02074 02075 #define VL53LX_VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_0 0x0F87 02076 02077 #define VL53LX_PHASECAL_RESULT__PHASE_OUTPUT_REF 0x0F88 02078 02079 #define VL53LX_PHASECAL_RESULT__PHASE_OUTPUT_REF_HI 0x0F88 02080 02081 #define VL53LX_PHASECAL_RESULT__PHASE_OUTPUT_REF_LO 0x0F89 02082 02083 #define VL53LX_DSS_RESULT__TOTAL_RATE_PER_SPAD 0x0F8A 02084 02085 #define VL53LX_DSS_RESULT__TOTAL_RATE_PER_SPAD_HI 0x0F8A 02086 02087 #define VL53LX_DSS_RESULT__TOTAL_RATE_PER_SPAD_LO 0x0F8B 02088 02089 #define VL53LX_DSS_RESULT__ENABLED_BLOCKS 0x0F8C 02090 02091 #define VL53LX_DSS_RESULT__NUM_REQUESTED_SPADS 0x0F8E 02092 02093 #define VL53LX_DSS_RESULT__NUM_REQUESTED_SPADS_HI 0x0F8E 02094 02095 #define VL53LX_DSS_RESULT__NUM_REQUESTED_SPADS_LO 0x0F8F 02096 02097 #define VL53LX_MM_RESULT__INNER_INTERSECTION_RATE 0x0F92 02098 02099 #define VL53LX_MM_RESULT__INNER_INTERSECTION_RATE_HI 0x0F92 02100 02101 #define VL53LX_MM_RESULT__INNER_INTERSECTION_RATE_LO 0x0F93 02102 02103 #define VL53LX_MM_RESULT__OUTER_COMPLEMENT_RATE 0x0F94 02104 02105 #define VL53LX_MM_RESULT__OUTER_COMPLEMENT_RATE_HI 0x0F94 02106 02107 #define VL53LX_MM_RESULT__OUTER_COMPLEMENT_RATE_LO 0x0F95 02108 02109 #define VL53LX_MM_RESULT__TOTAL_OFFSET 0x0F96 02110 02111 #define VL53LX_MM_RESULT__TOTAL_OFFSET_HI 0x0F96 02112 02113 #define VL53LX_MM_RESULT__TOTAL_OFFSET_LO 0x0F97 02114 02115 #define VL53LX_XTALK_CALC__XTALK_FOR_ENABLED_SPADS 0x0F98 02116 02117 #define VL53LX_XTALK_CALC__XTALK_FOR_ENABLED_SPADS_3 0x0F98 02118 02119 #define VL53LX_XTALK_CALC__XTALK_FOR_ENABLED_SPADS_2 0x0F99 02120 02121 #define VL53LX_XTALK_CALC__XTALK_FOR_ENABLED_SPADS_1 0x0F9A 02122 02123 #define VL53LX_XTALK_CALC__XTALK_FOR_ENABLED_SPADS_0 0x0F9B 02124 02125 #define VL53LX_XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS 0x0F9C 02126 02127 #define VL53LX_XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_3 0x0F9C 02128 02129 #define VL53LX_XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_2 0x0F9D 02130 02131 #define VL53LX_XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_1 0x0F9E 02132 02133 #define VL53LX_XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_0 0x0F9F 02134 02135 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS 0x0FA0 02136 02137 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_3 0x0FA0 02138 02139 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_2 0x0FA1 02140 02141 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_1 0x0FA2 02142 02143 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_0 0x0FA3 02144 02145 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS 0x0FA4 02146 02147 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_3 0x0FA4 02148 02149 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_2 0x0FA5 02150 02151 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_1 0x0FA6 02152 02153 #define VL53LX_XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_0 0x0FA7 02154 02155 #define VL53LX_RANGE_RESULT__ACCUM_PHASE 0x0FA8 02156 02157 #define VL53LX_RANGE_RESULT__ACCUM_PHASE_3 0x0FA8 02158 02159 #define VL53LX_RANGE_RESULT__ACCUM_PHASE_2 0x0FA9 02160 02161 #define VL53LX_RANGE_RESULT__ACCUM_PHASE_1 0x0FAA 02162 02163 #define VL53LX_RANGE_RESULT__ACCUM_PHASE_0 0x0FAB 02164 02165 #define VL53LX_RANGE_RESULT__OFFSET_CORRECTED_RANGE 0x0FAC 02166 02167 #define VL53LX_RANGE_RESULT__OFFSET_CORRECTED_RANGE_HI 0x0FAC 02168 02169 #define VL53LX_RANGE_RESULT__OFFSET_CORRECTED_RANGE_LO 0x0FAD 02170 02171 #define VL53LX_SHADOW_PHASECAL_RESULT__VCSEL_START 0x0FAE 02172 02173 #define VL53LX_SHADOW_RESULT__INTERRUPT_STATUS 0x0FB0 02174 02175 #define VL53LX_SHADOW_RESULT__RANGE_STATUS 0x0FB1 02176 02177 #define VL53LX_SHADOW_RESULT__REPORT_STATUS 0x0FB2 02178 02179 #define VL53LX_SHADOW_RESULT__STREAM_COUNT 0x0FB3 02180 02181 #define VL53LX_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0 0x0FB4 02182 02183 #define VL53LX_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x0FB4 02184 02185 #define VL53LX_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x0FB5 02186 02187 #define VL53LX_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0 0x0FB6 02188 02189 #define VL53LX_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI 0x0FB6 02190 02191 #define VL53LX_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO 0x0FB7 02192 02193 #define VL53LX_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0 0x0FB8 02194 02195 #define VL53LX_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI 0x0FB8 02196 02197 #define VL53LX_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO 0x0FB9 02198 02199 #define VL53LX_SHADOW_RESULT__SIGMA_SD0 0x0FBA 02200 02201 #define VL53LX_SHADOW_RESULT__SIGMA_SD0_HI 0x0FBA 02202 02203 #define VL53LX_SHADOW_RESULT__SIGMA_SD0_LO 0x0FBB 02204 02205 #define VL53LX_SHADOW_RESULT__PHASE_SD0 0x0FBC 02206 02207 #define VL53LX_SHADOW_RESULT__PHASE_SD0_HI 0x0FBC 02208 02209 #define VL53LX_SHADOW_RESULT__PHASE_SD0_LO 0x0FBD 02210 02211 #define VL53LX_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0 0x0FBE 02212 02213 #define VL53LX_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI 0x0FBE 02214 02215 #define VL53LX_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO 0x0FBF 02216 02217 #define VL53LX_SHPEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0 0x0FC0 02218 02219 #define VL53LX_SHPEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI 0x0FC0 02220 02221 #define VL53LX_SHPEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO 0x0FC1 02222 02223 #define VL53LX_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0 0x0FC2 02224 02225 #define VL53LX_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x0FC2 02226 02227 #define VL53LX_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x0FC3 02228 02229 #define VL53LX_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0 0x0FC4 02230 02231 #define VL53LX_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI 0x0FC4 02232 02233 #define VL53LX_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO 0x0FC5 02234 02235 #define VL53LX_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0 0x0FC6 02236 02237 #define VL53LX_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI 0x0FC6 02238 02239 #define VL53LX_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO 0x0FC7 02240 02241 #define VL53LX_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1 0x0FC8 02242 02243 #define VL53LX_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI 0x0FC8 02244 02245 #define VL53LX_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO 0x0FC9 02246 02247 #define VL53LX_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1 0x0FCA 02248 02249 #define VL53LX_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI 0x0FCA 02250 02251 #define VL53LX_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO 0x0FCB 02252 02253 #define VL53LX_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1 0x0FCC 02254 02255 #define VL53LX_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI 0x0FCC 02256 02257 #define VL53LX_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO 0x0FCD 02258 02259 #define VL53LX_SHADOW_RESULT__SIGMA_SD1 0x0FCE 02260 02261 #define VL53LX_SHADOW_RESULT__SIGMA_SD1_HI 0x0FCE 02262 02263 #define VL53LX_SHADOW_RESULT__SIGMA_SD1_LO 0x0FCF 02264 02265 #define VL53LX_SHADOW_RESULT__PHASE_SD1 0x0FD0 02266 02267 #define VL53LX_SHADOW_RESULT__PHASE_SD1_HI 0x0FD0 02268 02269 #define VL53LX_SHADOW_RESULT__PHASE_SD1_LO 0x0FD1 02270 02271 #define VL53LX_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1 0x0FD2 02272 02273 #define VL53LX_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI 0x0FD2 02274 02275 #define VL53LX_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO 0x0FD3 02276 02277 #define VL53LX_SHADOW_RESULT__SPARE_0_SD1 0x0FD4 02278 02279 #define VL53LX_SHADOW_RESULT__SPARE_0_SD1_HI 0x0FD4 02280 02281 #define VL53LX_SHADOW_RESULT__SPARE_0_SD1_LO 0x0FD5 02282 02283 #define VL53LX_SHADOW_RESULT__SPARE_1_SD1 0x0FD6 02284 02285 #define VL53LX_SHADOW_RESULT__SPARE_1_SD1_HI 0x0FD6 02286 02287 #define VL53LX_SHADOW_RESULT__SPARE_1_SD1_LO 0x0FD7 02288 02289 #define VL53LX_SHADOW_RESULT__SPARE_2_SD1 0x0FD8 02290 02291 #define VL53LX_SHADOW_RESULT__SPARE_2_SD1_HI 0x0FD8 02292 02293 #define VL53LX_SHADOW_RESULT__SPARE_2_SD1_LO 0x0FD9 02294 02295 #define VL53LX_SHADOW_RESULT__SPARE_3_SD1 0x0FDA 02296 02297 #define VL53LX_SHADOW_RESULT__THRESH_INFO 0x0FDB 02298 02299 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 0x0FDC 02300 02301 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3 0x0FDC 02302 02303 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2 0x0FDD 02304 02305 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1 0x0FDE 02306 02307 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0 0x0FDF 02308 02309 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0 0x0FE0 02310 02311 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3 0x0FE0 02312 02313 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2 0x0FE1 02314 02315 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1 0x0FE2 02316 02317 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0 0x0FE3 02318 02319 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0 0x0FE4 02320 02321 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3 0x0FE4 02322 02323 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2 0x0FE5 02324 02325 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1 0x0FE6 02326 02327 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0 0x0FE7 02328 02329 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0 0x0FE8 02330 02331 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3 0x0FE8 02332 02333 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2 0x0FE9 02334 02335 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1 0x0FEA 02336 02337 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0 0x0FEB 02338 02339 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1 0x0FEC 02340 02341 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3 0x0FEC 02342 02343 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2 0x0FED 02344 02345 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1 0x0FEE 02346 02347 #define VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0 0x0FEF 02348 02349 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1 0x0FF0 02350 02351 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3 0x0FF0 02352 02353 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2 0x0FF1 02354 02355 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1 0x0FF2 02356 02357 #define VL53LX_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0 0x0FF3 02358 02359 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1 0x0FF4 02360 02361 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3 0x0FF4 02362 02363 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2 0x0FF5 02364 02365 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1 0x0FF6 02366 02367 #define VL53LX_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0 0x0FF7 02368 02369 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1 0x0FF8 02370 02371 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3 0x0FF8 02372 02373 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2 0x0FF9 02374 02375 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1 0x0FFA 02376 02377 #define VL53LX_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0 0x0FFB 02378 02379 #define VL53LX_SHADOW_RESULT_CORE__SPARE_0 0x0FFC 02380 02381 #define VL53LX_SHADOW_PHASECAL_RESULT__REFERENCE_PHASE_HI 0x0FFE 02382 02383 #define VL53LX_SHADOW_PHASECAL_RESULT__REFERENCE_PHASE_LO 0x0FFF 02384 02385 02386 02387 02388 02389 // define from vl53lx_error_exceptions.h 02390 02391 #ifndef _VL53LX_ERROR_EXCEPTIONS_H_ 02392 #define _VL53LX_ERROR_EXCEPTIONS_H_ 02393 02394 #define IGNORE_DIVISION_BY_ZERO 0 02395 02396 #define IGNORE_XTALK_EXTRACTION_NO_SAMPLE_FAIL 0 02397 #define IGNORE_XTALK_EXTRACTION_SIGMA_LIMIT_FAIL 0 02398 #define IGNORE_XTALK_EXTRACTION_NO_SAMPLE_FOR_GRADIENT_WARN 0 02399 #define IGNORE_XTALK_EXTRACTION_SIGMA_LIMIT_FOR_GRADIENT_WARN 0 02400 #define IGNORE_XTALK_EXTRACTION_MISSING_SAMPLES_WARN 0 02401 02402 #define IGNORE_REF_SPAD_CHAR_NOT_ENOUGH_SPADS 0 02403 #define IGNORE_REF_SPAD_CHAR_RATE_TOO_HIGH 0 02404 #define IGNORE_REF_SPAD_CHAR_RATE_TOO_LOW 0 02405 02406 #define IGNORE_OFFSET_CAL_MISSING_SAMPLES 0 02407 #define IGNORE_OFFSET_CAL_SIGMA_TOO_HIGH 0 02408 #define IGNORE_OFFSET_CAL_RATE_TOO_HIGH 0 02409 #define IGNORE_OFFSET_CAL_SPAD_COUNT_TOO_LOW 0 02410 02411 #define IGNORE_ZONE_CAL_MISSING_SAMPLES 0 02412 #define IGNORE_ZONE_CAL_SIGMA_TOO_HIGH 0 02413 #define IGNORE_ZONE_CAL_RATE_TOO_HIGH 0 02414 02415 #endif 02416 02417 // define from vl53lx_platform_user_defines.h 02418 02419 #define do_division_u(dividend, divisor) (dividend / divisor) 02420 02421 #define do_division_s(dividend, divisor) (dividend / divisor) 02422 02423 02424 02425 #ifdef _MSC_VER 02426 #define DISABLE_WARNINGS() { \ 02427 __pragma(warning(push)); \ 02428 __pragma(warning(disable:4127)); \ 02429 } 02430 #define ENABLE_WARNINGS() { \ 02431 __pragma(warning( pop )); \ 02432 } 02433 #else 02434 02435 02436 #define DISABLE_WARNINGS() 02437 #define ENABLE_WARNINGS() 02438 #endif 02439 02440 02441 02442 02443 /*vl53lx_register_settings.h*/ 02444 02445 02446 #define VL53LX_DEVICESCHEDULERMODE_PSEUDO_SOLO 0x00 02447 #define VL53LX_DEVICESCHEDULERMODE_STREAMING 0x01 02448 #define VL53LX_DEVICESCHEDULERMODE_HISTOGRAM 0x02 02449 02450 02451 02452 02453 02454 #define VL53LX_DEVICEREADOUTMODE_SINGLE_SD (0x00 << 2) 02455 #define VL53LX_DEVICEREADOUTMODE_DUAL_SD (0x01 << 2) 02456 #define VL53LX_DEVICEREADOUTMODE_SPLIT_READOUT (0x02 << 2) 02457 #define VL53LX_DEVICEREADOUTMODE_SPLIT_MANUAL (0x03 << 2) 02458 02459 02460 02461 02462 02463 02464 #define VL53LX_DEVICEMEASUREMENTMODE_MODE_MASK 0xF0 02465 #define VL53LX_DEVICEMEASUREMENTMODE_STOP_MASK 0x0F 02466 02467 #define VL53LX_GROUPEDPARAMETERHOLD_ID_MASK 0x02 02468 02469 02470 02471 #define VL53LX_EWOK_I2C_DEV_ADDR_DEFAULT 0x29 02472 02473 #define VL53LX_OSC_FREQUENCY 0x00 02474 #define VL53LX_OSC_TRIM_DEFAULT 0x00 02475 #define VL53LX_OSC_FREQ_SET_DEFAULT 0x00 02476 02477 #define VL53LX_RANGE_HISTOGRAM_REF 0x08 02478 #define VL53LX_RANGE_HISTOGRAM_RET 0x10 02479 #define VL53LX_RANGE_HISTOGRAM_BOTH 0x18 02480 #define VL53LX_RANGE_HISTOGRAM_INIT 0x20 02481 #define VL53LX_RANGE_VHV_INIT 0x40 02482 02483 02484 #define VL53LX_RESULT_RANGE_STATUS 0x1F 02485 02486 02487 #define VL53LX_SYSTEM__SEED_CONFIG__MANUAL 0x00 02488 #define VL53LX_SYSTEM__SEED_CONFIG__STANDARD 0x01 02489 #define VL53LX_SYSTEM__SEED_CONFIG__EVEN_UPDATE_ONLY 0x02 02490 02491 02492 #define VL53LX_INTERRUPT_CONFIG_LEVEL_LOW 0x00 02493 #define VL53LX_INTERRUPT_CONFIG_LEVEL_HIGH 0x01 02494 #define VL53LX_INTERRUPT_CONFIG_OUT_OF_WINDOW 0x02 02495 #define VL53LX_INTERRUPT_CONFIG_IN_WINDOW 0x03 02496 #define VL53LX_INTERRUPT_CONFIG_NEW_SAMPLE_READY 0x20 02497 02498 02499 #define VL53LX_CLEAR_RANGE_INT 0x01 02500 #define VL53LX_CLEAR_ERROR_INT 0x02 02501 02502 02503 #define VL53LX_SEQUENCE_VHV_EN 0x01 02504 #define VL53LX_SEQUENCE_PHASECAL_EN 0x02 02505 #define VL53LX_SEQUENCE_REFERENCE_PHASE_EN 0x04 02506 #define VL53LX_SEQUENCE_DSS1_EN 0x08 02507 #define VL53LX_SEQUENCE_DSS2_EN 0x10 02508 #define VL53LX_SEQUENCE_MM1_EN 0x20 02509 #define VL53LX_SEQUENCE_MM2_EN 0x40 02510 #define VL53LX_SEQUENCE_RANGE_EN 0x80 02511 02512 02513 #define VL53LX_DSS_CONTROL__ROI_SUBTRACT 0x20 02514 #define VL53LX_DSS_CONTROL__ROI_INTERSECT 0x10 02515 02516 #define VL53LX_DSS_CONTROL__MODE_DISABLED 0x00 02517 #define VL53LX_DSS_CONTROL__MODE_TARGET_RATE 0x01 02518 #define VL53LX_DSS_CONTROL__MODE_EFFSPADS 0x02 02519 #define VL53LX_DSS_CONTROL__MODE_BLOCKSELECT 0x03 02520 02521 02522 02523 #define VL53LX_RANGING_CORE__SPAD_READOUT__STANDARD 0x45 02524 #define VL53LX_RANGING_CORE__SPAD_READOUT__RETURN_ARRAY_ONLY 0x05 02525 #define VL53LX_RANGING_CORE__SPAD_READOUT__REFERENCE_ARRAY_ONLY 0x55 02526 #define VL53LX_RANGING_CORE__SPAD_READOUT__RETURN_SPLIT_ARRAY 0x25 02527 #define VL53LX_RANGING_CORE__SPAD_READOUT__CALIB_PULSES 0xF5 02528 02529 02530 #define VL53LX_LASER_SAFETY__KEY_VALUE 0x6C 02531 02532 02533 02534 #define VL53LX_RANGE_STATUS__RANGE_STATUS_MASK 0x1F 02535 #define VL53LX_RANGE_STATUS__MAX_THRESHOLD_HIT_MASK 0x20 02536 #define VL53LX_RANGE_STATUS__MIN_THRESHOLD_HIT_MASK 0x40 02537 #define VL53LX_RANGE_STATUS__GPH_ID_RANGE_STATUS_MASK 0x80 02538 02539 02540 02541 #define VL53LX_INTERRUPT_STATUS__INT_STATUS_MASK 0x07 02542 #define VL53LX_INTERRUPT_STATUS__INT_ERROR_STATUS_MASK 0x18 02543 #define VL53LX_INTERRUPT_STATUS__GPH_ID_INT_STATUS_MASK 0x20 02544 02545 02546 /* vl53lx_nvm_map.h */ 02547 02548 02549 02550 02551 #define VL53LX_NVM__IDENTIFICATION__MODEL_ID 0x0008 02552 02553 #define VL53LX_NVM__IDENTIFICATION__MODULE_TYPE 0x000C 02554 02555 #define VL53LX_NVM__IDENTIFICATION__REVISION_ID 0x000D 02556 02557 #define VL53LX_NVM__IDENTIFICATION__MODULE_ID 0x000E 02558 02559 #define VL53LX_NVM__I2C_VALID 0x0010 02560 02561 #define VL53LX_NVM__I2C_SLAVE__DEVICE_ADDRESS 0x0011 02562 02563 #define VL53LX_NVM__EWS__OSC_MEASURED__FAST_OSC_FREQUENCY 0x0014 02564 02565 #define VL53LX_NVM__EWS__FAST_OSC_TRIM_MAX 0x0016 02566 02567 #define VL53LX_NVM__EWS__FAST_OSC_FREQ_SET 0x0017 02568 02569 #define VL53LX_NVM__EWS__SLOW_OSC_CALIBRATION 0x0018 02570 02571 #define VL53LX_NVM__FMT__OSC_MEASURED__FAST_OSC_FREQUENCY 0x001C 02572 02573 #define VL53LX_NVM__FMT__FAST_OSC_TRIM_MAX 0x001E 02574 02575 #define VL53LX_NVM__FMT__FAST_OSC_FREQ_SET 0x001F 02576 02577 #define VL53LX_NVM__FMT__SLOW_OSC_CALIBRATION 0x0020 02578 02579 #define VL53LX_NVM__VHV_CONFIG_UNLOCK 0x0028 02580 02581 #define VL53LX_NVM__REF_SELVDDPIX 0x0029 02582 02583 #define VL53LX_NVM__REF_SELVQUENCH 0x002A 02584 02585 #define VL53LX_NVM__REGAVDD1V2_SEL_REGDVDD1V2_SEL 0x002B 02586 02587 #define VL53LX_NVM__VHV_CONFIG__TIMEOUT_MACROP_LOOP_BOUND 0x002C 02588 02589 #define VL53LX_NVM__VHV_CONFIG__COUNT_THRESH 0x002D 02590 02591 #define VL53LX_NVM__VHV_CONFIG__OFFSET 0x002E 02592 02593 #define VL53LX_NVM__VHV_CONFIG__INIT 0x002F 02594 02595 #define VL53LX_NVM__LASER_SAFETY__VCSEL_TRIM_LL 0x0030 02596 02597 #define VL53LX_NVM__LASER_SAFETY__VCSEL_SELION_LL 0x0031 02598 02599 #define VL53LX_NVM__LASER_SAFETY__VCSEL_SELION_MAX_LL 0x0032 02600 02601 #define VL53LX_NVM__LASER_SAFETY__MULT_LL 0x0034 02602 02603 #define VL53LX_NVM__LASER_SAFETY__CLIP_LL 0x0035 02604 02605 #define VL53LX_NVM__LASER_SAFETY__VCSEL_TRIM_LD 0x0038 02606 02607 #define VL53LX_NVM__LASER_SAFETY__VCSEL_SELION_LD 0x0039 02608 02609 #define VL53LX_NVM__LASER_SAFETY__VCSEL_SELION_MAX_LD 0x003A 02610 02611 #define VL53LX_NVM__LASER_SAFETY__MULT_LD 0x003C 02612 02613 #define VL53LX_NVM__LASER_SAFETY__CLIP_LD 0x003D 02614 02615 #define VL53LX_NVM__LASER_SAFETY_LOCK_BYTE 0x0040 02616 02617 #define VL53LX_NVM__LASER_SAFETY_UNLOCK_BYTE 0x0044 02618 02619 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_0_ 0x0048 02620 02621 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_1_ 0x0049 02622 02623 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_2_ 0x004A 02624 02625 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_3_ 0x004B 02626 02627 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_4_ 0x004C 02628 02629 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_5_ 0x004D 02630 02631 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_6_ 0x004E 02632 02633 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_7_ 0x004F 02634 02635 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_8_ 0x0050 02636 02637 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_9_ 0x0051 02638 02639 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_10_ 0x0052 02640 02641 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_11_ 0x0053 02642 02643 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_12_ 0x0054 02644 02645 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_13_ 0x0055 02646 02647 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_14_ 0x0056 02648 02649 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_15_ 0x0057 02650 02651 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_16_ 0x0058 02652 02653 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_17_ 0x0059 02654 02655 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_18_ 0x005A 02656 02657 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_19_ 0x005B 02658 02659 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_20_ 0x005C 02660 02661 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_21_ 0x005D 02662 02663 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_22_ 0x005E 02664 02665 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_23_ 0x005F 02666 02667 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_24_ 0x0060 02668 02669 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_25_ 0x0061 02670 02671 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_26_ 0x0062 02672 02673 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_27_ 0x0063 02674 02675 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_28_ 0x0064 02676 02677 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_29_ 0x0065 02678 02679 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_30_ 0x0066 02680 02681 #define VL53LX_NVM__EWS__SPAD_ENABLES_RTN_31_ 0x0067 02682 02683 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC1_0_ 0x0068 02684 02685 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC1_1_ 0x0069 02686 02687 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC1_2_ 0x006A 02688 02689 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC1_3_ 0x006B 02690 02691 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC1_4_ 0x006C 02692 02693 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC1_5_ 0x006D 02694 02695 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC2_0_ 0x0070 02696 02697 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC2_1_ 0x0071 02698 02699 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC2_2_ 0x0072 02700 02701 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC2_3_ 0x0073 02702 02703 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC2_4_ 0x0074 02704 02705 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC2_5_ 0x0075 02706 02707 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC3_0_ 0x0078 02708 02709 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC3_1_ 0x0079 02710 02711 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC3_2_ 0x007A 02712 02713 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC3_3_ 0x007B 02714 02715 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC3_4_ 0x007C 02716 02717 #define VL53LX_NVM__EWS__SPAD_ENABLES_REF__LOC3_5_ 0x007D 02718 02719 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_0_ 0x0080 02720 02721 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_1_ 0x0081 02722 02723 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_2_ 0x0082 02724 02725 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_3_ 0x0083 02726 02727 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_4_ 0x0084 02728 02729 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_5_ 0x0085 02730 02731 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_6_ 0x0086 02732 02733 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_7_ 0x0087 02734 02735 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_8_ 0x0088 02736 02737 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_9_ 0x0089 02738 02739 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_10_ 0x008A 02740 02741 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_11_ 0x008B 02742 02743 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_12_ 0x008C 02744 02745 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_13_ 0x008D 02746 02747 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_14_ 0x008E 02748 02749 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_15_ 0x008F 02750 02751 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_16_ 0x0090 02752 02753 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_17_ 0x0091 02754 02755 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_18_ 0x0092 02756 02757 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_19_ 0x0093 02758 02759 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_20_ 0x0094 02760 02761 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_21_ 0x0095 02762 02763 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_22_ 0x0096 02764 02765 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_23_ 0x0097 02766 02767 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_24_ 0x0098 02768 02769 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_25_ 0x0099 02770 02771 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_26_ 0x009A 02772 02773 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_27_ 0x009B 02774 02775 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_28_ 0x009C 02776 02777 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_29_ 0x009D 02778 02779 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_30_ 0x009E 02780 02781 #define VL53LX_NVM__FMT__SPAD_ENABLES_RTN_31_ 0x009F 02782 02783 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC1_0_ 0x00A0 02784 02785 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC1_1_ 0x00A1 02786 02787 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC1_2_ 0x00A2 02788 02789 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC1_3_ 0x00A3 02790 02791 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC1_4_ 0x00A4 02792 02793 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC1_5_ 0x00A5 02794 02795 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC2_0_ 0x00A8 02796 02797 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC2_1_ 0x00A9 02798 02799 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC2_2_ 0x00AA 02800 02801 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC2_3_ 0x00AB 02802 02803 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC2_4_ 0x00AC 02804 02805 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC2_5_ 0x00AD 02806 02807 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC3_0_ 0x00B0 02808 02809 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC3_1_ 0x00B1 02810 02811 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC3_2_ 0x00B2 02812 02813 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC3_3_ 0x00B3 02814 02815 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC3_4_ 0x00B4 02816 02817 #define VL53LX_NVM__FMT__SPAD_ENABLES_REF__LOC3_5_ 0x00B5 02818 02819 #define VL53LX_NVM__FMT__ROI_CONFIG__MODE_ROI_CENTRE_SPAD 0x00B8 02820 02821 #define VL53LX_NVM__FMT__ROI_CONFIG__MODE_ROI_XY_SIZE 0x00B9 02822 02823 #define VL53LX_NVM__FMT__REF_SPAD_APPLY__NUM_REQUESTED_REF_SPAD 0x00BC 02824 02825 #define VL53LX_NVM__FMT__REF_SPAD_MAN__REF_LOCATION 0x00BD 02826 02827 #define VL53LX_NVM__FMT__MM_CONFIG__INNER_OFFSET_MM 0x00C0 02828 02829 #define VL53LX_NVM__FMT__MM_CONFIG__OUTER_OFFSET_MM 0x00C2 02830 02831 #define VL53LX_NVM__FMT__ALGO__PART_TO_PART_RANGE_OFFSET_MM 0x00C4 02832 02833 #define VL53LX_NVM__FMT__ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS 0x00C8 02834 02835 #define VL53LX_NVM__FMT__ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS \ 02836 0x00CA 02837 02838 #define VL53LX_NVM__FMT__ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS \ 02839 0x00CC 02840 02841 #define VL53LX_NVM__FMT__SPARE_HOST_CONFIG__NVM_CONFIG_SPARE_0 0x00CE 02842 02843 #define VL53LX_NVM__FMT__SPARE_HOST_CONFIG__NVM_CONFIG_SPARE_1 0x00CF 02844 02845 #define VL53LX_NVM__CUSTOMER_NVM_SPACE_PROGRAMMED 0x00E0 02846 02847 #define VL53LX_NVM__CUST__I2C_SLAVE__DEVICE_ADDRESS 0x00E4 02848 02849 #define VL53LX_NVM__CUST__REF_SPAD_APPLY__NUM_REQUESTED_REF_SPAD 0x00E8 02850 02851 #define VL53LX_NVM__CUST__REF_SPAD_MAN__REF_LOCATION 0x00E9 02852 02853 #define VL53LX_NVM__CUST__MM_CONFIG__INNER_OFFSET_MM 0x00EC 02854 02855 #define VL53LX_NVM__CUST__MM_CONFIG__OUTER_OFFSET_MM 0x00EE 02856 02857 #define VL53LX_NVM__CUST__ALGO__PART_TO_PART_RANGE_OFFSET_MM 0x00F0 02858 02859 #define VL53LX_NVM__CUST__ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS 0x00F4 02860 02861 #define VL53LX_NVM__CUST__ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS \ 02862 0x00F6 02863 02864 #define VL53LX_NVM__CUST__ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS \ 02865 0x00F8 02866 02867 #define VL53LX_NVM__CUST__SPARE_HOST_CONFIG__NVM_CONFIG_SPARE_0 0x00FA 02868 02869 #define VL53LX_NVM__CUST__SPARE_HOST_CONFIG__NVM_CONFIG_SPARE_1 0x00FB 02870 02871 #define VL53LX_NVM__FMT__FGC__BYTE_0 0x01DC 02872 02873 #define VL53LX_NVM__FMT__FGC__BYTE_1 0x01DD 02874 02875 #define VL53LX_NVM__FMT__FGC__BYTE_2 0x01DE 02876 02877 #define VL53LX_NVM__FMT__FGC__BYTE_3 0x01DF 02878 02879 #define VL53LX_NVM__FMT__FGC__BYTE_4 0x01E0 02880 02881 #define VL53LX_NVM__FMT__FGC__BYTE_5 0x01E1 02882 02883 #define VL53LX_NVM__FMT__FGC__BYTE_6 0x01E2 02884 02885 #define VL53LX_NVM__FMT__FGC__BYTE_7 0x01E3 02886 02887 #define VL53LX_NVM__FMT__FGC__BYTE_8 0x01E4 02888 02889 #define VL53LX_NVM__FMT__FGC__BYTE_9 0x01E5 02890 02891 #define VL53LX_NVM__FMT__FGC__BYTE_10 0x01E6 02892 02893 #define VL53LX_NVM__FMT__FGC__BYTE_11 0x01E7 02894 02895 #define VL53LX_NVM__FMT__FGC__BYTE_12 0x01E8 02896 02897 #define VL53LX_NVM__FMT__FGC__BYTE_13 0x01E9 02898 02899 #define VL53LX_NVM__FMT__FGC__BYTE_14 0x01EA 02900 02901 #define VL53LX_NVM__FMT__FGC__BYTE_15 0x01EB 02902 02903 #define VL53LX_NVM__FMT__TEST_PROGRAM_MAJOR_MINOR 0x01EC 02904 02905 #define VL53LX_NVM__FMT__MAP_MAJOR_MINOR 0x01ED 02906 02907 #define VL53LX_NVM__FMT__YEAR_MONTH 0x01EE 02908 02909 #define VL53LX_NVM__FMT__DAY_MODULE_DATE_PHASE 0x01EF 02910 02911 #define VL53LX_NVM__FMT__TIME 0x01F0 02912 02913 #define VL53LX_NVM__FMT__TESTER_ID 0x01F2 02914 02915 #define VL53LX_NVM__FMT__SITE_ID 0x01F3 02916 02917 #define VL53LX_NVM__EWS__TEST_PROGRAM_MAJOR_MINOR 0x01F4 02918 02919 #define VL53LX_NVM__EWS__PROBE_CARD_MAJOR_MINOR 0x01F5 02920 02921 #define VL53LX_NVM__EWS__TESTER_ID 0x01F6 02922 02923 #define VL53LX_NVM__EWS__LOT__BYTE_0 0x01F8 02924 02925 #define VL53LX_NVM__EWS__LOT__BYTE_1 0x01F9 02926 02927 #define VL53LX_NVM__EWS__LOT__BYTE_2 0x01FA 02928 02929 #define VL53LX_NVM__EWS__LOT__BYTE_3 0x01FB 02930 02931 #define VL53LX_NVM__EWS__LOT__BYTE_4 0x01FC 02932 02933 #define VL53LX_NVM__EWS__LOT__BYTE_5 0x01FD 02934 02935 #define VL53LX_NVM__EWS__WAFER 0x01FD 02936 02937 #define VL53LX_NVM__EWS__XCOORD 0x01FE 02938 02939 #define VL53LX_NVM__EWS__YCOORD 0x01FF 02940 02941 02942 #define VL53LX_NVM__FMT__OPTICAL_CENTRE_DATA_INDEX 0x00B8 02943 #define VL53LX_NVM__FMT__OPTICAL_CENTRE_DATA_SIZE 4 02944 02945 #define VL53LX_NVM__FMT__CAL_PEAK_RATE_MAP_DATA_INDEX 0x015C 02946 #define VL53LX_NVM__FMT__CAL_PEAK_RATE_MAP_DATA_SIZE 56 02947 02948 #define VL53LX_NVM__FMT__ADDITIONAL_OFFSET_CAL_DATA_INDEX 0x0194 02949 #define VL53LX_NVM__FMT__ADDITIONAL_OFFSET_CAL_DATA_SIZE 8 02950 02951 #define VL53LX_NVM__FMT__RANGE_RESULTS__140MM_MM_PRE_RANGE 0x019C 02952 #define VL53LX_NVM__FMT__RANGE_RESULTS__140MM_DARK 0x01AC 02953 #define VL53LX_NVM__FMT__RANGE_RESULTS__400MM_DARK 0x01BC 02954 #define VL53LX_NVM__FMT__RANGE_RESULTS__400MM_AMBIENT 0x01CC 02955 #define VL53LX_NVM__FMT__RANGE_RESULTS__SIZE_BYTES 16 02956 02957 02958 02959 02960 02961 02962 /* vl53lx_tuning_parm_defaults.h */ 02963 02964 02965 02966 #define VL53LX_TUNINGPARM_VERSION_DEFAULT \ 02967 ((uint16_t) 29) 02968 #define VL53LX_TUNINGPARM_KEY_TABLE_VERSION_DEFAULT \ 02969 ((uint16_t) 14) 02970 #define VL53LX_TUNINGPARM_LLD_VERSION_DEFAULT \ 02971 ((uint16_t) 12180) 02972 #define VL53LX_TUNINGPARM_HIST_ALGO_SELECT_DEFAULT \ 02973 ((uint8_t) 4) 02974 #define VL53LX_TUNINGPARM_HIST_TARGET_ORDER_DEFAULT \ 02975 ((uint8_t) 1) 02976 #define VL53LX_TUNINGPARM_HIST_FILTER_WOI_0_DEFAULT \ 02977 ((uint8_t) 1) 02978 #define VL53LX_TUNINGPARM_HIST_FILTER_WOI_1_DEFAULT \ 02979 ((uint8_t) 2) 02980 #define VL53LX_TUNINGPARM_HIST_AMB_EST_METHOD_DEFAULT \ 02981 ((uint8_t) 1) 02982 #define VL53LX_TUNINGPARM_HIST_AMB_THRESH_SIGMA_0_DEFAULT \ 02983 ((uint8_t) 80) 02984 #define VL53LX_TUNINGPARM_HIST_AMB_THRESH_SIGMA_1_DEFAULT \ 02985 ((uint8_t) 100) 02986 #define VL53LX_TUNINGPARM_HIST_MIN_AMB_THRESH_EVENTS_DEFAULT \ 02987 ((int32_t) 16) 02988 #define VL53LX_TUNINGPARM_HIST_AMB_EVENTS_SCALER_DEFAULT \ 02989 ((uint16_t) 4157) 02990 #define VL53LX_TUNINGPARM_HIST_NOISE_THRESHOLD_DEFAULT \ 02991 ((uint16_t) 50) 02992 #define VL53LX_TUNINGPARM_HIST_SIGNAL_TOTAL_EVENTS_LIMIT_DEFAULT \ 02993 ((int32_t) 100) 02994 #define VL53LX_TUNINGPARM_HIST_SIGMA_EST_REF_MM_DEFAULT \ 02995 ((uint8_t) 1) 02996 #define VL53LX_TUNINGPARM_HIST_SIGMA_THRESH_MM_DEFAULT \ 02997 ((uint16_t) 180) 02998 #define VL53LX_TUNINGPARM_HIST_GAIN_FACTOR_DEFAULT \ 02999 ((uint16_t) 1987) 03000 #define VL53LX_TUNINGPARM_CONSISTENCY_HIST_PHASE_TOLERANCE_DEFAULT \ 03001 ((uint8_t) 8) 03002 #define VL53LX_TUNINGPARM_CONSISTENCY_HIST_MIN_MAX_TOLERANCE_MM_DEFAULT \ 03003 ((uint16_t) 0) 03004 #define VL53LX_TUNINGPARM_CONSISTENCY_HIST_EVENT_SIGMA_DEFAULT \ 03005 ((uint8_t) 0) 03006 #define VL53LX_TUNINGPARM_CONSISTENCY_HIST_EVENT_SIGMA_MIN_SPAD_LIMIT_DEFAULT \ 03007 ((uint16_t) 2048) 03008 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_HISTO_LONG_RANGE_DEFAULT \ 03009 ((uint8_t) 9) 03010 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_HISTO_MED_RANGE_DEFAULT \ 03011 ((uint8_t) 5) 03012 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_HISTO_SHORT_RANGE_DEFAULT \ 03013 ((uint8_t) 3) 03014 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_HISTO_LONG_RANGE_DEFAULT \ 03015 ((uint8_t) 6) 03016 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_HISTO_MED_RANGE_DEFAULT \ 03017 ((uint8_t) 6) 03018 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_HISTO_SHORT_RANGE_DEFAULT \ 03019 ((uint8_t) 6) 03020 #define VL53LX_TUNINGPARM_XTALK_DETECT_MIN_VALID_RANGE_MM_DEFAULT \ 03021 ((int16_t) -50) 03022 #define VL53LX_TUNINGPARM_XTALK_DETECT_MAX_VALID_RANGE_MM_DEFAULT \ 03023 ((int16_t) 50) 03024 #define VL53LX_TUNINGPARM_XTALK_DETECT_MAX_SIGMA_MM_DEFAULT \ 03025 ((uint16_t) 140) 03026 #define VL53LX_TUNINGPARM_XTALK_DETECT_MIN_MAX_TOLERANCE_DEFAULT \ 03027 ((uint16_t) 50) 03028 #define VL53LX_TUNINGPARM_XTALK_DETECT_MAX_VALID_RATE_KCPS_DEFAULT \ 03029 ((uint16_t) 400) 03030 #define VL53LX_TUNINGPARM_XTALK_DETECT_EVENT_SIGMA_DEFAULT \ 03031 ((uint8_t) 80) 03032 #define VL53LX_TUNINGPARM_HIST_XTALK_MARGIN_KCPS_DEFAULT \ 03033 ((int16_t) 0) 03034 #define VL53LX_TUNINGPARM_CONSISTENCY_LITE_PHASE_TOLERANCE_DEFAULT \ 03035 ((uint8_t) 2) 03036 #define VL53LX_TUNINGPARM_PHASECAL_TARGET_DEFAULT \ 03037 ((uint8_t) 33) 03038 #define VL53LX_TUNINGPARM_LITE_CAL_REPEAT_RATE_DEFAULT \ 03039 ((uint16_t) 0) 03040 #define VL53LX_TUNINGPARM_LITE_RANGING_GAIN_FACTOR_DEFAULT \ 03041 ((uint16_t) 2011) 03042 #define VL53LX_TUNINGPARM_LITE_MIN_CLIP_MM_DEFAULT \ 03043 ((uint8_t) 0) 03044 #define VL53LX_TUNINGPARM_LITE_LONG_SIGMA_THRESH_MM_DEFAULT \ 03045 ((uint16_t) 60) 03046 #define VL53LX_TUNINGPARM_LITE_MED_SIGMA_THRESH_MM_DEFAULT \ 03047 ((uint16_t) 60) 03048 #define VL53LX_TUNINGPARM_LITE_SHORT_SIGMA_THRESH_MM_DEFAULT \ 03049 ((uint16_t) 60) 03050 #define VL53LX_TUNINGPARM_LITE_LONG_MIN_COUNT_RATE_RTN_MCPS_DEFAULT \ 03051 ((uint16_t) 128) 03052 #define VL53LX_TUNINGPARM_LITE_MED_MIN_COUNT_RATE_RTN_MCPS_DEFAULT \ 03053 ((uint16_t) 128) 03054 #define VL53LX_TUNINGPARM_LITE_SHORT_MIN_COUNT_RATE_RTN_MCPS_DEFAULT \ 03055 ((uint16_t) 128) 03056 #define VL53LX_TUNINGPARM_LITE_SIGMA_EST_PULSE_WIDTH_DEFAULT \ 03057 ((uint8_t) 8) 03058 #define VL53LX_TUNINGPARM_LITE_SIGMA_EST_AMB_WIDTH_NS_DEFAULT \ 03059 ((uint8_t) 16) 03060 #define VL53LX_TUNINGPARM_LITE_SIGMA_REF_MM_DEFAULT \ 03061 ((uint8_t) 1) 03062 #define VL53LX_TUNINGPARM_LITE_RIT_MULT_DEFAULT \ 03063 ((uint8_t) 64) 03064 #define VL53LX_TUNINGPARM_LITE_SEED_CONFIG_DEFAULT \ 03065 ((uint8_t) 2) 03066 #define VL53LX_TUNINGPARM_LITE_QUANTIFIER_DEFAULT \ 03067 ((uint8_t) 2) 03068 #define VL53LX_TUNINGPARM_LITE_FIRST_ORDER_SELECT_DEFAULT \ 03069 ((uint8_t) 0) 03070 #define VL53LX_TUNINGPARM_LITE_XTALK_MARGIN_KCPS_DEFAULT \ 03071 ((int16_t) 0) 03072 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_LITE_LONG_RANGE_DEFAULT \ 03073 ((uint8_t) 14) 03074 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_LITE_MED_RANGE_DEFAULT \ 03075 ((uint8_t) 10) 03076 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_LITE_SHORT_RANGE_DEFAULT \ 03077 ((uint8_t) 6) 03078 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_LITE_LONG_RANGE_DEFAULT \ 03079 ((uint8_t) 14) 03080 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_LITE_MED_RANGE_DEFAULT \ 03081 ((uint8_t) 10) 03082 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_LITE_SHORT_RANGE_DEFAULT \ 03083 ((uint8_t) 6) 03084 #define VL53LX_TUNINGPARM_TIMED_SEED_CONFIG_DEFAULT \ 03085 ((uint8_t) 1) 03086 #define VL53LX_TUNINGPARM_DMAX_CFG_SIGNAL_THRESH_SIGMA_DEFAULT \ 03087 ((uint8_t) 32) 03088 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_0_DEFAULT \ 03089 ((uint16_t) 15) 03090 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_1_DEFAULT \ 03091 ((uint16_t) 52) 03092 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_2_DEFAULT \ 03093 ((uint16_t) 200) 03094 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_3_DEFAULT \ 03095 ((uint16_t) 364) 03096 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_4_DEFAULT \ 03097 ((uint16_t) 400) 03098 #define VL53LX_TUNINGPARM_VHV_LOOPBOUND_DEFAULT \ 03099 ((uint8_t) 129) 03100 #define VL53LX_TUNINGPARM_REFSPADCHAR_DEVICE_TEST_MODE_DEFAULT \ 03101 ((uint8_t) 8) 03102 #define VL53LX_TUNINGPARM_REFSPADCHAR_VCSEL_PERIOD_DEFAULT \ 03103 ((uint8_t) 11) 03104 #define VL53LX_TUNINGPARM_REFSPADCHAR_PHASECAL_TIMEOUT_US_DEFAULT \ 03105 ((uint32_t) 1000) 03106 #define VL53LX_TUNINGPARM_REFSPADCHAR_TARGET_COUNT_RATE_MCPS_DEFAULT \ 03107 ((uint16_t) 2560) 03108 #define VL53LX_TUNINGPARM_REFSPADCHAR_MIN_COUNTRATE_LIMIT_MCPS_DEFAULT \ 03109 ((uint16_t) 1280) 03110 #define VL53LX_TUNINGPARM_REFSPADCHAR_MAX_COUNTRATE_LIMIT_MCPS_DEFAULT \ 03111 ((uint16_t) 5120) 03112 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_NUM_OF_SAMPLES_DEFAULT \ 03113 ((uint8_t) 7) 03114 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_MIN_FILTER_THRESH_MM_DEFAULT \ 03115 ((int16_t) -70) 03116 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_MAX_FILTER_THRESH_MM_DEFAULT \ 03117 ((int16_t) 70) 03118 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_DSS_RATE_MCPS_DEFAULT \ 03119 ((uint16_t) 5120) 03120 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_PHASECAL_TIMEOUT_US_DEFAULT \ 03121 ((uint32_t) 15000) 03122 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_MAX_VALID_RATE_KCPS_DEFAULT \ 03123 ((uint16_t) 640) 03124 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_SIGMA_THRESHOLD_MM_DEFAULT \ 03125 ((uint16_t) 140) 03126 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_DSS_TIMEOUT_US_DEFAULT \ 03127 ((uint32_t) 2000) 03128 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_BIN_TIMEOUT_US_DEFAULT \ 03129 ((uint32_t) 10000) 03130 #define VL53LX_TUNINGPARM_OFFSET_CAL_DSS_RATE_MCPS_DEFAULT \ 03131 ((uint16_t) 2560) 03132 #define VL53LX_TUNINGPARM_OFFSET_CAL_PHASECAL_TIMEOUT_US_DEFAULT \ 03133 ((uint32_t) 15000) 03134 #define VL53LX_TUNINGPARM_OFFSET_CAL_MM_TIMEOUT_US_DEFAULT \ 03135 ((uint32_t) 13000) 03136 #define VL53LX_TUNINGPARM_OFFSET_CAL_RANGE_TIMEOUT_US_DEFAULT \ 03137 ((uint32_t) 13000) 03138 #define VL53LX_TUNINGPARM_OFFSET_CAL_PRE_SAMPLES_DEFAULT \ 03139 ((uint8_t) 8) 03140 #define VL53LX_TUNINGPARM_OFFSET_CAL_MM1_SAMPLES_DEFAULT \ 03141 ((uint8_t) 40) 03142 #define VL53LX_TUNINGPARM_OFFSET_CAL_MM2_SAMPLES_DEFAULT \ 03143 ((uint8_t) 9) 03144 #define VL53LX_TUNINGPARM_ZONE_CAL_DSS_RATE_MCPS_DEFAULT \ 03145 ((uint16_t) 5120) 03146 #define VL53LX_TUNINGPARM_ZONE_CAL_PHASECAL_TIMEOUT_US_DEFAULT \ 03147 ((uint32_t) 15000) 03148 #define VL53LX_TUNINGPARM_ZONE_CAL_DSS_TIMEOUT_US_DEFAULT \ 03149 ((uint32_t) 2000) 03150 #define VL53LX_TUNINGPARM_ZONE_CAL_PHASECAL_NUM_SAMPLES_DEFAULT \ 03151 ((uint16_t) 16) 03152 #define VL53LX_TUNINGPARM_ZONE_CAL_RANGE_TIMEOUT_US_DEFAULT \ 03153 ((uint32_t) 1000) 03154 #define VL53LX_TUNINGPARM_ZONE_CAL_ZONE_NUM_SAMPLES_DEFAULT \ 03155 ((uint16_t) 8) 03156 #define VL53LX_TUNINGPARM_SPADMAP_VCSEL_PERIOD_DEFAULT \ 03157 ((uint8_t) 18) 03158 #define VL53LX_TUNINGPARM_SPADMAP_VCSEL_START_DEFAULT \ 03159 ((uint8_t) 15) 03160 #define VL53LX_TUNINGPARM_SPADMAP_RATE_LIMIT_MCPS_DEFAULT \ 03161 ((uint16_t) 12) 03162 #define VL53LX_TUNINGPARM_LITE_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS_DEFAULT \ 03163 ((uint16_t) 2560) 03164 #define VL53LX_TUNINGPARM_RANGING_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS_DEFAULT \ 03165 ((uint16_t) 5120) 03166 #define VL53LX_TUNINGPARM_MZ_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS_DEFAULT \ 03167 ((uint16_t) 5120) 03168 #define VL53LX_TUNINGPARM_TIMED_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS_DEFAULT \ 03169 ((uint16_t) 2560) 03170 #define VL53LX_TUNINGPARM_LITE_PHASECAL_CONFIG_TIMEOUT_US_DEFAULT \ 03171 ((uint32_t) 1000) 03172 #define VL53LX_TUNINGPARM_RANGING_LONG_PHASECAL_CONFIG_TIMEOUT_US_DEFAULT \ 03173 ((uint32_t) 15000) 03174 #define VL53LX_TUNINGPARM_RANGING_MED_PHASECAL_CONFIG_TIMEOUT_US_DEFAULT \ 03175 ((uint32_t) 9000) 03176 #define VL53LX_TUNINGPARM_RANGING_SHORT_PHASECAL_CONFIG_TIMEOUT_US_DEFAULT \ 03177 ((uint32_t) 6000) 03178 #define VL53LX_TUNINGPARM_MZ_LONG_PHASECAL_CONFIG_TIMEOUT_US_DEFAULT \ 03179 ((uint32_t) 15000) 03180 #define VL53LX_TUNINGPARM_MZ_MED_PHASECAL_CONFIG_TIMEOUT_US_DEFAULT \ 03181 ((uint32_t) 9000) 03182 #define VL53LX_TUNINGPARM_MZ_SHORT_PHASECAL_CONFIG_TIMEOUT_US_DEFAULT \ 03183 ((uint32_t) 6000) 03184 #define VL53LX_TUNINGPARM_TIMED_PHASECAL_CONFIG_TIMEOUT_US_DEFAULT \ 03185 ((uint32_t) 1000) 03186 #define VL53LX_TUNINGPARM_LITE_MM_CONFIG_TIMEOUT_US_DEFAULT \ 03187 ((uint32_t) 2000) 03188 #define VL53LX_TUNINGPARM_RANGING_MM_CONFIG_TIMEOUT_US_DEFAULT \ 03189 ((uint32_t) 2000) 03190 #define VL53LX_TUNINGPARM_MZ_MM_CONFIG_TIMEOUT_US_DEFAULT \ 03191 ((uint32_t) 2000) 03192 #define VL53LX_TUNINGPARM_TIMED_MM_CONFIG_TIMEOUT_US_DEFAULT \ 03193 ((uint32_t) 2000) 03194 #define VL53LX_TUNINGPARM_LITE_RANGE_CONFIG_TIMEOUT_US_DEFAULT \ 03195 ((uint32_t) 63000) 03196 #define VL53LX_TUNINGPARM_RANGING_RANGE_CONFIG_TIMEOUT_US_DEFAULT \ 03197 ((uint32_t) 2500) 03198 #define VL53LX_TUNINGPARM_MZ_RANGE_CONFIG_TIMEOUT_US_DEFAULT \ 03199 ((uint32_t) 2500) 03200 #define VL53LX_TUNINGPARM_TIMED_RANGE_CONFIG_TIMEOUT_US_DEFAULT \ 03201 ((uint32_t) 13000) 03202 #define VL53LX_TUNINGPARM_DYNXTALK_SMUDGE_MARGIN_DEFAULT \ 03203 ((uint16_t) 0) 03204 #define VL53LX_TUNINGPARM_DYNXTALK_NOISE_MARGIN_DEFAULT \ 03205 ((uint32_t) 100) 03206 #define VL53LX_TUNINGPARM_DYNXTALK_XTALK_OFFSET_LIMIT_DEFAULT \ 03207 ((uint32_t) 0) 03208 #define VL53LX_TUNINGPARM_DYNXTALK_XTALK_OFFSET_LIMIT_HI_DEFAULT \ 03209 ((uint8_t) 0) 03210 #define VL53LX_TUNINGPARM_DYNXTALK_SAMPLE_LIMIT_DEFAULT \ 03211 ((uint32_t) 200) 03212 #define VL53LX_TUNINGPARM_DYNXTALK_SINGLE_XTALK_DELTA_DEFAULT \ 03213 ((uint32_t) 2048) 03214 #define VL53LX_TUNINGPARM_DYNXTALK_AVERAGED_XTALK_DELTA_DEFAULT \ 03215 ((uint32_t) 308) 03216 #define VL53LX_TUNINGPARM_DYNXTALK_CLIP_LIMIT_DEFAULT \ 03217 ((uint32_t) 10240) 03218 #define VL53LX_TUNINGPARM_DYNXTALK_SCALER_CALC_METHOD_DEFAULT \ 03219 ((uint8_t) 0) 03220 #define VL53LX_TUNINGPARM_DYNXTALK_XGRADIENT_SCALER_DEFAULT \ 03221 ((int16_t) 256) 03222 #define VL53LX_TUNINGPARM_DYNXTALK_YGRADIENT_SCALER_DEFAULT \ 03223 ((int16_t) 256) 03224 #define VL53LX_TUNINGPARM_DYNXTALK_USER_SCALER_SET_DEFAULT \ 03225 ((uint8_t) 0) 03226 #define VL53LX_TUNINGPARM_DYNXTALK_SMUDGE_COR_SINGLE_APPLY_DEFAULT \ 03227 ((uint8_t) 0) 03228 #define VL53LX_TUNINGPARM_DYNXTALK_XTALK_AMB_THRESHOLD_DEFAULT \ 03229 ((uint32_t) 128) 03230 #define VL53LX_TUNINGPARM_DYNXTALK_NODETECT_AMB_THRESHOLD_KCPS_DEFAULT \ 03231 ((uint32_t) 57671680) 03232 #define VL53LX_TUNINGPARM_DYNXTALK_NODETECT_SAMPLE_LIMIT_DEFAULT \ 03233 ((uint32_t) 40) 03234 #define VL53LX_TUNINGPARM_DYNXTALK_NODETECT_XTALK_OFFSET_KCPS_DEFAULT \ 03235 ((uint32_t) 410) 03236 #define VL53LX_TUNINGPARM_DYNXTALK_NODETECT_MIN_RANGE_MM_DEFAULT \ 03237 ((uint16_t) 900) 03238 #define VL53LX_TUNINGPARM_LOWPOWERAUTO_VHV_LOOP_BOUND_DEFAULT \ 03239 ((uint8_t) 3) 03240 #define VL53LX_TUNINGPARM_LOWPOWERAUTO_MM_CONFIG_TIMEOUT_US_DEFAULT \ 03241 ((uint32_t) 1) 03242 #define VL53LX_TUNINGPARM_LOWPOWERAUTO_RANGE_CONFIG_TIMEOUT_US_DEFAULT \ 03243 ((uint32_t) 8000) 03244 #define VL53LX_TUNINGPARM_VERY_SHORT_DSS_RATE_MCPS_DEFAULT \ 03245 ((uint16_t) 10240) 03246 #define VL53LX_TUNINGPARM_PHASECAL_PATCH_POWER_DEFAULT \ 03247 ((uint32_t) 0) 03248 #define VL53LX_TUNINGPARM_HIST_MERGE_DEFAULT \ 03249 ((uint32_t) 1) 03250 #define VL53LX_TUNINGPARM_RESET_MERGE_THRESHOLD_DEFAULT \ 03251 ((uint32_t) 15000) 03252 #define VL53LX_TUNINGPARM_HIST_MERGE_MAX_SIZE_DEFAULT \ 03253 ((uint32_t) 6) 03254 #define VL53LX_TUNINGPARM_DYNXTALK_MAX_SMUDGE_FACTOR_DEFAULT \ 03255 ((uint32_t) 2000) 03256 03257 03258 03259 /* vl53lx_preset_setup.h */ 03260 03261 03262 /* indexes for the bare driver tuning setting API function */ 03263 03264 enum VL53LX_Tuning_t { 03265 VL53LX_TUNING_VERSION = 0, 03266 VL53LX_TUNING_PROXY_MIN, 03267 VL53LX_TUNING_SINGLE_TARGET_XTALK_TARGET_DISTANCE_MM, 03268 VL53LX_TUNING_SINGLE_TARGET_XTALK_SAMPLE_NUMBER, 03269 VL53LX_TUNING_MIN_AMBIENT_DMAX_VALID, 03270 VL53LX_TUNING_MAX_SIMPLE_OFFSET_CALIBRATION_SAMPLE_NUMBER, 03271 VL53LX_TUNING_XTALK_FULL_ROI_TARGET_DISTANCE_MM, 03272 VL53LX_TUNING_SIMPLE_OFFSET_CALIBRATION_REPEAT, 03273 VL53LX_TUNING_XTALK_FULL_ROI_BIN_SUM_MARGIN, 03274 VL53LX_TUNING_XTALK_FULL_ROI_DEFAULT_OFFSET, 03275 VL53LX_TUNING_ZERO_DISTANCE_OFFSET_NON_LINEAR_FACTOR, 03276 VL53LX_TUNING_MAX_TUNABLE_KEY 03277 }; 03278 03279 03280 /* default values for the tuning settings parameters */ 03281 #define TUNING_VERSION 0x0007 03282 03283 #define TUNING_PROXY_MIN -30 /* min distance in mm */ 03284 #define TUNING_SINGLE_TARGET_XTALK_TARGET_DISTANCE_MM 600 03285 /* Target distance in mm for single target Xtalk */ 03286 #define TUNING_SINGLE_TARGET_XTALK_SAMPLE_NUMBER 50 03287 /* Number of sample used for single target Xtalk */ 03288 #define TUNING_MIN_AMBIENT_DMAX_VALID 8 03289 /* Minimum ambient level to state the Dmax returned by the device is valid */ 03290 #ifdef SMALL_FOOTPRINT 03291 #define TUNING_MAX_SIMPLE_OFFSET_CALIBRATION_SAMPLE_NUMBER 50 03292 #else 03293 #define TUNING_MAX_SIMPLE_OFFSET_CALIBRATION_SAMPLE_NUMBER 10 03294 #endif 03295 /* Maximum loops to perform simple offset calibration */ 03296 #define TUNING_XTALK_FULL_ROI_TARGET_DISTANCE_MM 600 03297 /* Target distance in mm for target Xtalk from Bins method*/ 03298 #ifdef SMALL_FOOTPRINT 03299 #define TUNING_SIMPLE_OFFSET_CALIBRATION_REPEAT 1 03300 #else 03301 #define TUNING_SIMPLE_OFFSET_CALIBRATION_REPEAT 3 03302 #endif 03303 /* Number of loops done during the simple offset calibration*/ 03304 #define TUNING_ZERO_DISTANCE_OFFSET_NON_LINEAR_FACTOR_DEFAULT 9 03305 /* zero distance offset calibration non linear compensation default value */ 03306 03307 /* The following settings are related to the fix for ticket EwokP #558410 */ 03308 #define TUNING_XTALK_FULL_ROI_BIN_SUM_MARGIN 24 03309 /* Acceptance margin for the xtalk_shape bin_data sum computation */ 03310 #define TUNING_XTALK_FULL_ROI_DEFAULT_OFFSET 50 03311 /* Recovery value for Xtalk compensation plane offset in kcps */ 03312 /* 50 stands for ~0.10 kcps cover glass in 7.9 format */ 03313 /* End of settings related to the fix for ticket EwokP #558410 */ 03314 03315 03316 03317 03318 // define from vl53lx_platform_user_config 03319 03320 #define VL53LX_BYTES_PER_WORD 2 03321 #define VL53LX_BYTES_PER_DWORD 4 03322 03323 /* Define polling delays */ 03324 #define VL53LX_BOOT_COMPLETION_POLLING_TIMEOUT_MS 500 03325 #define VL53LX_RANGE_COMPLETION_POLLING_TIMEOUT_MS 2000 03326 #define VL53LX_TEST_COMPLETION_POLLING_TIMEOUT_MS 10000 03327 03328 #define VL53LX_POLLING_DELAY_MS 1 03329 03330 /* Define LLD TuningParms Page Base Address 03331 * - Part of Patch_AddedTuningParms_11761 03332 */ 03333 #define VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS 0x8000 03334 #define VL53LX_TUNINGPARM_PRIVATE_PAGE_BASE_ADDRESS 0xC000 03335 03336 #define VL53LX_OFFSET_CAL_MIN_MM1_EFFECTIVE_SPADS 0x0500 03337 /*!< Lower Limit for the MM1 effective SPAD count during offset 03338 calibration Format 8.8 0x0500 -> 5.0 effective SPADs */ 03339 03340 #define VL53LX_GAIN_FACTOR__STANDARD_DEFAULT 0x0800 03341 /*!< Default standard ranging gain correction factor 03342 1.11 format. 1.0 = 0x0800, 0.980 = 0x07D7 */ 03343 #define VL53LX_GAIN_FACTOR__HISTOGRAM_DEFAULT 0x0800 03344 /*!< Default histogram ranging gain correction factor 03345 1.11 format. 1.0 = 0x0800, 0.975 = 0x07CC */ 03346 03347 03348 #define VL53LX_OFFSET_CAL_MIN_EFFECTIVE_SPADS 0x0500 03349 /*!< Lower Limit for the MM1 effective SPAD count during offset 03350 calibration Format 8.8 0x0500 -> 5.0 effective SPADs */ 03351 03352 #define VL53LX_OFFSET_CAL_MAX_PRE_PEAK_RATE_MCPS 0x1900 03353 /*!< Max Limit for the pre range preak rate during offset 03354 calibration Format 9.7 0x1900 -> 50.0 Mcps. 03355 If larger then in pile up */ 03356 03357 #define VL53LX_OFFSET_CAL_MAX_SIGMA_MM 0x0040 03358 /*!< Max sigma estimate limit during offset calibration 03359 Check applies to pre-range, mm1 and mm2 ranges 03360 Format 14.2 0x0040 -> 16.0mm. */ 03361 03362 #define VL53LX_ZONE_CAL_MAX_PRE_PEAK_RATE_MCPS 0x1900 03363 /*!< Max Peak Rate Limit for the during zone calibration 03364 Format 9.7 0x1900 -> 50.0 Mcps. 03365 If larger then in pile up */ 03366 03367 #define VL53LX_ZONE_CAL_MAX_SIGMA_MM 0x0040 03368 /*!< Max sigma estimate limit during zone calibration 03369 Format 14.2 0x0040 -> 16.0mm. */ 03370 03371 03372 #define VL53LX_XTALK_EXTRACT_MAX_SIGMA_MM 0x008C 03373 /*!< Max Sigma value allowed for a successful xtalk extraction 03374 Format 14.2 0x008C -> 35.0 mm.*/ 03375 03376 #ifndef VL53LX_MAX_USER_ZONES 03377 #define VL53LX_MAX_USER_ZONES 16 03378 /*!< Max number of user Zones - maximal limitation from 03379 FW stream divide - value of 254 */ 03380 #endif 03381 03382 #define VL53LX_MAX_RANGE_RESULTS 4 03383 #define VL53LX_BUFFER_SIZE 5 03384 03385 /*!< Sets the maximum number of targets distances the histogram 03386 post processing can generate */ 03387 03388 #define VL53LX_MAX_STRING_LENGTH 512 03389 /*!< Sets the maximum string length */ 03390 03391 03392 // typedef from vl53lx_types.h 03393 03394 03395 #ifndef NULL 03396 #error "Error NULL definition should be done. Please add required include " 03397 #endif 03398 03399 03400 #if !defined(STDINT_H) && !defined(_STDINT_H) && !defined(_GCC_STDINT_H) && !defined(__STDINT_DECLS) && !defined(_GCC_WRAP_STDINT_H) && !defined(_STDINT) 03401 03402 #pragma message("Please review type definition of STDINT define for your platform and add to list above ") 03403 03404 typedef unsigned long long uint64_t; 03405 typedef unsigned int uint32_t; 03406 typedef int int32_t; 03407 typedef unsigned short uint16_t; 03408 typedef short int16_t; 03409 typedef unsigned char uint8_t; 03410 typedef signed char int8_t; 03411 03412 #endif 03413 03414 typedef uint32_t FixPoint1616_t; 03415 03416 03417 03418 // define from vl53lx_error_codes.h 03419 03420 03421 03422 /* 03423 **************************************** 03424 * PRIVATE define do not edit 03425 *************************************** 03426 */ 03427 03428 /* 03429 * @defgroup VL53LX_define_Error_group Error and Warning code returned by API 03430 * The following DEFINE are used to identify the PAL ERROR 03431 * @{ 03432 */ 03433 03434 typedef int8_t VL53LX_Error; 03435 03436 #define VL53LX_ERROR_NONE ((VL53LX_Error) 0) 03437 #define VL53LX_ERROR_CALIBRATION_WARNING ((VL53LX_Error) - 1) 03438 /*!< Warning invalid calibration data may be in used 03439 * \a VL53LX_InitData() 03440 * \a VL53LX_GetOffsetCalibrationData 03441 * \a VL53LX_SetOffsetCalibrationData 03442 */ 03443 #define VL53LX_ERROR_MIN_CLIPPED ((VL53LX_Error) - 2) 03444 /*!< Warning parameter passed was clipped to min before to be applied */ 03445 03446 #define VL53LX_ERROR_UNDEFINED ((VL53LX_Error) - 3) 03447 /*!< Unqualified error */ 03448 #define VL53LX_ERROR_INVALID_PARAMS ((VL53LX_Error) - 4) 03449 /*!< Parameter passed is invalid or out of range */ 03450 #define VL53LX_ERROR_NOT_SUPPORTED ((VL53LX_Error) - 5) 03451 /*!< Function is not supported in current mode or configuration */ 03452 #define VL53LX_ERROR_RANGE_ERROR ((VL53LX_Error) - 6) 03453 /*!< Device report a ranging error interrupt status */ 03454 #define VL53LX_ERROR_TIME_OUT ((VL53LX_Error) - 7) 03455 /*!< Aborted due to time out */ 03456 #define VL53LX_ERROR_MODE_NOT_SUPPORTED ((VL53LX_Error) - 8) 03457 /*!< Asked mode is not supported by the device */ 03458 #define VL53LX_ERROR_BUFFER_TOO_SMALL ((VL53LX_Error) - 9) 03459 /*!< ... */ 03460 #define VL53LX_ERROR_COMMS_BUFFER_TOO_SMALL ((VL53LX_Error) - 10) 03461 /*!< Supplied buffer is larger than I2C supports */ 03462 #define VL53LX_ERROR_GPIO_NOT_EXISTING ((VL53LX_Error) - 11) 03463 /*!< User tried to setup a non-existing GPIO pin */ 03464 #define VL53LX_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED ((VL53LX_Error) - 12) 03465 /*!< unsupported GPIO functionality */ 03466 #define VL53LX_ERROR_CONTROL_INTERFACE ((VL53LX_Error) - 13) 03467 /*!< error reported from IO functions */ 03468 #define VL53LX_ERROR_INVALID_COMMAND ((VL53LX_Error) - 14) 03469 /*!< The command is not allowed in the current device state 03470 * (power down) 03471 */ 03472 #define VL53LX_ERROR_DIVISION_BY_ZERO ((VL53LX_Error) - 15) 03473 /*!< In the function a division by zero occurs */ 03474 #define VL53LX_ERROR_REF_SPAD_INIT ((VL53LX_Error) - 16) 03475 /*!< Error during reference SPAD initialization */ 03476 #define VL53LX_ERROR_GPH_SYNC_CHECK_FAIL ((VL53LX_Error) - 17) 03477 /*!< GPH sync interrupt check fail - API out of sync with device*/ 03478 #define VL53LX_ERROR_STREAM_COUNT_CHECK_FAIL ((VL53LX_Error) - 18) 03479 /*!< Stream count check fail - API out of sync with device */ 03480 #define VL53LX_ERROR_GPH_ID_CHECK_FAIL ((VL53LX_Error) - 19) 03481 /*!< GPH ID check fail - API out of sync with device */ 03482 #define VL53LX_ERROR_ZONE_STREAM_COUNT_CHECK_FAIL ((VL53LX_Error) - 20) 03483 /*!< Zone dynamic config stream count check failed - API out of sync */ 03484 #define VL53LX_ERROR_ZONE_GPH_ID_CHECK_FAIL ((VL53LX_Error) - 21) 03485 /*!< Zone dynamic config GPH ID check failed - API out of sync */ 03486 03487 #define VL53LX_ERROR_XTALK_EXTRACTION_NO_SAMPLE_FAIL ((VL53LX_Error) - 22) 03488 /*!< Thrown when run_xtalk_extraction fn has 0 successful samples 03489 * when using the full array to sample the xtalk. In this case there is 03490 * not enough information to generate new Xtalk parm info. The function 03491 * will exit and leave the current xtalk parameters unaltered 03492 */ 03493 #define VL53LX_ERROR_XTALK_EXTRACTION_SIGMA_LIMIT_FAIL ((VL53LX_Error) - 23) 03494 /*!< Thrown when run_xtalk_extraction fn has found that the 03495 * avg sigma estimate of the full array xtalk sample is > than the 03496 * maximal limit allowed. In this case the xtalk sample is too noisy for 03497 * measurement. The function will exit and leave the current xtalk 03498 * parameters unaltered. 03499 */ 03500 03501 03502 #define VL53LX_ERROR_OFFSET_CAL_NO_SAMPLE_FAIL ((VL53LX_Error) - 24) 03503 /*!< Thrown if there one of stages has no valid offset calibration 03504 * samples. A fatal error calibration not valid 03505 */ 03506 #define VL53LX_ERROR_OFFSET_CAL_NO_SPADS_ENABLED_FAIL ((VL53LX_Error) - 25) 03507 /*!< Thrown if there one of stages has zero effective SPADS 03508 * Traps the case when MM1 SPADs is zero. 03509 * A fatal error calibration not valid 03510 */ 03511 #define VL53LX_ERROR_ZONE_CAL_NO_SAMPLE_FAIL ((VL53LX_Error) - 26) 03512 /*!< Thrown if then some of the zones have no valid samples 03513 * A fatal error calibration not valid 03514 */ 03515 03516 #define VL53LX_ERROR_TUNING_PARM_KEY_MISMATCH ((VL53LX_Error) - 27) 03517 /*!< Thrown if the tuning file key table version does not match with 03518 * expected value. The driver expects the key table version to match 03519 * the compiled default version number in the define 03520 * #VL53LX_TUNINGPARM_KEY_TABLE_VERSION_DEFAULT 03521 */ 03522 03523 #define VL53LX_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPADS ((VL53LX_Error) - 28) 03524 /*!< Thrown if there are less than 5 good SPADs are available. */ 03525 #define VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH ((VL53LX_Error) - 29) 03526 /*!< Thrown if the final reference rate is greater than 03527 * the upper reference rate limit - default is 40 Mcps. 03528 * Implies a minimum Q3 (x10) SPAD (5) selected 03529 */ 03530 #define VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW ((VL53LX_Error) - 30) 03531 /*!< Thrown if the final reference rate is less than 03532 * the lower reference rate limit - default is 10 Mcps. 03533 * Implies maximum Q1 (x1) SPADs selected 03534 */ 03535 03536 03537 #define VL53LX_WARNING_OFFSET_CAL_MISSING_SAMPLES ((VL53LX_Error) - 31) 03538 /*!< Thrown if there is less than the requested number of 03539 * valid samples. 03540 */ 03541 #define VL53LX_WARNING_OFFSET_CAL_SIGMA_TOO_HIGH ((VL53LX_Error) - 32) 03542 /*!< Thrown if the offset calibration range sigma estimate is greater 03543 * than 8.0 mm. This is the recommended min value to yield a stable 03544 * offset measurement 03545 */ 03546 #define VL53LX_WARNING_OFFSET_CAL_RATE_TOO_HIGH ((VL53LX_Error) - 33) 03547 /*!< Thrown when VL53LX_run_offset_calibration() peak rate is greater 03548 * than that 50.0Mcps. This is the recommended max rate to avoid 03549 * pile-up influencing the offset measurement 03550 */ 03551 #define VL53LX_WARNING_OFFSET_CAL_SPAD_COUNT_TOO_LOW ((VL53LX_Error) - 34) 03552 /*!< Thrown when VL53LX_run_offset_calibration() when one of stages 03553 * range has less that 5.0 effective SPADS. This is the recommended 03554 * min value to yield a stable offset 03555 */ 03556 03557 03558 #define VL53LX_WARNING_ZONE_CAL_MISSING_SAMPLES ((VL53LX_Error) - 35) 03559 /*!< Thrown if one of more of the zones have less than 03560 * the requested number of valid samples 03561 */ 03562 #define VL53LX_WARNING_ZONE_CAL_SIGMA_TOO_HIGH ((VL53LX_Error) - 36) 03563 /*!< Thrown if one or more zones have sigma estimate value greater 03564 * than 8.0 mm. This is the recommended min value to yield a stable 03565 * offset measurement 03566 */ 03567 #define VL53LX_WARNING_ZONE_CAL_RATE_TOO_HIGH ((VL53LX_Error) - 37) 03568 /*!< Thrown if one of more zones have peak rate higher than 03569 * that 50.0Mcps. This is the recommended max rate to avoid 03570 * pile-up influencing the offset measurement 03571 */ 03572 03573 03574 #define VL53LX_WARNING_XTALK_MISSING_SAMPLES ((VL53LX_Error) - 38) 03575 /*!< Thrown to notify that some of the xtalk samples did not yield 03576 * valid ranging pulse data while attempting to measure 03577 * the xtalk signal in vl53lx_run_xtalk_extract(). This can signify any 03578 * of the zones are missing samples, for further debug information the 03579 * xtalk_results struct should be referred to. This warning is for 03580 * notification only, xtalk pulse and shape have still been generated 03581 */ 03582 #define VL53LX_WARNING_XTALK_NO_SAMPLES_FOR_GRADIENT ((VL53LX_Error) - 39) 03583 /*!< Thrown to notify that some of the xtalk samples used for gradient 03584 * generation did not yield valid ranging pulse data while attempting to 03585 * measure the xtalk signal in vl53lx_run_xtalk_extract(). This can 03586 * signify that any one of the zones 0-3 yielded no successful samples. 03587 * xtalk_results struct should be referred to for further debug info. 03588 * This warning is for notification only, the xtalk pulse and shape 03589 * have still been generated. 03590 */ 03591 #define VL53LX_WARNING_XTALK_SIGMA_LIMIT_FOR_GRADIENT ((VL53LX_Error) - 40) 03592 /*!< Thrown to notify that some of the xtalk samples used for gradient 03593 * generation did not pass the sigma limit check while attempting to 03594 * measure the xtalk signal in vl53lx_run_xtalk_extract(). This can 03595 * signify that any one of the zones 0-3 yielded an avg sigma_mm 03596 * value > the limit. The xtalk_results struct should be referred to for 03597 * further debug info. 03598 * This warning is for notification only, the xtalk pulse and shape 03599 * have still been generated. 03600 */ 03601 03602 #define VL53LX_ERROR_NOT_IMPLEMENTED ((VL53LX_Error) - 41) 03603 /*!< Tells requested functionality has not been implemented yet or 03604 * not compatible with the device 03605 */ 03606 #define VL53LX_ERROR_PLATFORM_SPECIFIC_START ((VL53LX_Error) - 60) 03607 /*!< Tells the starting code for platform */ 03608 /** @} VL53LX_define_Error_group */ 03609 03610 03611 03612 /* vl53lx_dmax_private_structs.h */ 03613 03614 03615 03616 03617 03618 03619 03620 03621 typedef struct { 03622 03623 uint32_t VL53LX_p_037; 03624 03625 03626 03627 uint8_t VL53LX_p_063; 03628 03629 03630 uint8_t VL53LX_p_064; 03631 03632 03633 03634 uint16_t VL53LX_p_065; 03635 03636 03637 uint16_t VL53LX_p_066; 03638 03639 03640 uint16_t VL53LX_p_067; 03641 03642 03643 uint16_t VL53LX_p_038; 03644 03645 03646 03647 uint32_t VL53LX_p_009; 03648 03649 03650 uint32_t VL53LX_p_033; 03651 03652 03653 03654 uint16_t VL53LX_p_034; 03655 03656 03657 03658 uint16_t VL53LX_p_004; 03659 03660 03661 03662 uint32_t VL53LX_p_028; 03663 03664 03665 uint32_t VL53LX_p_035; 03666 03667 03668 03669 int16_t VL53LX_p_036; 03670 03671 03672 int16_t VL53LX_p_022; 03673 03674 03675 03676 } VL53LX_hist_gen3_dmax_private_data_t; 03677 03678 03679 03680 03681 // def & typedef from vl53lx_ll_device.h 03682 03683 03684 #define VL53LX_I2C 0x01 03685 #define VL53LX_SPI 0x00 03686 03687 03688 03689 03690 03691 typedef uint8_t VL53LX_WaitMethod; 03692 03693 #define VL53LX_WAIT_METHOD_BLOCKING ((VL53LX_WaitMethod) 0) 03694 #define VL53LX_WAIT_METHOD_NON_BLOCKING ((VL53LX_WaitMethod) 1) 03695 03696 03697 03698 03699 typedef uint8_t VL53LX_DeviceState; 03700 03701 #define VL53LX_DEVICESTATE_POWERDOWN ((VL53LX_DeviceState) 0) 03702 #define VL53LX_DEVICESTATE_HW_STANDBY ((VL53LX_DeviceState) 1) 03703 #define VL53LX_DEVICESTATE_FW_COLDBOOT ((VL53LX_DeviceState) 2) 03704 #define VL53LX_DEVICESTATE_SW_STANDBY ((VL53LX_DeviceState) 3) 03705 #define VL53LX_DEVICESTATE_RANGING_DSS_AUTO ((VL53LX_DeviceState) 4) 03706 #define VL53LX_DEVICESTATE_RANGING_DSS_MANUAL ((VL53LX_DeviceState) 5) 03707 #define VL53LX_DEVICESTATE_RANGING_WAIT_GPH_SYNC ((VL53LX_DeviceState) 6) 03708 #define VL53LX_DEVICESTATE_RANGING_GATHER_DATA ((VL53LX_DeviceState) 7) 03709 #define VL53LX_DEVICESTATE_RANGING_OUTPUT_DATA ((VL53LX_DeviceState) 8) 03710 03711 #define VL53LX_DEVICESTATE_UNKNOWN ((VL53LX_DeviceState) 98) 03712 #define VL53LX_DEVICESTATE_ERROR ((VL53LX_DeviceState) 99) 03713 03714 03715 03716 03717 03718 typedef uint8_t VL53LX_DeviceZonePreset; 03719 03720 #define VL53LX_DEVICEZONEPRESET_NONE \ 03721 ((VL53LX_DeviceZonePreset) 0) 03722 03723 #define VL53LX_DEVICEZONEPRESET_XTALK_PLANAR \ 03724 ((VL53LX_DeviceZonePreset) 1) 03725 #define VL53LX_DEVICEZONEPRESET_1X1_SIZE_16X16 \ 03726 ((VL53LX_DeviceZonePreset) 2) 03727 #define VL53LX_DEVICEZONEPRESET_1X2_SIZE_16X8 \ 03728 ((VL53LX_DeviceZonePreset) 3) 03729 #define VL53LX_DEVICEZONEPRESET_2X1_SIZE_8X16 \ 03730 ((VL53LX_DeviceZonePreset) 4) 03731 #define VL53LX_DEVICEZONEPRESET_2X2_SIZE_8X8 \ 03732 ((VL53LX_DeviceZonePreset) 5) 03733 #define VL53LX_DEVICEZONEPRESET_3X3_SIZE_5X5 \ 03734 ((VL53LX_DeviceZonePreset) 6) 03735 #define VL53LX_DEVICEZONEPRESET_4X4_SIZE_4X4 \ 03736 ((VL53LX_DeviceZonePreset) 7) 03737 #define VL53LX_DEVICEZONEPRESET_5X5_SIZE_4X4 \ 03738 ((VL53LX_DeviceZonePreset) 8) 03739 #define VL53LX_DEVICEZONEPRESET_11X11_SIZE_5X5 \ 03740 ((VL53LX_DeviceZonePreset) 9) 03741 #define VL53LX_DEVICEZONEPRESET_13X13_SIZE_4X4 \ 03742 ((VL53LX_DeviceZonePreset) 10) 03743 03744 #define VL53LX_DEVICEZONEPRESET_1X1_SIZE_4X4_POS_8X8 \ 03745 ((VL53LX_DeviceZonePreset) 11) 03746 03747 #define VL53LX_DEVICEZONEPRESET_CUSTOM \ 03748 ((VL53LX_DeviceZonePreset) 255) 03749 03750 03751 03752 03753 03754 typedef uint8_t VL53LX_DevicePresetModes; 03755 03756 #define VL53LX_DEVICEPRESETMODE_NONE \ 03757 ((VL53LX_DevicePresetModes) 0) 03758 #define VL53LX_DEVICEPRESETMODE_STANDARD_RANGING \ 03759 ((VL53LX_DevicePresetModes) 1) 03760 #define VL53LX_DEVICEPRESETMODE_STANDARD_RANGING_SHORT_RANGE \ 03761 ((VL53LX_DevicePresetModes) 2) 03762 #define VL53LX_DEVICEPRESETMODE_STANDARD_RANGING_LONG_RANGE \ 03763 ((VL53LX_DevicePresetModes) 3) 03764 #define VL53LX_DEVICEPRESETMODE_STANDARD_RANGING_MM1_CAL \ 03765 ((VL53LX_DevicePresetModes) 4) 03766 #define VL53LX_DEVICEPRESETMODE_STANDARD_RANGING_MM2_CAL \ 03767 ((VL53LX_DevicePresetModes) 5) 03768 #define VL53LX_DEVICEPRESETMODE_TIMED_RANGING \ 03769 ((VL53LX_DevicePresetModes) 6) 03770 #define VL53LX_DEVICEPRESETMODE_TIMED_RANGING_SHORT_RANGE \ 03771 ((VL53LX_DevicePresetModes) 7) 03772 #define VL53LX_DEVICEPRESETMODE_TIMED_RANGING_LONG_RANGE \ 03773 ((VL53LX_DevicePresetModes) 8) 03774 #define VL53LX_DEVICEPRESETMODE_NEAR_FARRANGING \ 03775 ((VL53LX_DevicePresetModes) 9) 03776 #define VL53LX_DEVICEPRESETMODE_QUADRANT_RANGING \ 03777 ((VL53LX_DevicePresetModes) 10) 03778 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_RANGING \ 03779 ((VL53LX_DevicePresetModes) 11) 03780 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_RANGING_SHORT_TIMING \ 03781 ((VL53LX_DevicePresetModes) 12) 03782 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_CHARACTERISATION \ 03783 ((VL53LX_DevicePresetModes) 13) 03784 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_XTALK_PLANAR \ 03785 ((VL53LX_DevicePresetModes) 14) 03786 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_XTALK_MM1 \ 03787 ((VL53LX_DevicePresetModes) 15) 03788 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_XTALK_MM2 \ 03789 ((VL53LX_DevicePresetModes) 16) 03790 #define VL53LX_DEVICEPRESETMODE_OLT \ 03791 ((VL53LX_DevicePresetModes) 17) 03792 #define VL53LX_DEVICEPRESETMODE_SINGLESHOT_RANGING \ 03793 ((VL53LX_DevicePresetModes) 18) 03794 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_REF_ARRAY \ 03795 ((VL53LX_DevicePresetModes) 19) 03796 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_RANGING_WITH_MM1 \ 03797 ((VL53LX_DevicePresetModes) 20) 03798 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_RANGING_WITH_MM2 \ 03799 ((VL53LX_DevicePresetModes) 21) 03800 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_RANGING_MM1_CAL \ 03801 ((VL53LX_DevicePresetModes) 22) 03802 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_RANGING_MM2_CAL \ 03803 ((VL53LX_DevicePresetModes) 23) 03804 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_MULTIZONE \ 03805 ((VL53LX_DevicePresetModes) 24) 03806 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_MULTIZONE_SHORT_RANGE \ 03807 ((VL53LX_DevicePresetModes) 25) 03808 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_MULTIZONE_LONG_RANGE \ 03809 ((VL53LX_DevicePresetModes) 26) 03810 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_LONG_RANGE \ 03811 ((VL53LX_DevicePresetModes) 27) 03812 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_LONG_RANGE_MM1 \ 03813 ((VL53LX_DevicePresetModes) 28) 03814 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_LONG_RANGE_MM2 \ 03815 ((VL53LX_DevicePresetModes) 29) 03816 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_MEDIUM_RANGE \ 03817 ((VL53LX_DevicePresetModes) 30) 03818 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_MEDIUM_RANGE_MM1 \ 03819 ((VL53LX_DevicePresetModes) 31) 03820 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_MEDIUM_RANGE_MM2 \ 03821 ((VL53LX_DevicePresetModes) 32) 03822 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_SHORT_RANGE \ 03823 ((VL53LX_DevicePresetModes) 33) 03824 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_SHORT_RANGE_MM1 \ 03825 ((VL53LX_DevicePresetModes) 34) 03826 #define VL53LX_DEVICEPRESETMODE_HISTOGRAM_SHORT_RANGE_MM2 \ 03827 ((VL53LX_DevicePresetModes) 35) 03828 #define VL53LX_DEVICEPRESETMODE_LOWPOWERAUTO_SHORT_RANGE \ 03829 ((VL53LX_DevicePresetModes) 36) 03830 #define VL53LX_DEVICEPRESETMODE_LOWPOWERAUTO_MEDIUM_RANGE \ 03831 ((VL53LX_DevicePresetModes) 37) 03832 #define VL53LX_DEVICEPRESETMODE_LOWPOWERAUTO_LONG_RANGE \ 03833 ((VL53LX_DevicePresetModes) 38) 03834 #define VL53LX_DEVICEPRESETMODE_SPECIAL_HISTOGRAM_SHORT_RANGE \ 03835 ((VL53LX_DevicePresetModes) 39) 03836 03837 03838 03839 03840 03841 typedef uint8_t VL53LX_DeviceMeasurementModes; 03842 03843 #define VL53LX_DEVICEMEASUREMENTMODE_STOP \ 03844 ((VL53LX_DeviceMeasurementModes) 0x00) 03845 #define VL53LX_DEVICEMEASUREMENTMODE_SINGLESHOT \ 03846 ((VL53LX_DeviceMeasurementModes) 0x10) 03847 #define VL53LX_DEVICEMEASUREMENTMODE_BACKTOBACK \ 03848 ((VL53LX_DeviceMeasurementModes) 0x20) 03849 #define VL53LX_DEVICEMEASUREMENTMODE_TIMED \ 03850 ((VL53LX_DeviceMeasurementModes) 0x40) 03851 #define VL53LX_DEVICEMEASUREMENTMODE_ABORT \ 03852 ((VL53LX_DeviceMeasurementModes) 0x80) 03853 03854 03855 03856 03857 03858 typedef uint8_t VL53LX_OffsetCalibrationMode; 03859 03860 #define VL53LX_OFFSETCALIBRATIONMODE__NONE \ 03861 ((VL53LX_OffsetCalibrationMode) 0) 03862 #define VL53LX_OFFSETCALIBRATIONMODE__MM1_MM2__STANDARD \ 03863 ((VL53LX_OffsetCalibrationMode) 1) 03864 #define VL53LX_OFFSETCALIBRATIONMODE__MM1_MM2__HISTOGRAM \ 03865 ((VL53LX_OffsetCalibrationMode) 2) 03866 #define VL53LX_OFFSETCALIBRATIONMODE__MM1_MM2__STANDARD_PRE_RANGE_ONLY \ 03867 ((VL53LX_OffsetCalibrationMode) 3) 03868 #define VL53LX_OFFSETCALIBRATIONMODE__MM1_MM2__HISTOGRAM_PRE_RANGE_ONLY \ 03869 ((VL53LX_OffsetCalibrationMode) 4) 03870 03871 03872 03873 03874 03875 typedef uint8_t VL53LX_OffsetCorrectionMode; 03876 03877 #define VL53LX_OFFSETCORRECTIONMODE__NONE \ 03878 ((VL53LX_OffsetCorrectionMode) 0) 03879 #define VL53LX_OFFSETCORRECTIONMODE__MM1_MM2_OFFSETS \ 03880 ((VL53LX_OffsetCorrectionMode) 1) 03881 #define VL53LX_OFFSETCORRECTIONMODE__PER_VCSEL_OFFSETS \ 03882 ((VL53LX_OffsetCorrectionMode) 3) 03883 03884 03885 03886 03887 03888 typedef uint8_t VL53LX_DeviceDmaxMode; 03889 03890 #define VL53LX_DEVICEDMAXMODE__NONE \ 03891 ((VL53LX_DeviceDmaxMode) 0) 03892 #define VL53LX_DEVICEDMAXMODE__FMT_CAL_DATA \ 03893 ((VL53LX_DeviceDmaxMode) 1) 03894 #define VL53LX_DEVICEDMAXMODE__CUST_CAL_DATA \ 03895 ((VL53LX_DeviceDmaxMode) 2) 03896 03897 03898 03899 03900 03901 typedef uint8_t VL53LX_DeviceSequenceConfig; 03902 03903 #define VL53LX_DEVICESEQUENCECONFIG_VHV \ 03904 ((VL53LX_DeviceSequenceConfig) 0) 03905 #define VL53LX_DEVICESEQUENCECONFIG_PHASECAL \ 03906 ((VL53LX_DeviceSequenceConfig) 1) 03907 #define VL53LX_DEVICESEQUENCECONFIG_REFERENCE_PHASE \ 03908 ((VL53LX_DeviceSequenceConfig) 2) 03909 #define VL53LX_DEVICESEQUENCECONFIG_DSS1 \ 03910 ((VL53LX_DeviceSequenceConfig) 3) 03911 #define VL53LX_DEVICESEQUENCECONFIG_DSS2 \ 03912 ((VL53LX_DeviceSequenceConfig) 4) 03913 #define VL53LX_DEVICESEQUENCECONFIG_MM1 \ 03914 ((VL53LX_DeviceSequenceConfig) 5) 03915 #define VL53LX_DEVICESEQUENCECONFIG_MM2 \ 03916 ((VL53LX_DeviceSequenceConfig) 6) 03917 #define VL53LX_DEVICESEQUENCECONFIG_RANGE \ 03918 ((VL53LX_DeviceSequenceConfig) 7) 03919 03920 03921 03922 03923 03924 typedef uint8_t VL53LX_DeviceInterruptPolarity; 03925 03926 #define VL53LX_DEVICEINTERRUPTPOLARITY_ACTIVE_HIGH \ 03927 ((VL53LX_DeviceInterruptPolarity) 0x00) 03928 #define VL53LX_DEVICEINTERRUPTPOLARITY_ACTIVE_LOW \ 03929 ((VL53LX_DeviceInterruptPolarity) 0x10) 03930 #define VL53LX_DEVICEINTERRUPTPOLARITY_BIT_MASK \ 03931 ((VL53LX_DeviceInterruptPolarity) 0x10) 03932 #define VL53LX_DEVICEINTERRUPTPOLARITY_CLEAR_MASK \ 03933 ((VL53LX_DeviceInterruptPolarity) 0xEF) 03934 03935 03936 03937 03938 03939 typedef uint8_t VL53LX_DeviceGpioMode; 03940 03941 #define VL53LX_DEVICEGPIOMODE_OUTPUT_CONSTANT_ZERO \ 03942 ((VL53LX_DeviceGpioMode) 0x00) 03943 #define VL53LX_DEVICEGPIOMODE_OUTPUT_RANGE_AND_ERROR_INTERRUPTS \ 03944 ((VL53LX_DeviceGpioMode) 0x01) 03945 #define VL53LX_DEVICEGPIOMODE_OUTPUT_TIMIER_INTERRUPTS \ 03946 ((VL53LX_DeviceGpioMode) 0x02) 03947 #define VL53LX_DEVICEGPIOMODE_OUTPUT_RANGE_MODE_INTERRUPT_STATUS \ 03948 ((VL53LX_DeviceGpioMode) 0x03) 03949 #define VL53LX_DEVICEGPIOMODE_OUTPUT_SLOW_OSCILLATOR_CLOCK \ 03950 ((VL53LX_DeviceGpioMode) 0x04) 03951 #define VL53LX_DEVICEGPIOMODE_BIT_MASK \ 03952 ((VL53LX_DeviceGpioMode) 0x0F) 03953 #define VL53LX_DEVICEGPIOMODE_CLEAR_MASK \ 03954 ((VL53LX_DeviceGpioMode) 0xF0) 03955 03956 03957 03958 03959 03960 typedef uint8_t VL53LX_DeviceError; 03961 03962 #define VL53LX_DEVICEERROR_NOUPDATE \ 03963 ((VL53LX_DeviceError) 0) 03964 03965 #define VL53LX_DEVICEERROR_VCSELCONTINUITYTESTFAILURE \ 03966 ((VL53LX_DeviceError) 1) 03967 #define VL53LX_DEVICEERROR_VCSELWATCHDOGTESTFAILURE \ 03968 ((VL53LX_DeviceError) 2) 03969 #define VL53LX_DEVICEERROR_NOVHVVALUEFOUND \ 03970 ((VL53LX_DeviceError) 3) 03971 #define VL53LX_DEVICEERROR_MSRCNOTARGET \ 03972 ((VL53LX_DeviceError) 4) 03973 #define VL53LX_DEVICEERROR_RANGEPHASECHECK \ 03974 ((VL53LX_DeviceError) 5) 03975 #define VL53LX_DEVICEERROR_SIGMATHRESHOLDCHECK \ 03976 ((VL53LX_DeviceError) 6) 03977 #define VL53LX_DEVICEERROR_PHASECONSISTENCY \ 03978 ((VL53LX_DeviceError) 7) 03979 #define VL53LX_DEVICEERROR_MINCLIP \ 03980 ((VL53LX_DeviceError) 8) 03981 #define VL53LX_DEVICEERROR_RANGECOMPLETE \ 03982 ((VL53LX_DeviceError) 9) 03983 #define VL53LX_DEVICEERROR_ALGOUNDERFLOW \ 03984 ((VL53LX_DeviceError) 10) 03985 #define VL53LX_DEVICEERROR_ALGOOVERFLOW \ 03986 ((VL53LX_DeviceError) 11) 03987 #define VL53LX_DEVICEERROR_RANGEIGNORETHRESHOLD \ 03988 ((VL53LX_DeviceError) 12) 03989 #define VL53LX_DEVICEERROR_USERROICLIP \ 03990 ((VL53LX_DeviceError) 13) 03991 #define VL53LX_DEVICEERROR_REFSPADCHARNOTENOUGHDPADS \ 03992 ((VL53LX_DeviceError) 14) 03993 #define VL53LX_DEVICEERROR_REFSPADCHARMORETHANTARGET \ 03994 ((VL53LX_DeviceError) 15) 03995 #define VL53LX_DEVICEERROR_REFSPADCHARLESSTHANTARGET \ 03996 ((VL53LX_DeviceError) 16) 03997 #define VL53LX_DEVICEERROR_MULTCLIPFAIL \ 03998 ((VL53LX_DeviceError) 17) 03999 #define VL53LX_DEVICEERROR_GPHSTREAMCOUNT0READY \ 04000 ((VL53LX_DeviceError) 18) 04001 #define VL53LX_DEVICEERROR_RANGECOMPLETE_NO_WRAP_CHECK \ 04002 ((VL53LX_DeviceError) 19) 04003 #define VL53LX_DEVICEERROR_EVENTCONSISTENCY \ 04004 ((VL53LX_DeviceError) 20) 04005 #define VL53LX_DEVICEERROR_MINSIGNALEVENTCHECK \ 04006 ((VL53LX_DeviceError) 21) 04007 #define VL53LX_DEVICEERROR_RANGECOMPLETE_MERGED_PULSE \ 04008 ((VL53LX_DeviceError) 22) 04009 04010 04011 #define VL53LX_DEVICEERROR_PREV_RANGE_NO_TARGETS \ 04012 ((VL53LX_DeviceError) 23) 04013 04014 04015 04016 04017 04018 typedef uint8_t VL53LX_DeviceReportStatus; 04019 04020 #define VL53LX_DEVICEREPORTSTATUS_NOUPDATE \ 04021 ((VL53LX_DeviceReportStatus) 0) 04022 04023 #define VL53LX_DEVICEREPORTSTATUS_ROI_SETUP \ 04024 ((VL53LX_DeviceReportStatus) 1) 04025 #define VL53LX_DEVICEREPORTSTATUS_VHV \ 04026 ((VL53LX_DeviceReportStatus) 2) 04027 #define VL53LX_DEVICEREPORTSTATUS_PHASECAL \ 04028 ((VL53LX_DeviceReportStatus) 3) 04029 #define VL53LX_DEVICEREPORTSTATUS_REFERENCE_PHASE \ 04030 ((VL53LX_DeviceReportStatus) 4) 04031 #define VL53LX_DEVICEREPORTSTATUS_DSS1 \ 04032 ((VL53LX_DeviceReportStatus) 5) 04033 #define VL53LX_DEVICEREPORTSTATUS_DSS2 \ 04034 ((VL53LX_DeviceReportStatus) 6) 04035 #define VL53LX_DEVICEREPORTSTATUS_MM1 \ 04036 ((VL53LX_DeviceReportStatus) 7) 04037 #define VL53LX_DEVICEREPORTSTATUS_MM2 \ 04038 ((VL53LX_DeviceReportStatus) 8) 04039 #define VL53LX_DEVICEREPORTSTATUS_RANGE \ 04040 ((VL53LX_DeviceReportStatus) 9) 04041 #define VL53LX_DEVICEREPORTSTATUS_HISTOGRAM \ 04042 ((VL53LX_DeviceReportStatus) 10) 04043 04044 04045 04046 04047 04048 typedef uint8_t VL53LX_DeviceDssMode; 04049 04050 #define VL53LX_DEVICEDSSMODE__DISABLED \ 04051 ((VL53LX_DeviceDssMode) 0) 04052 #define VL53LX_DEVICEDSSMODE__TARGET_RATE \ 04053 ((VL53LX_DeviceDssMode) 1) 04054 #define VL53LX_DEVICEDSSMODE__REQUESTED_EFFFECTIVE_SPADS \ 04055 ((VL53LX_DeviceDssMode) 2) 04056 #define VL53LX_DEVICEDSSMODE__BLOCK_SELECT \ 04057 ((VL53LX_DeviceDssMode) 3) 04058 04059 04060 04061 04062 04063 04064 typedef uint8_t VL53LX_HistAlgoSelect; 04065 04066 #define VL53LX_HIST_ALGO_SELECT__PW_HIST_GEN1 \ 04067 ((VL53LX_HistAlgoSelect) 1) 04068 #define VL53LX_HIST_ALGO_SELECT__PW_HIST_GEN2 \ 04069 ((VL53LX_HistAlgoSelect) 2) 04070 #define VL53LX_HIST_ALGO_SELECT__PW_HIST_GEN3 \ 04071 ((VL53LX_HistAlgoSelect) 3) 04072 #define VL53LX_HIST_ALGO_SELECT__PW_HIST_GEN4 \ 04073 ((VL53LX_HistAlgoSelect) 4) 04074 04075 04076 04077 04078 04079 04080 typedef uint8_t VL53LX_HistTargetOrder; 04081 04082 #define VL53LX_HIST_TARGET_ORDER__INCREASING_DISTANCE \ 04083 ((VL53LX_HistTargetOrder) 1) 04084 #define VL53LX_HIST_TARGET_ORDER__STRONGEST_FIRST \ 04085 ((VL53LX_HistTargetOrder) 2) 04086 04087 04088 04089 04090 04091 04092 typedef uint8_t VL53LX_HistAmbEstMethod; 04093 04094 #define VL53LX_HIST_AMB_EST_METHOD__AMBIENT_BINS \ 04095 ((VL53LX_HistAmbEstMethod) 1) 04096 #define VL53LX_HIST_AMB_EST_METHOD__THRESHOLDED_BINS \ 04097 ((VL53LX_HistAmbEstMethod) 2) 04098 04099 04100 04101 04102 04103 04104 typedef uint8_t VL53LX_HistXtalkCompEnable; 04105 04106 #define VL53LX_HIST_XTALK_COMP__DIS \ 04107 ((VL53LX_HistXtalkCompEnable) 0) 04108 #define VL53LX_HIST_XTALK_COMP__EN \ 04109 ((VL53LX_HistXtalkCompEnable) 1) 04110 04111 04112 04113 04114 typedef uint8_t VL53LX_DeviceConfigLevel; 04115 04116 #define VL53LX_DEVICECONFIGLEVEL_SYSTEM_CONTROL \ 04117 ((VL53LX_DeviceConfigLevel) 0) 04118 04119 #define VL53LX_DEVICECONFIGLEVEL_DYNAMIC_ONWARDS \ 04120 ((VL53LX_DeviceConfigLevel) 1) 04121 04122 #define VL53LX_DEVICECONFIGLEVEL_TIMING_ONWARDS \ 04123 ((VL53LX_DeviceConfigLevel) 2) 04124 04125 #define VL53LX_DEVICECONFIGLEVEL_GENERAL_ONWARDS \ 04126 ((VL53LX_DeviceConfigLevel) 3) 04127 04128 #define VL53LX_DEVICECONFIGLEVEL_STATIC_ONWARDS \ 04129 ((VL53LX_DeviceConfigLevel) 4) 04130 04131 #define VL53LX_DEVICECONFIGLEVEL_CUSTOMER_ONWARDS \ 04132 ((VL53LX_DeviceConfigLevel) 5) 04133 04134 #define VL53LX_DEVICECONFIGLEVEL_FULL \ 04135 ((VL53LX_DeviceConfigLevel) 6) 04136 04137 04138 04139 04140 04141 04142 typedef uint8_t VL53LX_DeviceResultsLevel; 04143 04144 #define VL53LX_DEVICERESULTSLEVEL_SYSTEM_RESULTS \ 04145 ((VL53LX_DeviceResultsLevel) 0) 04146 04147 #define VL53LX_DEVICERESULTSLEVEL_UPTO_CORE \ 04148 ((VL53LX_DeviceResultsLevel) 1) 04149 04150 #define VL53LX_DEVICERESULTSLEVEL_FULL \ 04151 ((VL53LX_DeviceResultsLevel) 2) 04152 04153 04154 04155 04156 04157 04158 04159 typedef uint8_t VL53LX_DeviceTestMode; 04160 04161 #define VL53LX_DEVICETESTMODE_NONE \ 04162 ((VL53LX_DeviceTestMode) 0x00) 04163 04164 #define VL53LX_DEVICETESTMODE_NVM_ZERO \ 04165 ((VL53LX_DeviceTestMode) 0x01) 04166 04167 #define VL53LX_DEVICETESTMODE_NVM_COPY \ 04168 ((VL53LX_DeviceTestMode) 0x02) 04169 04170 #define VL53LX_DEVICETESTMODE_PATCH \ 04171 ((VL53LX_DeviceTestMode) 0x03) 04172 04173 #define VL53LX_DEVICETESTMODE_DCR \ 04174 ((VL53LX_DeviceTestMode) 0x04) 04175 04176 #define VL53LX_DEVICETESTMODE_LCR_VCSEL_OFF \ 04177 ((VL53LX_DeviceTestMode) 0x05) 04178 04179 #define VL53LX_DEVICETESTMODE_LCR_VCSEL_ON \ 04180 ((VL53LX_DeviceTestMode) 0x06) 04181 04182 #define VL53LX_DEVICETESTMODE_SPOT_CENTRE_LOCATE \ 04183 ((VL53LX_DeviceTestMode) 0x07) 04184 04185 #define VL53LX_DEVICETESTMODE_REF_SPAD_CHAR_WITH_PRE_VHV \ 04186 ((VL53LX_DeviceTestMode) 0x08) 04187 04188 #define VL53LX_DEVICETESTMODE_REF_SPAD_CHAR_ONLY \ 04189 ((VL53LX_DeviceTestMode) 0x09) 04190 04191 04192 04193 04194 04195 04196 04197 typedef uint8_t VL53LX_DeviceSscArray; 04198 04199 #define VL53LX_DEVICESSCARRAY_RTN ((VL53LX_DeviceSscArray) 0x00) 04200 04201 #define VL53LX_DEVICETESTMODE_REF ((VL53LX_DeviceSscArray) 0x01) 04202 04203 04204 04205 04206 04207 04208 04209 #define VL53LX_RETURN_ARRAY_ONLY 0x01 04210 04211 #define VL53LX_REFERENCE_ARRAY_ONLY 0x10 04212 04213 #define VL53LX_BOTH_RETURN_AND_REFERENCE_ARRAYS 0x11 04214 04215 #define VL53LX_NEITHER_RETURN_AND_REFERENCE_ARRAYS 0x00 04216 04217 04218 04219 04220 04221 04222 #define VL53LX_DEVICEINTERRUPTLEVEL_ACTIVE_HIGH 0x00 04223 04224 #define VL53LX_DEVICEINTERRUPTLEVEL_ACTIVE_LOW 0x10 04225 04226 #define VL53LX_DEVICEINTERRUPTLEVEL_ACTIVE_MASK 0x10 04227 04228 04229 04230 04231 04232 04233 #define VL53LX_POLLING_DELAY_US 1000 04234 04235 #define VL53LX_SOFTWARE_RESET_DURATION_US 100 04236 04237 #define VL53LX_FIRMWARE_BOOT_TIME_US 1200 04238 04239 #define VL53LX_ENABLE_POWERFORCE_SETTLING_TIME_US 250 04240 04241 #define VL53LX_SPAD_ARRAY_WIDTH 16 04242 04243 #define VL53LX_SPAD_ARRAY_HEIGHT 16 04244 04245 #define VL53LX_NVM_SIZE_IN_BYTES 512 04246 04247 #define VL53LX_NO_OF_SPAD_ENABLES 256 04248 04249 #define VL53LX_RTN_SPAD_BUFFER_SIZE 32 04250 04251 #define VL53LX_REF_SPAD_BUFFER_SIZE 6 04252 04253 #define VL53LX_AMBIENT_WINDOW_VCSEL_PERIODS 256 04254 04255 #define VL53LX_RANGING_WINDOW_VCSEL_PERIODS 2048 04256 04257 #define VL53LX_MACRO_PERIOD_VCSEL_PERIODS \ 04258 (VL53LX_AMBIENT_WINDOW_VCSEL_PERIODS + \ 04259 VL53LX_RANGING_WINDOW_VCSEL_PERIODS) 04260 04261 #define VL53LX_MAX_ALLOWED_PHASE 0xFFFF 04262 04263 04264 #define VL53LX_RTN_SPAD_UNITY_TRANSMISSION 0x0100 04265 04266 #define VL53LX_RTN_SPAD_APERTURE_TRANSMISSION 0x0038 04267 04268 04269 #define VL53LX_SPAD_TOTAL_COUNT_MAX ((0x01 << 29) - 1) 04270 04271 #define VL53LX_SPAD_TOTAL_COUNT_RES_THRES (0x01 << 24) 04272 04273 #define VL53LX_COUNT_RATE_INTERNAL_MAX ((0x01 << 24) - 1) 04274 04275 #define VL53LX_SPEED_OF_LIGHT_IN_AIR 299704 04276 04277 #define VL53LX_SPEED_OF_LIGHT_IN_AIR_DIV_8 (299704 >> 3) 04278 04279 04280 04281 04282 04283 04284 04285 04286 typedef uint8_t VL53LX_ZoneConfig_BinConfig_select; 04287 04288 #define VL53LX_ZONECONFIG_BINCONFIG__LOWAMB \ 04289 ((VL53LX_ZoneConfig_BinConfig_select) 1) 04290 #define VL53LX_ZONECONFIG_BINCONFIG__MIDAMB \ 04291 ((VL53LX_ZoneConfig_BinConfig_select) 2) 04292 #define VL53LX_ZONECONFIG_BINCONFIG__HIGHAMB \ 04293 ((VL53LX_ZoneConfig_BinConfig_select) 3) 04294 04295 04296 04297 04298 04299 typedef uint8_t VL53LX_GPIO_Interrupt_Mode; 04300 04301 #define VL53LX_GPIOINTMODE_LEVEL_LOW \ 04302 ((VL53LX_GPIO_Interrupt_Mode) 0) 04303 04304 #define VL53LX_GPIOINTMODE_LEVEL_HIGH \ 04305 ((VL53LX_GPIO_Interrupt_Mode) 1) 04306 04307 #define VL53LX_GPIOINTMODE_OUT_OF_WINDOW \ 04308 ((VL53LX_GPIO_Interrupt_Mode) 2) 04309 04310 #define VL53LX_GPIOINTMODE_IN_WINDOW \ 04311 ((VL53LX_GPIO_Interrupt_Mode) 3) 04312 04313 04314 04315 04316 04317 04318 typedef uint16_t VL53LX_TuningParms; 04319 04320 #define VL53LX_TUNINGPARMS_LLD_PUBLIC_MIN_ADDRESS \ 04321 ((VL53LX_TuningParms) VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS) 04322 #define VL53LX_TUNINGPARMS_LLD_PUBLIC_MAX_ADDRESS \ 04323 ((VL53LX_TuningParms) VL53LX_TUNINGPARM_DYNXTALK_MAX_SMUDGE_FACTOR) 04324 04325 #define VL53LX_TUNINGPARMS_LLD_PRIVATE_MIN_ADDRESS \ 04326 ((VL53LX_TuningParms) VL53LX_TUNINGPARM_PRIVATE_PAGE_BASE_ADDRESS) 04327 #define VL53LX_TUNINGPARMS_LLD_PRIVATE_MAX_ADDRESS \ 04328 ((VL53LX_TuningParms) VL53LX_TUNINGPARMS_LLD_PRIVATE_MIN_ADDRESS) 04329 04330 #define VL53LX_TUNINGPARM_VERSION \ 04331 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 0)) 04332 #define VL53LX_TUNINGPARM_KEY_TABLE_VERSION \ 04333 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 1)) 04334 #define VL53LX_TUNINGPARM_LLD_VERSION \ 04335 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 2)) 04336 #define VL53LX_TUNINGPARM_HIST_ALGO_SELECT \ 04337 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 3)) 04338 #define VL53LX_TUNINGPARM_HIST_TARGET_ORDER \ 04339 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 4)) 04340 #define VL53LX_TUNINGPARM_HIST_FILTER_WOI_0 \ 04341 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 5)) 04342 #define VL53LX_TUNINGPARM_HIST_FILTER_WOI_1 \ 04343 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 6)) 04344 #define VL53LX_TUNINGPARM_HIST_AMB_EST_METHOD \ 04345 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 7)) 04346 #define VL53LX_TUNINGPARM_HIST_AMB_THRESH_SIGMA_0 \ 04347 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 8)) 04348 #define VL53LX_TUNINGPARM_HIST_AMB_THRESH_SIGMA_1 \ 04349 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 9)) 04350 #define VL53LX_TUNINGPARM_HIST_MIN_AMB_THRESH_EVENTS \ 04351 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 10)) 04352 #define VL53LX_TUNINGPARM_HIST_AMB_EVENTS_SCALER \ 04353 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 11)) 04354 #define VL53LX_TUNINGPARM_HIST_NOISE_THRESHOLD \ 04355 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 12)) 04356 #define VL53LX_TUNINGPARM_HIST_SIGNAL_TOTAL_EVENTS_LIMIT \ 04357 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 13)) 04358 #define VL53LX_TUNINGPARM_HIST_SIGMA_EST_REF_MM \ 04359 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 14)) 04360 #define VL53LX_TUNINGPARM_HIST_SIGMA_THRESH_MM \ 04361 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 15)) 04362 #define VL53LX_TUNINGPARM_HIST_GAIN_FACTOR \ 04363 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 16)) 04364 #define VL53LX_TUNINGPARM_CONSISTENCY_HIST_PHASE_TOLERANCE \ 04365 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 17)) 04366 #define VL53LX_TUNINGPARM_CONSISTENCY_HIST_MIN_MAX_TOLERANCE_MM \ 04367 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 18)) 04368 #define VL53LX_TUNINGPARM_CONSISTENCY_HIST_EVENT_SIGMA \ 04369 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 19)) 04370 #define VL53LX_TUNINGPARM_CONSISTENCY_HIST_EVENT_SIGMA_MIN_SPAD_LIMIT \ 04371 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 20)) 04372 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_HISTO_LONG_RANGE \ 04373 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 21)) 04374 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_HISTO_MED_RANGE \ 04375 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 22)) 04376 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_HISTO_SHORT_RANGE \ 04377 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 23)) 04378 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_HISTO_LONG_RANGE \ 04379 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 24)) 04380 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_HISTO_MED_RANGE \ 04381 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 25)) 04382 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_HISTO_SHORT_RANGE \ 04383 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 26)) 04384 #define VL53LX_TUNINGPARM_XTALK_DETECT_MIN_VALID_RANGE_MM \ 04385 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 27)) 04386 #define VL53LX_TUNINGPARM_XTALK_DETECT_MAX_VALID_RANGE_MM \ 04387 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 28)) 04388 #define VL53LX_TUNINGPARM_XTALK_DETECT_MAX_SIGMA_MM \ 04389 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 29)) 04390 #define VL53LX_TUNINGPARM_XTALK_DETECT_MIN_MAX_TOLERANCE \ 04391 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 30)) 04392 #define VL53LX_TUNINGPARM_XTALK_DETECT_MAX_VALID_RATE_KCPS \ 04393 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 31)) 04394 #define VL53LX_TUNINGPARM_XTALK_DETECT_EVENT_SIGMA \ 04395 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 32)) 04396 #define VL53LX_TUNINGPARM_HIST_XTALK_MARGIN_KCPS \ 04397 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 33)) 04398 #define VL53LX_TUNINGPARM_CONSISTENCY_LITE_PHASE_TOLERANCE \ 04399 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 34)) 04400 #define VL53LX_TUNINGPARM_PHASECAL_TARGET \ 04401 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 35)) 04402 #define VL53LX_TUNINGPARM_LITE_CAL_REPEAT_RATE \ 04403 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 36)) 04404 #define VL53LX_TUNINGPARM_LITE_RANGING_GAIN_FACTOR \ 04405 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 37)) 04406 #define VL53LX_TUNINGPARM_LITE_MIN_CLIP_MM \ 04407 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 38)) 04408 #define VL53LX_TUNINGPARM_LITE_LONG_SIGMA_THRESH_MM \ 04409 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 39)) 04410 #define VL53LX_TUNINGPARM_LITE_MED_SIGMA_THRESH_MM \ 04411 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 40)) 04412 #define VL53LX_TUNINGPARM_LITE_SHORT_SIGMA_THRESH_MM \ 04413 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 41)) 04414 #define VL53LX_TUNINGPARM_LITE_LONG_MIN_COUNT_RATE_RTN_MCPS \ 04415 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 42)) 04416 #define VL53LX_TUNINGPARM_LITE_MED_MIN_COUNT_RATE_RTN_MCPS \ 04417 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 43)) 04418 #define VL53LX_TUNINGPARM_LITE_SHORT_MIN_COUNT_RATE_RTN_MCPS \ 04419 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 44)) 04420 #define VL53LX_TUNINGPARM_LITE_SIGMA_EST_PULSE_WIDTH \ 04421 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 45)) 04422 #define VL53LX_TUNINGPARM_LITE_SIGMA_EST_AMB_WIDTH_NS \ 04423 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 46)) 04424 #define VL53LX_TUNINGPARM_LITE_SIGMA_REF_MM \ 04425 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 47)) 04426 #define VL53LX_TUNINGPARM_LITE_RIT_MULT \ 04427 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 48)) 04428 #define VL53LX_TUNINGPARM_LITE_SEED_CONFIG \ 04429 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 49)) 04430 #define VL53LX_TUNINGPARM_LITE_QUANTIFIER \ 04431 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 50)) 04432 #define VL53LX_TUNINGPARM_LITE_FIRST_ORDER_SELECT \ 04433 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 51)) 04434 #define VL53LX_TUNINGPARM_LITE_XTALK_MARGIN_KCPS \ 04435 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 52)) 04436 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_LITE_LONG_RANGE \ 04437 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 53)) 04438 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_LITE_MED_RANGE \ 04439 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 54)) 04440 #define VL53LX_TUNINGPARM_INITIAL_PHASE_RTN_LITE_SHORT_RANGE \ 04441 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 55)) 04442 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_LITE_LONG_RANGE \ 04443 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 56)) 04444 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_LITE_MED_RANGE \ 04445 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 57)) 04446 #define VL53LX_TUNINGPARM_INITIAL_PHASE_REF_LITE_SHORT_RANGE \ 04447 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 58)) 04448 #define VL53LX_TUNINGPARM_TIMED_SEED_CONFIG \ 04449 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 59)) 04450 #define VL53LX_TUNINGPARM_DMAX_CFG_SIGNAL_THRESH_SIGMA \ 04451 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 60)) 04452 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_0 \ 04453 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 61)) 04454 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_1 \ 04455 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 62)) 04456 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_2 \ 04457 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 63)) 04458 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_3 \ 04459 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 64)) 04460 #define VL53LX_TUNINGPARM_DMAX_CFG_REFLECTANCE_ARRAY_4 \ 04461 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 65)) 04462 #define VL53LX_TUNINGPARM_VHV_LOOPBOUND \ 04463 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 66)) 04464 #define VL53LX_TUNINGPARM_REFSPADCHAR_DEVICE_TEST_MODE \ 04465 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 67)) 04466 #define VL53LX_TUNINGPARM_REFSPADCHAR_VCSEL_PERIOD \ 04467 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 68)) 04468 #define VL53LX_TUNINGPARM_REFSPADCHAR_PHASECAL_TIMEOUT_US \ 04469 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 69)) 04470 #define VL53LX_TUNINGPARM_REFSPADCHAR_TARGET_COUNT_RATE_MCPS \ 04471 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 70)) 04472 #define VL53LX_TUNINGPARM_REFSPADCHAR_MIN_COUNTRATE_LIMIT_MCPS \ 04473 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 71)) 04474 #define VL53LX_TUNINGPARM_REFSPADCHAR_MAX_COUNTRATE_LIMIT_MCPS \ 04475 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 72)) 04476 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_NUM_OF_SAMPLES \ 04477 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 73)) 04478 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_MIN_FILTER_THRESH_MM \ 04479 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 74)) 04480 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_MAX_FILTER_THRESH_MM \ 04481 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 75)) 04482 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_DSS_RATE_MCPS \ 04483 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 76)) 04484 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_PHASECAL_TIMEOUT_US \ 04485 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 77)) 04486 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_MAX_VALID_RATE_KCPS \ 04487 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 78)) 04488 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_SIGMA_THRESHOLD_MM \ 04489 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 79)) 04490 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_DSS_TIMEOUT_US \ 04491 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 80)) 04492 #define VL53LX_TUNINGPARM_XTALK_EXTRACT_BIN_TIMEOUT_US \ 04493 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 81)) 04494 #define VL53LX_TUNINGPARM_OFFSET_CAL_DSS_RATE_MCPS \ 04495 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 82)) 04496 #define VL53LX_TUNINGPARM_OFFSET_CAL_PHASECAL_TIMEOUT_US \ 04497 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 83)) 04498 #define VL53LX_TUNINGPARM_OFFSET_CAL_MM_TIMEOUT_US \ 04499 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 84)) 04500 #define VL53LX_TUNINGPARM_OFFSET_CAL_RANGE_TIMEOUT_US \ 04501 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 85)) 04502 #define VL53LX_TUNINGPARM_OFFSET_CAL_PRE_SAMPLES \ 04503 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 86)) 04504 #define VL53LX_TUNINGPARM_OFFSET_CAL_MM1_SAMPLES \ 04505 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 87)) 04506 #define VL53LX_TUNINGPARM_OFFSET_CAL_MM2_SAMPLES \ 04507 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 88)) 04508 #define VL53LX_TUNINGPARM_ZONE_CAL_DSS_RATE_MCPS \ 04509 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 89)) 04510 #define VL53LX_TUNINGPARM_ZONE_CAL_PHASECAL_TIMEOUT_US \ 04511 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 90)) 04512 #define VL53LX_TUNINGPARM_ZONE_CAL_DSS_TIMEOUT_US \ 04513 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 91)) 04514 #define VL53LX_TUNINGPARM_ZONE_CAL_PHASECAL_NUM_SAMPLES \ 04515 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 92)) 04516 #define VL53LX_TUNINGPARM_ZONE_CAL_RANGE_TIMEOUT_US \ 04517 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 93)) 04518 #define VL53LX_TUNINGPARM_ZONE_CAL_ZONE_NUM_SAMPLES \ 04519 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 94)) 04520 #define VL53LX_TUNINGPARM_SPADMAP_VCSEL_PERIOD \ 04521 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 95)) 04522 #define VL53LX_TUNINGPARM_SPADMAP_VCSEL_START \ 04523 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 96)) 04524 #define VL53LX_TUNINGPARM_SPADMAP_RATE_LIMIT_MCPS \ 04525 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 97)) 04526 #define VL53LX_TUNINGPARM_LITE_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS \ 04527 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 98)) 04528 #define VL53LX_TUNINGPARM_RANGING_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS \ 04529 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 99)) 04530 #define VL53LX_TUNINGPARM_MZ_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS \ 04531 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 100)) 04532 #define VL53LX_TUNINGPARM_TIMED_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS \ 04533 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 101)) 04534 #define VL53LX_TUNINGPARM_LITE_PHASECAL_CONFIG_TIMEOUT_US \ 04535 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 102)) 04536 #define VL53LX_TUNINGPARM_RANGING_LONG_PHASECAL_CONFIG_TIMEOUT_US \ 04537 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 103)) 04538 #define VL53LX_TUNINGPARM_RANGING_MED_PHASECAL_CONFIG_TIMEOUT_US \ 04539 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 104)) 04540 #define VL53LX_TUNINGPARM_RANGING_SHORT_PHASECAL_CONFIG_TIMEOUT_US \ 04541 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 105)) 04542 #define VL53LX_TUNINGPARM_MZ_LONG_PHASECAL_CONFIG_TIMEOUT_US \ 04543 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 106)) 04544 #define VL53LX_TUNINGPARM_MZ_MED_PHASECAL_CONFIG_TIMEOUT_US \ 04545 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 107)) 04546 #define VL53LX_TUNINGPARM_MZ_SHORT_PHASECAL_CONFIG_TIMEOUT_US \ 04547 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 108)) 04548 #define VL53LX_TUNINGPARM_TIMED_PHASECAL_CONFIG_TIMEOUT_US \ 04549 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 109)) 04550 #define VL53LX_TUNINGPARM_LITE_MM_CONFIG_TIMEOUT_US \ 04551 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 110)) 04552 #define VL53LX_TUNINGPARM_RANGING_MM_CONFIG_TIMEOUT_US \ 04553 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 111)) 04554 #define VL53LX_TUNINGPARM_MZ_MM_CONFIG_TIMEOUT_US \ 04555 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 112)) 04556 #define VL53LX_TUNINGPARM_TIMED_MM_CONFIG_TIMEOUT_US \ 04557 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 113)) 04558 #define VL53LX_TUNINGPARM_LITE_RANGE_CONFIG_TIMEOUT_US \ 04559 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 114)) 04560 #define VL53LX_TUNINGPARM_RANGING_RANGE_CONFIG_TIMEOUT_US \ 04561 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 115)) 04562 #define VL53LX_TUNINGPARM_MZ_RANGE_CONFIG_TIMEOUT_US \ 04563 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 116)) 04564 #define VL53LX_TUNINGPARM_TIMED_RANGE_CONFIG_TIMEOUT_US \ 04565 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 117)) 04566 #define VL53LX_TUNINGPARM_DYNXTALK_SMUDGE_MARGIN \ 04567 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 118)) 04568 #define VL53LX_TUNINGPARM_DYNXTALK_NOISE_MARGIN \ 04569 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 119)) 04570 #define VL53LX_TUNINGPARM_DYNXTALK_XTALK_OFFSET_LIMIT \ 04571 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 120)) 04572 #define VL53LX_TUNINGPARM_DYNXTALK_XTALK_OFFSET_LIMIT_HI \ 04573 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 121)) 04574 #define VL53LX_TUNINGPARM_DYNXTALK_SAMPLE_LIMIT \ 04575 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 122)) 04576 #define VL53LX_TUNINGPARM_DYNXTALK_SINGLE_XTALK_DELTA \ 04577 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 123)) 04578 #define VL53LX_TUNINGPARM_DYNXTALK_AVERAGED_XTALK_DELTA \ 04579 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 124)) 04580 #define VL53LX_TUNINGPARM_DYNXTALK_CLIP_LIMIT \ 04581 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 125)) 04582 #define VL53LX_TUNINGPARM_DYNXTALK_SCALER_CALC_METHOD \ 04583 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 126)) 04584 #define VL53LX_TUNINGPARM_DYNXTALK_XGRADIENT_SCALER \ 04585 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 127)) 04586 #define VL53LX_TUNINGPARM_DYNXTALK_YGRADIENT_SCALER \ 04587 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 128)) 04588 #define VL53LX_TUNINGPARM_DYNXTALK_USER_SCALER_SET \ 04589 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 129)) 04590 #define VL53LX_TUNINGPARM_DYNXTALK_SMUDGE_COR_SINGLE_APPLY \ 04591 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 130)) 04592 #define VL53LX_TUNINGPARM_DYNXTALK_XTALK_AMB_THRESHOLD \ 04593 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 131)) 04594 #define VL53LX_TUNINGPARM_DYNXTALK_NODETECT_AMB_THRESHOLD_KCPS \ 04595 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 132)) 04596 #define VL53LX_TUNINGPARM_DYNXTALK_NODETECT_SAMPLE_LIMIT \ 04597 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 133)) 04598 #define VL53LX_TUNINGPARM_DYNXTALK_NODETECT_XTALK_OFFSET_KCPS \ 04599 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 134)) 04600 #define VL53LX_TUNINGPARM_DYNXTALK_NODETECT_MIN_RANGE_MM \ 04601 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 135)) 04602 #define VL53LX_TUNINGPARM_LOWPOWERAUTO_VHV_LOOP_BOUND \ 04603 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 136)) 04604 #define VL53LX_TUNINGPARM_LOWPOWERAUTO_MM_CONFIG_TIMEOUT_US \ 04605 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 137)) 04606 #define VL53LX_TUNINGPARM_LOWPOWERAUTO_RANGE_CONFIG_TIMEOUT_US \ 04607 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 138)) 04608 #define VL53LX_TUNINGPARM_VERY_SHORT_DSS_RATE_MCPS \ 04609 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 139)) 04610 #define VL53LX_TUNINGPARM_PHASECAL_PATCH_POWER \ 04611 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 140)) 04612 #define VL53LX_TUNINGPARM_HIST_MERGE \ 04613 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 141)) 04614 #define VL53LX_TUNINGPARM_RESET_MERGE_THRESHOLD \ 04615 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 142)) 04616 #define VL53LX_TUNINGPARM_HIST_MERGE_MAX_SIZE \ 04617 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 143)) 04618 #define VL53LX_TUNINGPARM_DYNXTALK_MAX_SMUDGE_FACTOR \ 04619 ((VL53LX_TuningParms) (VL53LX_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 144)) 04620 04621 // define from vl53lx_platform_log.h 04622 04623 #define VL53LX_TRACE_LEVEL_NONE 0x00000000 04624 #define VL53LX_TRACE_LEVEL_ERRORS 0x00000001 04625 #define VL53LX_TRACE_LEVEL_WARNING 0x00000002 04626 #define VL53LX_TRACE_LEVEL_INFO 0x00000004 04627 #define VL53LX_TRACE_LEVEL_DEBUG 0x00000008 04628 #define VL53LX_TRACE_LEVEL_ALL 0x00000010 04629 #define VL53LX_TRACE_LEVEL_IGNORE 0x00000020 04630 04631 #define VL53LX_TRACE_FUNCTION_NONE 0x00000000 04632 #define VL53LX_TRACE_FUNCTION_I2C 0x00000001 04633 #define VL53LX_TRACE_FUNCTION_ALL 0x7fffffff 04634 04635 #define VL53LX_TRACE_MODULE_NONE 0x00000000 04636 #define VL53LX_TRACE_MODULE_API 0x00000001 04637 #define VL53LX_TRACE_MODULE_CORE 0x00000002 04638 #define VL53LX_TRACE_MODULE_PROTECTED 0x00000004 04639 #define VL53LX_TRACE_MODULE_HISTOGRAM 0x00000008 04640 #define VL53LX_TRACE_MODULE_REGISTERS 0x00000010 04641 #define VL53LX_TRACE_MODULE_PLATFORM 0x00000020 04642 #define VL53LX_TRACE_MODULE_NVM 0x00000040 04643 #define VL53LX_TRACE_MODULE_CALIBRATION_DATA 0x00000080 04644 #define VL53LX_TRACE_MODULE_NVM_DATA 0x00000100 04645 #define VL53LX_TRACE_MODULE_HISTOGRAM_DATA 0x00000200 04646 #define VL53LX_TRACE_MODULE_RANGE_RESULTS_DATA 0x00000400 04647 #define VL53LX_TRACE_MODULE_XTALK_DATA 0x00000800 04648 #define VL53LX_TRACE_MODULE_OFFSET_DATA 0x00001000 04649 #define VL53LX_TRACE_MODULE_DATA_INIT 0x00002000 04650 #define VL53LX_TRACE_MODULE_REF_SPAD_CHAR 0x00004000 04651 #define VL53LX_TRACE_MODULE_SPAD_RATE_MAP 0x00008000 04652 04653 04654 04655 // define & typedef from vl53lx_register_structs.h 04656 04657 04658 #define VL53LX_STATIC_NVM_MANAGED_I2C_INDEX \ 04659 VL53LX_I2C_SLAVE__DEVICE_ADDRESS 04660 #define VL53LX_CUSTOMER_NVM_MANAGED_I2C_INDEX \ 04661 VL53LX_GLOBAL_CONFIG__SPAD_ENABLES_REF_0 04662 #define VL53LX_STATIC_CONFIG_I2C_INDEX \ 04663 VL53LX_DSS_CONFIG__TARGET_TOTAL_RATE_MCPS 04664 #define VL53LX_GENERAL_CONFIG_I2C_INDEX \ 04665 VL53LX_GPH_CONFIG__STREAM_COUNT_UPDATE_VALUE 04666 #define VL53LX_TIMING_CONFIG_I2C_INDEX \ 04667 VL53LX_MM_CONFIG__TIMEOUT_MACROP_A_HI 04668 #define VL53LX_DYNAMIC_CONFIG_I2C_INDEX \ 04669 VL53LX_SYSTEM__GROUPED_PARAMETER_HOLD_0 04670 #define VL53LX_SYSTEM_CONTROL_I2C_INDEX \ 04671 VL53LX_POWER_MANAGEMENT__GO1_POWER_FORCE 04672 #define VL53LX_SYSTEM_RESULTS_I2C_INDEX \ 04673 VL53LX_RESULT__INTERRUPT_STATUS 04674 #define VL53LX_CORE_RESULTS_I2C_INDEX \ 04675 VL53LX_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 04676 #define VL53LX_DEBUG_RESULTS_I2C_INDEX \ 04677 VL53LX_PHASECAL_RESULT__REFERENCE_PHASE 04678 #define VL53LX_NVM_COPY_DATA_I2C_INDEX \ 04679 VL53LX_IDENTIFICATION__MODEL_ID 04680 #define VL53LX_PREV_SHADOW_SYSTEM_RESULTS_I2C_INDEX \ 04681 VL53LX_PREV_SHADOW_RESULT__INTERRUPT_STATUS 04682 #define VL53LX_PREV_SHADOW_CORE_RESULTS_I2C_INDEX \ 04683 VL53LX_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 04684 #define VL53LX_PATCH_DEBUG_I2C_INDEX \ 04685 VL53LX_RESULT__DEBUG_STATUS 04686 #define VL53LX_GPH_GENERAL_CONFIG_I2C_INDEX \ 04687 VL53LX_GPH__SYSTEM__THRESH_RATE_HIGH 04688 #define VL53LX_GPH_STATIC_CONFIG_I2C_INDEX \ 04689 VL53LX_GPH__DSS_CONFIG__ROI_MODE_CONTROL 04690 #define VL53LX_GPH_TIMING_CONFIG_I2C_INDEX \ 04691 VL53LX_GPH__MM_CONFIG__TIMEOUT_MACROP_A_HI 04692 #define VL53LX_FW_INTERNAL_I2C_INDEX \ 04693 VL53LX_FIRMWARE__INTERNAL_STREAM_COUNT_DIV 04694 #define VL53LX_PATCH_RESULTS_I2C_INDEX \ 04695 VL53LX_DSS_CALC__ROI_CTRL 04696 #define VL53LX_SHADOW_SYSTEM_RESULTS_I2C_INDEX \ 04697 VL53LX_SHADOW_PHASECAL_RESULT__VCSEL_START 04698 #define VL53LX_SHADOW_CORE_RESULTS_I2C_INDEX \ 04699 VL53LX_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 04700 04701 #define VL53LX_STATIC_NVM_MANAGED_I2C_SIZE_BYTES 11 04702 #define VL53LX_CUSTOMER_NVM_MANAGED_I2C_SIZE_BYTES 23 04703 #define VL53LX_STATIC_CONFIG_I2C_SIZE_BYTES 32 04704 #define VL53LX_GENERAL_CONFIG_I2C_SIZE_BYTES 22 04705 #define VL53LX_TIMING_CONFIG_I2C_SIZE_BYTES 23 04706 #define VL53LX_DYNAMIC_CONFIG_I2C_SIZE_BYTES 18 04707 #define VL53LX_SYSTEM_CONTROL_I2C_SIZE_BYTES 5 04708 #define VL53LX_SYSTEM_RESULTS_I2C_SIZE_BYTES 44 04709 #define VL53LX_CORE_RESULTS_I2C_SIZE_BYTES 33 04710 #define VL53LX_DEBUG_RESULTS_I2C_SIZE_BYTES 56 04711 #define VL53LX_NVM_COPY_DATA_I2C_SIZE_BYTES 49 04712 #define VL53LX_PREV_SHADOW_SYSTEM_RESULTS_I2C_SIZE_BYTES 44 04713 #define VL53LX_PREV_SHADOW_CORE_RESULTS_I2C_SIZE_BYTES 33 04714 #define VL53LX_PATCH_DEBUG_I2C_SIZE_BYTES 2 04715 #define VL53LX_GPH_GENERAL_CONFIG_I2C_SIZE_BYTES 5 04716 #define VL53LX_GPH_STATIC_CONFIG_I2C_SIZE_BYTES 6 04717 #define VL53LX_GPH_TIMING_CONFIG_I2C_SIZE_BYTES 16 04718 #define VL53LX_FW_INTERNAL_I2C_SIZE_BYTES 2 04719 #define VL53LX_PATCH_RESULTS_I2C_SIZE_BYTES 90 04720 #define VL53LX_SHADOW_SYSTEM_RESULTS_I2C_SIZE_BYTES 82 04721 #define VL53LX_SHADOW_CORE_RESULTS_I2C_SIZE_BYTES 33 04722 04723 04724 04725 04726 typedef struct { 04727 uint8_t i2c_slave__device_address; 04728 04729 uint8_t ana_config__vhv_ref_sel_vddpix; 04730 04731 uint8_t ana_config__vhv_ref_sel_vquench; 04732 04733 uint8_t ana_config__reg_avdd1v2_sel; 04734 04735 uint8_t ana_config__fast_osc__trim; 04736 04737 uint16_t osc_measured__fast_osc__frequency; 04738 04739 uint8_t vhv_config__timeout_macrop_loop_bound; 04740 04741 uint8_t vhv_config__count_thresh; 04742 04743 uint8_t vhv_config__offset; 04744 04745 uint8_t vhv_config__init; 04746 04747 } VL53LX_static_nvm_managed_t; 04748 04749 04750 04751 04752 typedef struct { 04753 uint8_t global_config__spad_enables_ref_0; 04754 04755 uint8_t global_config__spad_enables_ref_1; 04756 04757 uint8_t global_config__spad_enables_ref_2; 04758 04759 uint8_t global_config__spad_enables_ref_3; 04760 04761 uint8_t global_config__spad_enables_ref_4; 04762 04763 uint8_t global_config__spad_enables_ref_5; 04764 04765 uint8_t global_config__ref_en_start_select; 04766 04767 uint8_t ref_spad_man__num_requested_ref_spads; 04768 04769 uint8_t ref_spad_man__ref_location; 04770 04771 uint16_t algo__crosstalk_compensation_plane_offset_kcps; 04772 04773 int16_t algo__crosstalk_compensation_x_plane_gradient_kcps; 04774 04775 int16_t algo__crosstalk_compensation_y_plane_gradient_kcps; 04776 04777 uint16_t ref_spad_char__total_rate_target_mcps; 04778 04779 int16_t algo__part_to_part_range_offset_mm; 04780 04781 int16_t mm_config__inner_offset_mm; 04782 04783 int16_t mm_config__outer_offset_mm; 04784 04785 } VL53LX_customer_nvm_managed_t; 04786 04787 04788 04789 04790 typedef struct { 04791 uint16_t dss_config__target_total_rate_mcps; 04792 04793 uint8_t debug__ctrl; 04794 04795 uint8_t test_mode__ctrl; 04796 04797 uint8_t clk_gating__ctrl; 04798 04799 uint8_t nvm_bist__ctrl; 04800 04801 uint8_t nvm_bist__num_nvm_words; 04802 04803 uint8_t nvm_bist__start_address; 04804 04805 uint8_t host_if__status; 04806 04807 uint8_t pad_i2c_hv__config; 04808 04809 uint8_t pad_i2c_hv__extsup_config; 04810 04811 uint8_t gpio_hv_pad__ctrl; 04812 04813 uint8_t gpio_hv_mux__ctrl; 04814 04815 uint8_t gpio__tio_hv_status; 04816 04817 uint8_t gpio__fio_hv_status; 04818 04819 uint8_t ana_config__spad_sel_pswidth; 04820 04821 uint8_t ana_config__vcsel_pulse_width_offset; 04822 04823 uint8_t ana_config__fast_osc__config_ctrl; 04824 04825 uint8_t sigma_estimator__effective_pulse_width_ns; 04826 04827 uint8_t sigma_estimator__effective_ambient_width_ns; 04828 04829 uint8_t sigma_estimator__sigma_ref_mm; 04830 04831 uint8_t algo__crosstalk_compensation_valid_height_mm; 04832 04833 uint8_t spare_host_config__static_config_spare_0; 04834 04835 uint8_t spare_host_config__static_config_spare_1; 04836 04837 uint16_t algo__range_ignore_threshold_mcps; 04838 04839 uint8_t algo__range_ignore_valid_height_mm; 04840 04841 uint8_t algo__range_min_clip; 04842 04843 uint8_t algo__consistency_check__tolerance; 04844 04845 uint8_t spare_host_config__static_config_spare_2; 04846 04847 uint8_t sd_config__reset_stages_msb; 04848 04849 uint8_t sd_config__reset_stages_lsb; 04850 04851 } VL53LX_static_config_t; 04852 04853 04854 04855 04856 typedef struct { 04857 uint8_t gph_config__stream_count_update_value; 04858 04859 uint8_t global_config__stream_divider; 04860 04861 uint8_t system__interrupt_config_gpio; 04862 04863 uint8_t cal_config__vcsel_start; 04864 04865 uint16_t cal_config__repeat_rate; 04866 04867 uint8_t global_config__vcsel_width; 04868 04869 uint8_t phasecal_config__timeout_macrop; 04870 04871 uint8_t phasecal_config__target; 04872 04873 uint8_t phasecal_config__override; 04874 04875 uint8_t dss_config__roi_mode_control; 04876 04877 uint16_t system__thresh_rate_high; 04878 04879 uint16_t system__thresh_rate_low; 04880 04881 uint16_t dss_config__manual_effective_spads_select; 04882 04883 uint8_t dss_config__manual_block_select; 04884 04885 uint8_t dss_config__aperture_attenuation; 04886 04887 uint8_t dss_config__max_spads_limit; 04888 04889 uint8_t dss_config__min_spads_limit; 04890 04891 } VL53LX_general_config_t; 04892 04893 04894 04895 04896 typedef struct { 04897 uint8_t mm_config__timeout_macrop_a_hi; 04898 04899 uint8_t mm_config__timeout_macrop_a_lo; 04900 04901 uint8_t mm_config__timeout_macrop_b_hi; 04902 04903 uint8_t mm_config__timeout_macrop_b_lo; 04904 04905 uint8_t range_config__timeout_macrop_a_hi; 04906 04907 uint8_t range_config__timeout_macrop_a_lo; 04908 04909 uint8_t range_config__vcsel_period_a; 04910 04911 uint8_t range_config__timeout_macrop_b_hi; 04912 04913 uint8_t range_config__timeout_macrop_b_lo; 04914 04915 uint8_t range_config__vcsel_period_b; 04916 04917 uint16_t range_config__sigma_thresh; 04918 04919 uint16_t range_config__min_count_rate_rtn_limit_mcps; 04920 04921 uint8_t range_config__valid_phase_low; 04922 04923 uint8_t range_config__valid_phase_high; 04924 04925 uint32_t system__intermeasurement_period; 04926 04927 uint8_t system__fractional_enable; 04928 04929 } VL53LX_timing_config_t; 04930 04931 04932 04933 04934 typedef struct { 04935 uint8_t system__grouped_parameter_hold_0; 04936 04937 uint16_t system__thresh_high; 04938 04939 uint16_t system__thresh_low; 04940 04941 uint8_t system__enable_xtalk_per_quadrant; 04942 04943 uint8_t system__seed_config; 04944 04945 uint8_t sd_config__woi_sd0; 04946 04947 uint8_t sd_config__woi_sd1; 04948 04949 uint8_t sd_config__initial_phase_sd0; 04950 04951 uint8_t sd_config__initial_phase_sd1; 04952 04953 uint8_t system__grouped_parameter_hold_1; 04954 04955 uint8_t sd_config__first_order_select; 04956 04957 uint8_t sd_config__quantifier; 04958 04959 uint8_t roi_config__user_roi_centre_spad; 04960 04961 uint8_t roi_config__user_roi_requested_global_xy_size; 04962 04963 uint8_t system__sequence_config; 04964 04965 uint8_t system__grouped_parameter_hold; 04966 04967 } VL53LX_dynamic_config_t; 04968 04969 04970 04971 04972 typedef struct { 04973 uint8_t power_management__go1_power_force; 04974 04975 uint8_t system__stream_count_ctrl; 04976 04977 uint8_t firmware__enable; 04978 04979 uint8_t system__interrupt_clear; 04980 04981 uint8_t system__mode_start; 04982 04983 } VL53LX_system_control_t; 04984 04985 04986 04987 04988 typedef struct { 04989 uint8_t result__interrupt_status; 04990 04991 uint8_t result__range_status; 04992 04993 uint8_t result__report_status; 04994 04995 uint8_t result__stream_count; 04996 04997 uint16_t result__dss_actual_effective_spads_sd0; 04998 04999 uint16_t result__peak_signal_count_rate_mcps_sd0; 05000 05001 uint16_t result__ambient_count_rate_mcps_sd0; 05002 05003 uint16_t result__sigma_sd0; 05004 05005 uint16_t result__phase_sd0; 05006 05007 uint16_t result__final_crosstalk_corrected_range_mm_sd0; 05008 05009 uint16_t result__peak_signal_count_rate_crosstalk_corrected_mcps_sd0; 05010 05011 uint16_t result__mm_inner_actual_effective_spads_sd0; 05012 05013 uint16_t result__mm_outer_actual_effective_spads_sd0; 05014 05015 uint16_t result__avg_signal_count_rate_mcps_sd0; 05016 05017 uint16_t result__dss_actual_effective_spads_sd1; 05018 05019 uint16_t result__peak_signal_count_rate_mcps_sd1; 05020 05021 uint16_t result__ambient_count_rate_mcps_sd1; 05022 05023 uint16_t result__sigma_sd1; 05024 05025 uint16_t result__phase_sd1; 05026 05027 uint16_t result__final_crosstalk_corrected_range_mm_sd1; 05028 05029 uint16_t result__spare_0_sd1; 05030 05031 uint16_t result__spare_1_sd1; 05032 05033 uint16_t result__spare_2_sd1; 05034 05035 uint8_t result__spare_3_sd1; 05036 05037 uint8_t result__thresh_info; 05038 05039 } VL53LX_system_results_t; 05040 05041 05042 05043 05044 typedef struct { 05045 uint32_t result_core__ambient_window_events_sd0; 05046 05047 uint32_t result_core__ranging_total_events_sd0; 05048 05049 int32_t result_core__signal_total_events_sd0; 05050 05051 uint32_t result_core__total_periods_elapsed_sd0; 05052 05053 uint32_t result_core__ambient_window_events_sd1; 05054 05055 uint32_t result_core__ranging_total_events_sd1; 05056 05057 int32_t result_core__signal_total_events_sd1; 05058 05059 uint32_t result_core__total_periods_elapsed_sd1; 05060 05061 uint8_t result_core__spare_0; 05062 05063 } VL53LX_core_results_t; 05064 05065 05066 05067 05068 typedef struct { 05069 uint16_t phasecal_result__reference_phase; 05070 05071 uint8_t phasecal_result__vcsel_start; 05072 05073 uint8_t ref_spad_char_result__num_actual_ref_spads; 05074 05075 uint8_t ref_spad_char_result__ref_location; 05076 05077 uint8_t vhv_result__coldboot_status; 05078 05079 uint8_t vhv_result__search_result; 05080 05081 uint8_t vhv_result__latest_setting; 05082 05083 uint16_t result__osc_calibrate_val; 05084 05085 uint8_t ana_config__powerdown_go1; 05086 05087 uint8_t ana_config__ref_bg_ctrl; 05088 05089 uint8_t ana_config__regdvdd1v2_ctrl; 05090 05091 uint8_t ana_config__osc_slow_ctrl; 05092 05093 uint8_t test_mode__status; 05094 05095 uint8_t firmware__system_status; 05096 05097 uint8_t firmware__mode_status; 05098 05099 uint8_t firmware__secondary_mode_status; 05100 05101 uint16_t firmware__cal_repeat_rate_counter; 05102 05103 uint16_t gph__system__thresh_high; 05104 05105 uint16_t gph__system__thresh_low; 05106 05107 uint8_t gph__system__enable_xtalk_per_quadrant; 05108 05109 uint8_t gph__spare_0; 05110 05111 uint8_t gph__sd_config__woi_sd0; 05112 05113 uint8_t gph__sd_config__woi_sd1; 05114 05115 uint8_t gph__sd_config__initial_phase_sd0; 05116 05117 uint8_t gph__sd_config__initial_phase_sd1; 05118 05119 uint8_t gph__sd_config__first_order_select; 05120 05121 uint8_t gph__sd_config__quantifier; 05122 05123 uint8_t gph__roi_config__user_roi_centre_spad; 05124 05125 uint8_t gph__roi_config__user_roi_requested_global_xy_size; 05126 05127 uint8_t gph__system__sequence_config; 05128 05129 uint8_t gph__gph_id; 05130 05131 uint8_t system__interrupt_set; 05132 05133 uint8_t interrupt_manager__enables; 05134 05135 uint8_t interrupt_manager__clear; 05136 05137 uint8_t interrupt_manager__status; 05138 05139 uint8_t mcu_to_host_bank__wr_access_en; 05140 05141 uint8_t power_management__go1_reset_status; 05142 05143 uint8_t pad_startup_mode__value_ro; 05144 05145 uint8_t pad_startup_mode__value_ctrl; 05146 05147 uint32_t pll_period_us; 05148 05149 uint32_t interrupt_scheduler__data_out; 05150 05151 uint8_t nvm_bist__complete; 05152 05153 uint8_t nvm_bist__status; 05154 05155 } VL53LX_debug_results_t; 05156 05157 05158 05159 05160 typedef struct { 05161 uint8_t identification__model_id; 05162 05163 uint8_t identification__module_type; 05164 05165 uint8_t identification__revision_id; 05166 05167 uint16_t identification__module_id; 05168 05169 uint8_t ana_config__fast_osc__trim_max; 05170 05171 uint8_t ana_config__fast_osc__freq_set; 05172 05173 uint8_t ana_config__vcsel_trim; 05174 05175 uint8_t ana_config__vcsel_selion; 05176 05177 uint8_t ana_config__vcsel_selion_max; 05178 05179 uint8_t protected_laser_safety__lock_bit; 05180 05181 uint8_t laser_safety__key; 05182 05183 uint8_t laser_safety__key_ro; 05184 05185 uint8_t laser_safety__clip; 05186 05187 uint8_t laser_safety__mult; 05188 05189 uint8_t global_config__spad_enables_rtn_0; 05190 05191 uint8_t global_config__spad_enables_rtn_1; 05192 05193 uint8_t global_config__spad_enables_rtn_2; 05194 05195 uint8_t global_config__spad_enables_rtn_3; 05196 05197 uint8_t global_config__spad_enables_rtn_4; 05198 05199 uint8_t global_config__spad_enables_rtn_5; 05200 05201 uint8_t global_config__spad_enables_rtn_6; 05202 05203 uint8_t global_config__spad_enables_rtn_7; 05204 05205 uint8_t global_config__spad_enables_rtn_8; 05206 05207 uint8_t global_config__spad_enables_rtn_9; 05208 05209 uint8_t global_config__spad_enables_rtn_10; 05210 05211 uint8_t global_config__spad_enables_rtn_11; 05212 05213 uint8_t global_config__spad_enables_rtn_12; 05214 05215 uint8_t global_config__spad_enables_rtn_13; 05216 05217 uint8_t global_config__spad_enables_rtn_14; 05218 05219 uint8_t global_config__spad_enables_rtn_15; 05220 05221 uint8_t global_config__spad_enables_rtn_16; 05222 05223 uint8_t global_config__spad_enables_rtn_17; 05224 05225 uint8_t global_config__spad_enables_rtn_18; 05226 05227 uint8_t global_config__spad_enables_rtn_19; 05228 05229 uint8_t global_config__spad_enables_rtn_20; 05230 05231 uint8_t global_config__spad_enables_rtn_21; 05232 05233 uint8_t global_config__spad_enables_rtn_22; 05234 05235 uint8_t global_config__spad_enables_rtn_23; 05236 05237 uint8_t global_config__spad_enables_rtn_24; 05238 05239 uint8_t global_config__spad_enables_rtn_25; 05240 05241 uint8_t global_config__spad_enables_rtn_26; 05242 05243 uint8_t global_config__spad_enables_rtn_27; 05244 05245 uint8_t global_config__spad_enables_rtn_28; 05246 05247 uint8_t global_config__spad_enables_rtn_29; 05248 05249 uint8_t global_config__spad_enables_rtn_30; 05250 05251 uint8_t global_config__spad_enables_rtn_31; 05252 05253 uint8_t roi_config__mode_roi_centre_spad; 05254 05255 uint8_t roi_config__mode_roi_xy_size; 05256 05257 } VL53LX_nvm_copy_data_t; 05258 05259 05260 05261 05262 typedef struct { 05263 uint8_t prev_shadow_result__interrupt_status; 05264 05265 uint8_t prev_shadow_result__range_status; 05266 05267 uint8_t prev_shadow_result__report_status; 05268 05269 uint8_t prev_shadow_result__stream_count; 05270 05271 uint16_t prev_shadow_result__dss_actual_effective_spads_sd0; 05272 05273 uint16_t prev_shadow_result__peak_signal_count_rate_mcps_sd0; 05274 05275 uint16_t prev_shadow_result__ambient_count_rate_mcps_sd0; 05276 05277 uint16_t prev_shadow_result__sigma_sd0; 05278 05279 uint16_t prev_shadow_result__phase_sd0; 05280 05281 uint16_t prev_shadow_result__final_crosstalk_corrected_range_mm_sd0; 05282 05283 uint16_t 05284 psr__peak_signal_count_rate_crosstalk_corrected_mcps_sd0; 05285 05286 uint16_t prev_shadow_result__mm_inner_actual_effective_spads_sd0; 05287 05288 uint16_t prev_shadow_result__mm_outer_actual_effective_spads_sd0; 05289 05290 uint16_t prev_shadow_result__avg_signal_count_rate_mcps_sd0; 05291 05292 uint16_t prev_shadow_result__dss_actual_effective_spads_sd1; 05293 05294 uint16_t prev_shadow_result__peak_signal_count_rate_mcps_sd1; 05295 05296 uint16_t prev_shadow_result__ambient_count_rate_mcps_sd1; 05297 05298 uint16_t prev_shadow_result__sigma_sd1; 05299 05300 uint16_t prev_shadow_result__phase_sd1; 05301 05302 uint16_t prev_shadow_result__final_crosstalk_corrected_range_mm_sd1; 05303 05304 uint16_t prev_shadow_result__spare_0_sd1; 05305 05306 uint16_t prev_shadow_result__spare_1_sd1; 05307 05308 uint16_t prev_shadow_result__spare_2_sd1; 05309 05310 uint16_t prev_shadow_result__spare_3_sd1; 05311 05312 } VL53LX_prev_shadow_system_results_t; 05313 05314 05315 05316 05317 typedef struct { 05318 uint32_t prev_shadow_result_core__ambient_window_events_sd0; 05319 05320 uint32_t prev_shadow_result_core__ranging_total_events_sd0; 05321 05322 int32_t prev_shadow_result_core__signal_total_events_sd0; 05323 05324 uint32_t prev_shadow_result_core__total_periods_elapsed_sd0; 05325 05326 uint32_t prev_shadow_result_core__ambient_window_events_sd1; 05327 05328 uint32_t prev_shadow_result_core__ranging_total_events_sd1; 05329 05330 int32_t prev_shadow_result_core__signal_total_events_sd1; 05331 05332 uint32_t prev_shadow_result_core__total_periods_elapsed_sd1; 05333 05334 uint8_t prev_shadow_result_core__spare_0; 05335 05336 } VL53LX_prev_shadow_core_results_t; 05337 05338 05339 05340 05341 typedef struct { 05342 uint8_t result__debug_status; 05343 05344 uint8_t result__debug_stage; 05345 05346 } VL53LX_patch_debug_t; 05347 05348 05349 05350 05351 typedef struct { 05352 uint16_t gph__system__thresh_rate_high; 05353 05354 uint16_t gph__system__thresh_rate_low; 05355 05356 uint8_t gph__system__interrupt_config_gpio; 05357 05358 } VL53LX_gph_general_config_t; 05359 05360 05361 05362 05363 typedef struct { 05364 uint8_t gph__dss_config__roi_mode_control; 05365 05366 uint16_t gph__dss_config__manual_effective_spads_select; 05367 05368 uint8_t gph__dss_config__manual_block_select; 05369 05370 uint8_t gph__dss_config__max_spads_limit; 05371 05372 uint8_t gph__dss_config__min_spads_limit; 05373 05374 } VL53LX_gph_static_config_t; 05375 05376 05377 05378 05379 typedef struct { 05380 uint8_t gph__mm_config__timeout_macrop_a_hi; 05381 05382 uint8_t gph__mm_config__timeout_macrop_a_lo; 05383 05384 uint8_t gph__mm_config__timeout_macrop_b_hi; 05385 05386 uint8_t gph__mm_config__timeout_macrop_b_lo; 05387 05388 uint8_t gph__range_config__timeout_macrop_a_hi; 05389 05390 uint8_t gph__range_config__timeout_macrop_a_lo; 05391 05392 uint8_t gph__range_config__vcsel_period_a; 05393 05394 uint8_t gph__range_config__vcsel_period_b; 05395 05396 uint8_t gph__range_config__timeout_macrop_b_hi; 05397 05398 uint8_t gph__range_config__timeout_macrop_b_lo; 05399 05400 uint16_t gph__range_config__sigma_thresh; 05401 05402 uint16_t gph__range_config__min_count_rate_rtn_limit_mcps; 05403 05404 uint8_t gph__range_config__valid_phase_low; 05405 05406 uint8_t gph__range_config__valid_phase_high; 05407 05408 } VL53LX_gph_timing_config_t; 05409 05410 05411 05412 05413 typedef struct { 05414 uint8_t firmware__internal_stream_count_div; 05415 05416 uint8_t firmware__internal_stream_counter_val; 05417 05418 } VL53LX_fw_internal_t; 05419 05420 05421 05422 05423 typedef struct { 05424 uint8_t dss_calc__roi_ctrl; 05425 05426 uint8_t dss_calc__spare_1; 05427 05428 uint8_t dss_calc__spare_2; 05429 05430 uint8_t dss_calc__spare_3; 05431 05432 uint8_t dss_calc__spare_4; 05433 05434 uint8_t dss_calc__spare_5; 05435 05436 uint8_t dss_calc__spare_6; 05437 05438 uint8_t dss_calc__spare_7; 05439 05440 uint8_t dss_calc__user_roi_spad_en_0; 05441 05442 uint8_t dss_calc__user_roi_spad_en_1; 05443 05444 uint8_t dss_calc__user_roi_spad_en_2; 05445 05446 uint8_t dss_calc__user_roi_spad_en_3; 05447 05448 uint8_t dss_calc__user_roi_spad_en_4; 05449 05450 uint8_t dss_calc__user_roi_spad_en_5; 05451 05452 uint8_t dss_calc__user_roi_spad_en_6; 05453 05454 uint8_t dss_calc__user_roi_spad_en_7; 05455 05456 uint8_t dss_calc__user_roi_spad_en_8; 05457 05458 uint8_t dss_calc__user_roi_spad_en_9; 05459 05460 uint8_t dss_calc__user_roi_spad_en_10; 05461 05462 uint8_t dss_calc__user_roi_spad_en_11; 05463 05464 uint8_t dss_calc__user_roi_spad_en_12; 05465 05466 uint8_t dss_calc__user_roi_spad_en_13; 05467 05468 uint8_t dss_calc__user_roi_spad_en_14; 05469 05470 uint8_t dss_calc__user_roi_spad_en_15; 05471 05472 uint8_t dss_calc__user_roi_spad_en_16; 05473 05474 uint8_t dss_calc__user_roi_spad_en_17; 05475 05476 uint8_t dss_calc__user_roi_spad_en_18; 05477 05478 uint8_t dss_calc__user_roi_spad_en_19; 05479 05480 uint8_t dss_calc__user_roi_spad_en_20; 05481 05482 uint8_t dss_calc__user_roi_spad_en_21; 05483 05484 uint8_t dss_calc__user_roi_spad_en_22; 05485 05486 uint8_t dss_calc__user_roi_spad_en_23; 05487 05488 uint8_t dss_calc__user_roi_spad_en_24; 05489 05490 uint8_t dss_calc__user_roi_spad_en_25; 05491 05492 uint8_t dss_calc__user_roi_spad_en_26; 05493 05494 uint8_t dss_calc__user_roi_spad_en_27; 05495 05496 uint8_t dss_calc__user_roi_spad_en_28; 05497 05498 uint8_t dss_calc__user_roi_spad_en_29; 05499 05500 uint8_t dss_calc__user_roi_spad_en_30; 05501 05502 uint8_t dss_calc__user_roi_spad_en_31; 05503 05504 uint8_t dss_calc__user_roi_0; 05505 05506 uint8_t dss_calc__user_roi_1; 05507 05508 uint8_t dss_calc__mode_roi_0; 05509 05510 uint8_t dss_calc__mode_roi_1; 05511 05512 uint8_t sigma_estimator_calc__spare_0; 05513 05514 uint16_t vhv_result__peak_signal_rate_mcps; 05515 05516 uint32_t vhv_result__signal_total_events_ref; 05517 05518 uint16_t phasecal_result__phase_output_ref; 05519 05520 uint16_t dss_result__total_rate_per_spad; 05521 05522 uint8_t dss_result__enabled_blocks; 05523 05524 uint16_t dss_result__num_requested_spads; 05525 05526 uint16_t mm_result__inner_intersection_rate; 05527 05528 uint16_t mm_result__outer_complement_rate; 05529 05530 uint16_t mm_result__total_offset; 05531 05532 uint32_t xtalk_calc__xtalk_for_enabled_spads; 05533 05534 uint32_t xtalk_result__avg_xtalk_user_roi_kcps; 05535 05536 uint32_t xtalk_result__avg_xtalk_mm_inner_roi_kcps; 05537 05538 uint32_t xtalk_result__avg_xtalk_mm_outer_roi_kcps; 05539 05540 uint32_t range_result__accum_phase; 05541 05542 uint16_t range_result__offset_corrected_range; 05543 05544 } VL53LX_patch_results_t; 05545 05546 05547 05548 05549 typedef struct { 05550 uint8_t shadow_phasecal_result__vcsel_start; 05551 05552 uint8_t shadow_result__interrupt_status; 05553 05554 uint8_t shadow_result__range_status; 05555 05556 uint8_t shadow_result__report_status; 05557 05558 uint8_t shadow_result__stream_count; 05559 05560 uint16_t shadow_result__dss_actual_effective_spads_sd0; 05561 05562 uint16_t shadow_result__peak_signal_count_rate_mcps_sd0; 05563 05564 uint16_t shadow_result__ambient_count_rate_mcps_sd0; 05565 05566 uint16_t shadow_result__sigma_sd0; 05567 05568 uint16_t shadow_result__phase_sd0; 05569 05570 uint16_t shadow_result__final_crosstalk_corrected_range_mm_sd0; 05571 05572 uint16_t 05573 shr__peak_signal_count_rate_crosstalk_corrected_mcps_sd0; 05574 05575 uint16_t shadow_result__mm_inner_actual_effective_spads_sd0; 05576 05577 uint16_t shadow_result__mm_outer_actual_effective_spads_sd0; 05578 05579 uint16_t shadow_result__avg_signal_count_rate_mcps_sd0; 05580 05581 uint16_t shadow_result__dss_actual_effective_spads_sd1; 05582 05583 uint16_t shadow_result__peak_signal_count_rate_mcps_sd1; 05584 05585 uint16_t shadow_result__ambient_count_rate_mcps_sd1; 05586 05587 uint16_t shadow_result__sigma_sd1; 05588 05589 uint16_t shadow_result__phase_sd1; 05590 05591 uint16_t shadow_result__final_crosstalk_corrected_range_mm_sd1; 05592 05593 uint16_t shadow_result__spare_0_sd1; 05594 05595 uint16_t shadow_result__spare_1_sd1; 05596 05597 uint16_t shadow_result__spare_2_sd1; 05598 05599 uint8_t shadow_result__spare_3_sd1; 05600 05601 uint8_t shadow_result__thresh_info; 05602 05603 uint8_t shadow_phasecal_result__reference_phase_hi; 05604 05605 uint8_t shadow_phasecal_result__reference_phase_lo; 05606 05607 } VL53LX_shadow_system_results_t; 05608 05609 05610 05611 05612 typedef struct { 05613 uint32_t shadow_result_core__ambient_window_events_sd0; 05614 05615 uint32_t shadow_result_core__ranging_total_events_sd0; 05616 05617 int32_t shadow_result_core__signal_total_events_sd0; 05618 05619 uint32_t shadow_result_core__total_periods_elapsed_sd0; 05620 05621 uint32_t shadow_result_core__ambient_window_events_sd1; 05622 05623 uint32_t shadow_result_core__ranging_total_events_sd1; 05624 05625 int32_t shadow_result_core__signal_total_events_sd1; 05626 05627 uint32_t shadow_result_core__total_periods_elapsed_sd1; 05628 05629 uint8_t shadow_result_core__spare_0; 05630 05631 } VL53LX_shadow_core_results_t; 05632 05633 05634 // typedef from vl53lx_dmax_structs.h 05635 05636 #define VL53LX_MAX_AMBIENT_DMAX_VALUES 5 05637 05638 typedef struct { 05639 uint16_t ref__actual_effective_spads; 05640 uint16_t ref__peak_signal_count_rate_mcps; 05641 uint16_t ref__distance_mm; 05642 uint16_t ref_reflectance_pc; 05643 uint16_t coverglass_transmission; 05644 05645 } VL53LX_dmax_calibration_data_t; 05646 05647 05648 05649 05650 typedef struct { 05651 uint8_t signal_thresh_sigma; 05652 uint8_t ambient_thresh_sigma; 05653 int32_t min_ambient_thresh_events; 05654 int32_t signal_total_events_limit; 05655 uint16_t target_reflectance_for_dmax_calc[VL53LX_MAX_AMBIENT_DMAX_VALUES]; 05656 uint16_t max_effective_spads; 05657 uint16_t dss_config__target_total_rate_mcps; 05658 uint8_t dss_config__aperture_attenuation; 05659 } VL53LX_hist_gen3_dmax_config_t; 05660 05661 05662 05663 // define & typedef from vl53lx_hist_structs.h 05664 05665 #define VL53LX_MAX_BIN_SEQUENCE_LENGTH 6 05666 #define VL53LX_MAX_BIN_SEQUENCE_CODE 15 05667 #define VL53LX_HISTOGRAM_BUFFER_SIZE 24 05668 #define VL53LX_XTALK_HISTO_BINS 12 05669 05670 05671 05672 typedef struct { 05673 05674 uint8_t histogram_config__spad_array_selection; 05675 05676 uint8_t histogram_config__low_amb_even_bin_0_1; 05677 uint8_t histogram_config__low_amb_even_bin_2_3; 05678 uint8_t histogram_config__low_amb_even_bin_4_5; 05679 05680 uint8_t histogram_config__low_amb_odd_bin_0_1; 05681 uint8_t histogram_config__low_amb_odd_bin_2_3; 05682 uint8_t histogram_config__low_amb_odd_bin_4_5; 05683 05684 uint8_t histogram_config__mid_amb_even_bin_0_1; 05685 uint8_t histogram_config__mid_amb_even_bin_2_3; 05686 uint8_t histogram_config__mid_amb_even_bin_4_5; 05687 05688 uint8_t histogram_config__mid_amb_odd_bin_0_1; 05689 uint8_t histogram_config__mid_amb_odd_bin_2; 05690 uint8_t histogram_config__mid_amb_odd_bin_3_4; 05691 uint8_t histogram_config__mid_amb_odd_bin_5; 05692 05693 uint8_t histogram_config__user_bin_offset; 05694 05695 uint8_t histogram_config__high_amb_even_bin_0_1; 05696 uint8_t histogram_config__high_amb_even_bin_2_3; 05697 uint8_t histogram_config__high_amb_even_bin_4_5; 05698 05699 uint8_t histogram_config__high_amb_odd_bin_0_1; 05700 uint8_t histogram_config__high_amb_odd_bin_2_3; 05701 uint8_t histogram_config__high_amb_odd_bin_4_5; 05702 05703 uint16_t histogram_config__amb_thresh_low; 05704 05705 uint16_t histogram_config__amb_thresh_high; 05706 05707 05708 } VL53LX_histogram_config_t; 05709 05710 05711 05712 05713 typedef struct { 05714 05715 VL53LX_HistAlgoSelect hist_algo_select; 05716 05717 05718 VL53LX_HistTargetOrder hist_target_order; 05719 05720 05721 uint8_t filter_woi0; 05722 05723 uint8_t filter_woi1; 05724 05725 05726 VL53LX_HistAmbEstMethod hist_amb_est_method; 05727 05728 uint8_t ambient_thresh_sigma0; 05729 05730 uint8_t ambient_thresh_sigma1; 05731 05732 05733 05734 uint16_t ambient_thresh_events_scaler; 05735 05736 05737 05738 int32_t min_ambient_thresh_events; 05739 05740 uint16_t noise_threshold; 05741 05742 05743 int32_t signal_total_events_limit; 05744 05745 uint8_t sigma_estimator__sigma_ref_mm; 05746 05747 uint16_t sigma_thresh; 05748 05749 int16_t range_offset_mm; 05750 05751 uint16_t gain_factor; 05752 05753 05754 uint8_t valid_phase_low; 05755 05756 uint8_t valid_phase_high; 05757 05758 uint8_t algo__consistency_check__phase_tolerance; 05759 05760 uint8_t algo__consistency_check__event_sigma; 05761 05762 05763 05764 uint16_t algo__consistency_check__event_min_spad_count; 05765 05766 05767 05768 uint16_t algo__consistency_check__min_max_tolerance; 05769 05770 05771 uint8_t algo__crosstalk_compensation_enable; 05772 05773 uint32_t algo__crosstalk_compensation_plane_offset_kcps; 05774 05775 int16_t algo__crosstalk_compensation_x_plane_gradient_kcps; 05776 05777 int16_t algo__crosstalk_compensation_y_plane_gradient_kcps; 05778 05779 05780 int16_t algo__crosstalk_detect_min_valid_range_mm; 05781 05782 int16_t algo__crosstalk_detect_max_valid_range_mm; 05783 05784 uint16_t algo__crosstalk_detect_max_valid_rate_kcps; 05785 05786 uint16_t algo__crosstalk_detect_max_sigma_mm; 05787 05788 05789 05790 uint8_t algo__crosstalk_detect_event_sigma; 05791 05792 05793 05794 uint16_t algo__crosstalk_detect_min_max_tolerance; 05795 05796 05797 } VL53LX_hist_post_process_config_t; 05798 05799 05800 05801 typedef struct { 05802 05803 05804 VL53LX_DeviceState cfg_device_state; 05805 05806 VL53LX_DeviceState rd_device_state; 05807 05808 05809 uint8_t zone_id; 05810 05811 uint32_t time_stamp; 05812 05813 05814 uint8_t VL53LX_p_019; 05815 05816 uint8_t VL53LX_p_020; 05817 05818 uint8_t VL53LX_p_021; 05819 05820 uint8_t number_of_ambient_bins; 05821 05822 uint8_t bin_seq[VL53LX_MAX_BIN_SEQUENCE_LENGTH]; 05823 05824 uint8_t bin_rep[VL53LX_MAX_BIN_SEQUENCE_LENGTH]; 05825 05826 int32_t bin_data[VL53LX_HISTOGRAM_BUFFER_SIZE]; 05827 05828 05829 uint8_t result__interrupt_status; 05830 05831 uint8_t result__range_status; 05832 05833 uint8_t result__report_status; 05834 05835 uint8_t result__stream_count; 05836 05837 uint16_t result__dss_actual_effective_spads; 05838 05839 05840 uint16_t phasecal_result__reference_phase; 05841 05842 uint8_t phasecal_result__vcsel_start; 05843 05844 uint8_t cal_config__vcsel_start; 05845 05846 uint16_t vcsel_width; 05847 05848 uint8_t VL53LX_p_005; 05849 05850 uint16_t VL53LX_p_015; 05851 05852 uint32_t total_periods_elapsed; 05853 05854 05855 uint32_t peak_duration_us; 05856 05857 uint32_t woi_duration_us; 05858 05859 05860 int32_t min_bin_value; 05861 05862 int32_t max_bin_value; 05863 05864 05865 uint16_t zero_distance_phase; 05866 05867 uint8_t number_of_ambient_samples; 05868 05869 int32_t ambient_events_sum; 05870 05871 int32_t VL53LX_p_028; 05872 05873 05874 uint8_t roi_config__user_roi_centre_spad; 05875 05876 uint8_t roi_config__user_roi_requested_global_xy_size; 05877 05878 05879 } VL53LX_histogram_bin_data_t; 05880 05881 05882 05883 05884 typedef struct { 05885 05886 05887 uint8_t zone_id; 05888 05889 uint32_t time_stamp; 05890 05891 05892 uint8_t VL53LX_p_019; 05893 05894 uint8_t VL53LX_p_020; 05895 05896 uint8_t VL53LX_p_021; 05897 05898 uint32_t bin_data[VL53LX_XTALK_HISTO_BINS]; 05899 05900 05901 05902 uint16_t phasecal_result__reference_phase; 05903 05904 uint8_t phasecal_result__vcsel_start; 05905 05906 uint8_t cal_config__vcsel_start; 05907 05908 uint16_t vcsel_width; 05909 05910 uint16_t VL53LX_p_015; 05911 05912 uint16_t zero_distance_phase; 05913 05914 05915 } VL53LX_xtalk_histogram_shape_t; 05916 05917 05918 05919 05920 typedef struct { 05921 05922 05923 VL53LX_xtalk_histogram_shape_t xtalk_shape; 05924 05925 VL53LX_histogram_bin_data_t xtalk_hist_removed; 05926 05927 } VL53LX_xtalk_histogram_data_t; 05928 05929 05930 /* vl53lx_hist_private_structs.h */ 05931 05932 #define VL53LX_D_001 8 05933 05934 05935 05936 05937 05938 typedef struct { 05939 05940 uint8_t VL53LX_p_019; 05941 05942 05943 uint8_t VL53LX_p_020; 05944 05945 05946 uint8_t VL53LX_p_021; 05947 05948 05949 uint8_t VL53LX_p_029; 05950 05951 05952 int32_t VL53LX_p_016; 05953 05954 05955 05956 int32_t VL53LX_p_043[VL53LX_HISTOGRAM_BUFFER_SIZE]; 05957 05958 int32_t VL53LX_p_068[VL53LX_HISTOGRAM_BUFFER_SIZE]; 05959 05960 05961 uint8_t VL53LX_p_040[VL53LX_HISTOGRAM_BUFFER_SIZE]; 05962 05963 05964 int32_t VL53LX_p_018[VL53LX_HISTOGRAM_BUFFER_SIZE]; 05965 05966 uint16_t VL53LX_p_014[VL53LX_HISTOGRAM_BUFFER_SIZE]; 05967 05968 uint16_t VL53LX_p_008[VL53LX_HISTOGRAM_BUFFER_SIZE]; 05969 05970 05971 } VL53LX_hist_gen1_algo_private_data_t; 05972 05973 05974 05975 05976 05977 05978 05979 05980 05981 05982 typedef struct { 05983 05984 uint8_t VL53LX_p_019; 05985 05986 05987 uint8_t VL53LX_p_020; 05988 05989 05990 uint8_t VL53LX_p_021; 05991 05992 05993 uint16_t VL53LX_p_015; 05994 05995 05996 uint8_t VL53LX_p_005; 05997 05998 05999 uint8_t VL53LX_p_029; 06000 06001 06002 int32_t VL53LX_p_028; 06003 06004 06005 int32_t VL53LX_p_016; 06006 06007 06008 06009 int32_t VL53LX_p_007[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06010 06011 06012 int32_t VL53LX_p_032[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06013 06014 06015 int32_t VL53LX_p_001[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06016 06017 06018 06019 int32_t VL53LX_p_018[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06020 06021 06022 int32_t VL53LX_p_055[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06023 06024 06025 int32_t VL53LX_p_053[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06026 06027 06028 int32_t VL53LX_p_054[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06029 06030 06031 06032 } VL53LX_hist_gen2_algo_filtered_data_t; 06033 06034 06035 06036 06037 06038 06039 06040 06041 06042 06043 typedef struct { 06044 06045 uint8_t VL53LX_p_019; 06046 06047 06048 uint8_t VL53LX_p_020; 06049 06050 06051 uint8_t VL53LX_p_021; 06052 06053 06054 int32_t VL53LX_p_031; 06055 06056 06057 06058 uint8_t VL53LX_p_069[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06059 06060 06061 uint8_t VL53LX_p_070[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06062 06063 06064 06065 uint32_t VL53LX_p_014[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06066 06067 06068 uint16_t VL53LX_p_008[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06069 06070 06071 06072 uint8_t VL53LX_p_040[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06073 06074 06075 06076 } VL53LX_hist_gen2_algo_detection_data_t; 06077 06078 06079 06080 06081 06082 06083 06084 06085 06086 06087 typedef struct { 06088 06089 uint8_t VL53LX_p_012; 06090 06091 06092 uint8_t VL53LX_p_019; 06093 06094 06095 uint8_t VL53LX_p_023; 06096 06097 06098 uint8_t VL53LX_p_024; 06099 06100 06101 uint8_t VL53LX_p_013; 06102 06103 06104 06105 uint8_t VL53LX_p_025; 06106 06107 06108 uint8_t VL53LX_p_051; 06109 06110 06111 06112 int32_t VL53LX_p_016; 06113 06114 06115 int32_t VL53LX_p_017; 06116 06117 06118 int32_t VL53LX_p_010; 06119 06120 06121 06122 uint32_t VL53LX_p_026; 06123 06124 06125 uint32_t VL53LX_p_011; 06126 06127 06128 uint32_t VL53LX_p_027; 06129 06130 06131 06132 uint16_t VL53LX_p_002; 06133 06134 06135 06136 } VL53LX_hist_pulse_data_t; 06137 06138 06139 06140 06141 06142 06143 06144 06145 06146 06147 typedef struct { 06148 06149 uint8_t VL53LX_p_019; 06150 06151 06152 uint8_t VL53LX_p_020; 06153 06154 06155 uint8_t VL53LX_p_021; 06156 06157 06158 uint8_t VL53LX_p_030; 06159 06160 06161 uint8_t VL53LX_p_039; 06162 06163 06164 int32_t VL53LX_p_028; 06165 06166 06167 int32_t VL53LX_p_031; 06168 06169 06170 06171 uint8_t VL53LX_p_040[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06172 06173 06174 uint8_t VL53LX_p_041[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06175 06176 06177 uint8_t VL53LX_p_042[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06178 06179 06180 06181 int32_t VL53LX_p_052[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06182 06183 06184 int32_t VL53LX_p_043[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06185 06186 06187 int32_t VL53LX_p_018[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06188 06189 06190 06191 uint8_t VL53LX_p_044; 06192 06193 06194 uint8_t VL53LX_p_045; 06195 06196 06197 uint8_t VL53LX_p_046; 06198 06199 06200 06201 VL53LX_hist_pulse_data_t VL53LX_p_003[VL53LX_D_001]; 06202 06203 06204 06205 06206 06207 06208 VL53LX_histogram_bin_data_t VL53LX_p_006; 06209 06210 06211 VL53LX_histogram_bin_data_t VL53LX_p_047; 06212 06213 06214 VL53LX_histogram_bin_data_t VL53LX_p_048; 06215 06216 06217 VL53LX_histogram_bin_data_t VL53LX_p_049; 06218 06219 06220 VL53LX_histogram_bin_data_t VL53LX_p_050; 06221 06222 06223 06224 06225 06226 06227 } VL53LX_hist_gen3_algo_private_data_t; 06228 06229 06230 06231 06232 06233 06234 06235 06236 06237 06238 typedef struct { 06239 06240 uint8_t VL53LX_p_019; 06241 06242 06243 uint8_t VL53LX_p_020; 06244 06245 06246 uint8_t VL53LX_p_021; 06247 06248 06249 06250 int32_t VL53LX_p_007[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06251 06252 06253 int32_t VL53LX_p_032[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06254 06255 06256 int32_t VL53LX_p_001[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06257 06258 06259 06260 int32_t VL53LX_p_053[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06261 06262 06263 int32_t VL53LX_p_054[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06264 06265 06266 06267 uint8_t VL53LX_p_040[VL53LX_HISTOGRAM_BUFFER_SIZE]; 06268 06269 06270 06271 } VL53LX_hist_gen4_algo_filtered_data_t; 06272 06273 06274 06275 // define & typedef from VL53Lx_ll_def.h 06276 06277 06278 06279 06280 #define VL53LX_LL_API_IMPLEMENTATION_VER_MAJOR 1 06281 06282 #define VL53LX_LL_API_IMPLEMENTATION_VER_MINOR 1 06283 06284 #define VL53LX_LL_API_IMPLEMENTATION_VER_SUB 1 06285 06286 #define VL53LX_LL_API_IMPLEMENTATION_VER_REVISION 0 06287 06288 #define VL53LX_LL_API_IMPLEMENTATION_VER_STRING "1.1.1" 06289 06290 06291 #define VL53LX_FIRMWARE_VER_MINIMUM 398 06292 #define VL53LX_FIRMWARE_VER_MAXIMUM 400 06293 06294 06295 06296 06297 #define VL53LX_LL_CALIBRATION_DATA_STRUCT_VERSION 0xECAB0102 06298 06299 06300 06301 06302 #define VL53LX_LL_ZONE_CALIBRATION_DATA_STRUCT_VERSION 0xECAE0101 06303 06304 06305 06306 06307 06308 #define VL53LX_BIN_REC_SIZE 6 06309 06310 #define VL53LX_TIMING_CONF_A_B_SIZE 2 06311 06312 #define VL53LX_FRAME_WAIT_EVENT 6 06313 06314 06315 06316 06317 #define VL53LX_MAX_XTALK_RANGE_RESULTS 5 06318 06319 06320 #define VL53LX_MAX_OFFSET_RANGE_RESULTS 3 06321 06322 06323 #define VL53LX_NVM_MAX_FMT_RANGE_DATA 4 06324 06325 06326 #define VL53LX_NVM_PEAK_RATE_MAP_SAMPLES 25 06327 06328 #define VL53LX_NVM_PEAK_RATE_MAP_WIDTH 5 06329 06330 #define VL53LX_NVM_PEAK_RATE_MAP_HEIGHT 5 06331 06332 06333 06334 06335 #define VL53LX_ERROR_DEVICE_FIRMWARE_TOO_OLD ((VL53LX_Error) - 80) 06336 06337 #define VL53LX_ERROR_DEVICE_FIRMWARE_TOO_NEW ((VL53LX_Error) - 85) 06338 06339 #define VL53LX_ERROR_UNIT_TEST_FAIL ((VL53LX_Error) - 90) 06340 06341 #define VL53LX_ERROR_FILE_READ_FAIL ((VL53LX_Error) - 95) 06342 06343 #define VL53LX_ERROR_FILE_WRITE_FAIL ((VL53LX_Error) - 96) 06344 06345 06346 06347 06348 06349 06350 typedef struct { 06351 uint32_t ll_revision; 06352 uint8_t ll_major; 06353 uint8_t ll_minor; 06354 uint8_t ll_build; 06355 } VL53LX_ll_version_t; 06356 06357 06358 06359 06360 typedef struct { 06361 06362 uint8_t device_test_mode; 06363 uint8_t VL53LX_p_005; 06364 uint32_t timeout_us; 06365 uint16_t target_count_rate_mcps; 06366 06367 uint16_t min_count_rate_limit_mcps; 06368 06369 uint16_t max_count_rate_limit_mcps; 06370 06371 06372 } VL53LX_refspadchar_config_t; 06373 06374 06375 06376 06377 typedef struct { 06378 06379 uint16_t dss_config__target_total_rate_mcps; 06380 06381 uint32_t phasecal_config_timeout_us; 06382 06383 uint32_t mm_config_timeout_us; 06384 06385 uint32_t range_config_timeout_us; 06386 06387 uint8_t num_of_samples; 06388 06389 int16_t algo__crosstalk_extract_min_valid_range_mm; 06390 06391 int16_t algo__crosstalk_extract_max_valid_range_mm; 06392 06393 uint16_t algo__crosstalk_extract_max_valid_rate_kcps; 06394 06395 uint16_t algo__crosstalk_extract_max_sigma_mm; 06396 06397 06398 } VL53LX_xtalkextract_config_t; 06399 06400 06401 06402 06403 typedef struct { 06404 06405 uint16_t dss_config__target_total_rate_mcps; 06406 06407 uint32_t phasecal_config_timeout_us; 06408 06409 uint32_t range_config_timeout_us; 06410 06411 uint32_t mm_config_timeout_us; 06412 06413 uint8_t pre_num_of_samples; 06414 06415 uint8_t mm1_num_of_samples; 06416 06417 uint8_t mm2_num_of_samples; 06418 06419 06420 } VL53LX_offsetcal_config_t; 06421 06422 06423 06424 06425 typedef struct { 06426 06427 uint16_t dss_config__target_total_rate_mcps; 06428 06429 uint32_t phasecal_config_timeout_us; 06430 06431 uint32_t mm_config_timeout_us; 06432 06433 uint32_t range_config_timeout_us; 06434 06435 uint16_t phasecal_num_of_samples; 06436 06437 uint16_t zone_num_of_samples; 06438 06439 06440 } VL53LX_zonecal_config_t; 06441 06442 06443 06444 06445 06446 typedef struct { 06447 06448 VL53LX_DeviceSscArray array_select; 06449 06450 uint8_t VL53LX_p_005; 06451 06452 uint8_t vcsel_start; 06453 06454 uint8_t vcsel_width; 06455 06456 uint32_t timeout_us; 06457 06458 uint16_t rate_limit_mcps; 06459 06460 06461 } VL53LX_ssc_config_t; 06462 06463 06464 06465 06466 typedef struct { 06467 06468 06469 uint32_t algo__crosstalk_compensation_plane_offset_kcps; 06470 06471 int16_t algo__crosstalk_compensation_x_plane_gradient_kcps; 06472 06473 int16_t algo__crosstalk_compensation_y_plane_gradient_kcps; 06474 06475 uint32_t nvm_default__crosstalk_compensation_plane_offset_kcps; 06476 06477 int16_t nvm_default__crosstalk_compensation_x_plane_gradient_kcps; 06478 06479 int16_t nvm_default__crosstalk_compensation_y_plane_gradient_kcps; 06480 06481 uint8_t global_crosstalk_compensation_enable; 06482 06483 int16_t histogram_mode_crosstalk_margin_kcps; 06484 06485 int16_t lite_mode_crosstalk_margin_kcps; 06486 06487 uint8_t crosstalk_range_ignore_threshold_mult; 06488 06489 uint16_t crosstalk_range_ignore_threshold_rate_mcps; 06490 06491 int16_t algo__crosstalk_detect_min_valid_range_mm; 06492 06493 int16_t algo__crosstalk_detect_max_valid_range_mm; 06494 06495 uint16_t algo__crosstalk_detect_max_valid_rate_kcps; 06496 06497 uint16_t algo__crosstalk_detect_max_sigma_mm; 06498 06499 06500 06501 } VL53LX_xtalk_config_t; 06502 06503 06504 06505 06506 typedef struct { 06507 06508 06509 uint16_t tp_tuning_parm_version; 06510 06511 uint16_t tp_tuning_parm_key_table_version; 06512 06513 uint16_t tp_tuning_parm_lld_version; 06514 06515 uint8_t tp_init_phase_rtn_lite_long; 06516 06517 uint8_t tp_init_phase_rtn_lite_med; 06518 06519 uint8_t tp_init_phase_rtn_lite_short; 06520 06521 uint8_t tp_init_phase_ref_lite_long; 06522 06523 uint8_t tp_init_phase_ref_lite_med; 06524 06525 uint8_t tp_init_phase_ref_lite_short; 06526 06527 06528 uint8_t tp_init_phase_rtn_hist_long; 06529 06530 uint8_t tp_init_phase_rtn_hist_med; 06531 06532 uint8_t tp_init_phase_rtn_hist_short; 06533 06534 uint8_t tp_init_phase_ref_hist_long; 06535 06536 uint8_t tp_init_phase_ref_hist_med; 06537 06538 uint8_t tp_init_phase_ref_hist_short; 06539 06540 06541 uint8_t tp_consistency_lite_phase_tolerance; 06542 06543 uint8_t tp_phasecal_target; 06544 06545 uint16_t tp_cal_repeat_rate; 06546 06547 uint8_t tp_lite_min_clip; 06548 06549 06550 uint16_t tp_lite_long_sigma_thresh_mm; 06551 06552 uint16_t tp_lite_med_sigma_thresh_mm; 06553 06554 uint16_t tp_lite_short_sigma_thresh_mm; 06555 06556 06557 uint16_t tp_lite_long_min_count_rate_rtn_mcps; 06558 06559 uint16_t tp_lite_med_min_count_rate_rtn_mcps; 06560 06561 uint16_t tp_lite_short_min_count_rate_rtn_mcps; 06562 06563 06564 uint8_t tp_lite_sigma_est_pulse_width_ns; 06565 06566 uint8_t tp_lite_sigma_est_amb_width_ns; 06567 06568 uint8_t tp_lite_sigma_ref_mm; 06569 06570 uint8_t tp_lite_seed_cfg; 06571 06572 uint8_t tp_timed_seed_cfg; 06573 06574 06575 uint8_t tp_lite_quantifier; 06576 06577 uint8_t tp_lite_first_order_select; 06578 06579 06580 uint16_t tp_dss_target_lite_mcps; 06581 06582 uint16_t tp_dss_target_histo_mcps; 06583 06584 uint16_t tp_dss_target_histo_mz_mcps; 06585 06586 uint16_t tp_dss_target_timed_mcps; 06587 06588 uint16_t tp_dss_target_very_short_mcps; 06589 06590 06591 uint32_t tp_phasecal_timeout_lite_us; 06592 06593 uint32_t tp_phasecal_timeout_hist_long_us; 06594 06595 uint32_t tp_phasecal_timeout_hist_med_us; 06596 06597 uint32_t tp_phasecal_timeout_hist_short_us; 06598 06599 06600 uint32_t tp_phasecal_timeout_mz_long_us; 06601 06602 uint32_t tp_phasecal_timeout_mz_med_us; 06603 06604 uint32_t tp_phasecal_timeout_mz_short_us; 06605 06606 uint32_t tp_phasecal_timeout_timed_us; 06607 06608 06609 uint32_t tp_mm_timeout_lite_us; 06610 06611 uint32_t tp_mm_timeout_histo_us; 06612 06613 uint32_t tp_mm_timeout_mz_us; 06614 06615 uint32_t tp_mm_timeout_timed_us; 06616 06617 uint32_t tp_mm_timeout_lpa_us; 06618 06619 06620 uint32_t tp_range_timeout_lite_us; 06621 06622 uint32_t tp_range_timeout_histo_us; 06623 06624 uint32_t tp_range_timeout_mz_us; 06625 06626 uint32_t tp_range_timeout_timed_us; 06627 06628 uint32_t tp_range_timeout_lpa_us; 06629 06630 uint32_t tp_phasecal_patch_power; 06631 06632 uint32_t tp_hist_merge; 06633 06634 uint32_t tp_reset_merge_threshold; 06635 06636 uint32_t tp_hist_merge_max_size; 06637 06638 06639 } VL53LX_tuning_parm_storage_t; 06640 06641 06642 06643 06644 06645 typedef struct { 06646 06647 uint8_t x_centre; 06648 uint8_t y_centre; 06649 06650 } VL53LX_optical_centre_t; 06651 06652 06653 06654 06655 typedef struct { 06656 06657 uint8_t x_centre; 06658 uint8_t y_centre; 06659 uint8_t width; 06660 uint8_t height; 06661 06662 } VL53LX_user_zone_t; 06663 06664 06665 06666 06667 typedef struct { 06668 06669 uint8_t max_zones; 06670 uint8_t active_zones; 06671 06672 06673 06674 VL53LX_histogram_config_t multizone_hist_cfg; 06675 06676 VL53LX_user_zone_t user_zones[VL53LX_MAX_USER_ZONES]; 06677 06678 06679 uint8_t bin_config[VL53LX_MAX_USER_ZONES]; 06680 06681 06682 } VL53LX_zone_config_t; 06683 06684 06685 06686 typedef struct { 06687 06688 06689 VL53LX_GPIO_Interrupt_Mode intr_mode_distance; 06690 06691 06692 VL53LX_GPIO_Interrupt_Mode intr_mode_rate; 06693 06694 06695 uint8_t intr_new_measure_ready; 06696 06697 06698 uint8_t intr_no_target; 06699 06700 06701 uint8_t intr_combined_mode; 06702 06703 06704 06705 06706 06707 uint16_t threshold_distance_high; 06708 06709 06710 uint16_t threshold_distance_low; 06711 06712 06713 uint16_t threshold_rate_high; 06714 06715 06716 uint16_t threshold_rate_low; 06717 06718 } VL53LX_GPIO_interrupt_config_t; 06719 06720 06721 06722 06723 typedef struct { 06724 06725 06726 uint8_t vhv_loop_bound; 06727 06728 06729 uint8_t is_low_power_auto_mode; 06730 06731 06732 uint8_t low_power_auto_range_count; 06733 06734 06735 uint8_t saved_interrupt_config; 06736 06737 06738 uint8_t saved_vhv_init; 06739 06740 06741 uint8_t saved_vhv_timeout; 06742 06743 06744 uint8_t first_run_phasecal_result; 06745 06746 06747 uint32_t dss__total_rate_per_spad_mcps; 06748 06749 06750 uint16_t dss__required_spads; 06751 06752 } VL53LX_low_power_auto_data_t; 06753 06754 06755 06756 06757 06758 06759 06760 typedef struct { 06761 06762 06763 uint8_t smudge_corr_enabled; 06764 06765 06766 uint8_t smudge_corr_apply_enabled; 06767 06768 06769 uint8_t smudge_corr_single_apply; 06770 06771 06772 06773 06774 uint16_t smudge_margin; 06775 06776 06777 uint32_t noise_margin; 06778 06779 06780 uint32_t user_xtalk_offset_limit; 06781 06782 06783 uint8_t user_xtalk_offset_limit_hi; 06784 06785 06786 uint32_t sample_limit; 06787 06788 06789 uint32_t single_xtalk_delta; 06790 06791 06792 uint32_t averaged_xtalk_delta; 06793 06794 06795 uint32_t smudge_corr_clip_limit; 06796 06797 06798 uint32_t smudge_corr_ambient_threshold; 06799 06800 06801 uint8_t scaler_calc_method; 06802 06803 06804 int16_t x_gradient_scaler; 06805 06806 06807 int16_t y_gradient_scaler; 06808 06809 06810 uint8_t user_scaler_set; 06811 06812 06813 uint32_t nodetect_ambient_threshold; 06814 06815 06816 uint32_t nodetect_sample_limit; 06817 06818 06819 uint32_t nodetect_xtalk_offset; 06820 06821 06822 uint16_t nodetect_min_range_mm; 06823 06824 06825 uint32_t max_smudge_factor; 06826 06827 } VL53LX_smudge_corrector_config_t; 06828 06829 06830 06831 typedef struct { 06832 06833 06834 uint32_t current_samples; 06835 06836 06837 uint32_t required_samples; 06838 06839 06840 uint64_t accumulator; 06841 06842 06843 uint32_t nodetect_counter; 06844 06845 } VL53LX_smudge_corrector_internals_t; 06846 06847 06848 06849 typedef struct { 06850 06851 06852 uint8_t smudge_corr_valid; 06853 06854 06855 uint8_t smudge_corr_clipped; 06856 06857 06858 uint8_t single_xtalk_delta_flag; 06859 06860 06861 uint8_t averaged_xtalk_delta_flag; 06862 06863 06864 uint8_t sample_limit_exceeded_flag; 06865 06866 06867 uint8_t gradient_zero_flag; 06868 06869 06870 uint8_t new_xtalk_applied_flag; 06871 06872 06873 uint32_t algo__crosstalk_compensation_plane_offset_kcps; 06874 06875 06876 int16_t algo__crosstalk_compensation_x_plane_gradient_kcps; 06877 06878 06879 int16_t algo__crosstalk_compensation_y_plane_gradient_kcps; 06880 06881 06882 } VL53LX_smudge_corrector_data_t; 06883 06884 06885 06886 06887 06888 typedef struct { 06889 06890 06891 06892 uint8_t range_id; 06893 06894 uint32_t time_stamp; 06895 06896 uint8_t VL53LX_p_012; 06897 06898 uint8_t VL53LX_p_019; 06899 06900 uint8_t VL53LX_p_023; 06901 06902 uint8_t VL53LX_p_024; 06903 06904 uint8_t VL53LX_p_013; 06905 06906 uint8_t VL53LX_p_025; 06907 06908 06909 uint16_t width; 06910 06911 uint8_t VL53LX_p_029; 06912 06913 06914 uint16_t fast_osc_frequency; 06915 06916 uint16_t zero_distance_phase; 06917 06918 uint16_t VL53LX_p_004; 06919 06920 06921 uint32_t total_periods_elapsed; 06922 06923 06924 uint32_t peak_duration_us; 06925 06926 06927 uint32_t woi_duration_us; 06928 06929 06930 06931 06932 06933 uint32_t VL53LX_p_016; 06934 06935 uint32_t VL53LX_p_017; 06936 06937 int32_t VL53LX_p_010; 06938 06939 06940 06941 06942 uint16_t peak_signal_count_rate_mcps; 06943 06944 uint16_t avg_signal_count_rate_mcps; 06945 06946 uint16_t ambient_count_rate_mcps; 06947 06948 uint16_t total_rate_per_spad_mcps; 06949 06950 uint32_t VL53LX_p_009; 06951 06952 06953 06954 06955 uint16_t VL53LX_p_002; 06956 06957 06958 06959 06960 uint16_t VL53LX_p_026; 06961 06962 uint16_t VL53LX_p_011; 06963 06964 uint16_t VL53LX_p_027; 06965 06966 06967 06968 06969 int16_t min_range_mm; 06970 06971 int16_t median_range_mm; 06972 06973 int16_t max_range_mm; 06974 06975 06976 06977 06978 uint8_t range_status; 06979 06980 } VL53LX_range_data_t; 06981 06982 06983 06984 06985 typedef struct { 06986 06987 VL53LX_DeviceState cfg_device_state; 06988 06989 VL53LX_DeviceState rd_device_state; 06990 06991 uint8_t zone_id; 06992 06993 uint8_t stream_count; 06994 06995 06996 int16_t VL53LX_p_022[VL53LX_MAX_AMBIENT_DMAX_VALUES]; 06997 06998 int16_t wrap_dmax_mm; 06999 07000 07001 uint8_t device_status; 07002 07003 07004 uint8_t max_results; 07005 07006 uint8_t active_results; 07007 07008 VL53LX_range_data_t VL53LX_p_003[VL53LX_MAX_RANGE_RESULTS]; 07009 07010 VL53LX_range_data_t xmonitor; 07011 07012 VL53LX_smudge_corrector_data_t smudge_corrector_data; 07013 07014 07015 07016 } VL53LX_range_results_t; 07017 07018 07019 07020 07021 typedef struct { 07022 07023 uint8_t no_of_samples; 07024 07025 uint32_t rate_per_spad_kcps_sum; 07026 07027 uint32_t rate_per_spad_kcps_avg; 07028 07029 int32_t signal_total_events_sum; 07030 07031 int32_t signal_total_events_avg; 07032 07033 uint32_t sigma_mm_sum; 07034 07035 uint32_t sigma_mm_avg; 07036 07037 uint32_t median_phase_sum; 07038 07039 uint32_t median_phase_avg; 07040 07041 07042 } VL53LX_xtalk_range_data_t; 07043 07044 07045 07046 07047 typedef struct { 07048 07049 VL53LX_Error cal_status; 07050 07051 uint8_t num_of_samples_status; 07052 07053 uint8_t zero_samples_status; 07054 07055 uint8_t max_sigma_status; 07056 07057 uint8_t max_results; 07058 07059 uint8_t active_results; 07060 07061 07062 VL53LX_xtalk_range_data_t 07063 VL53LX_p_003[VL53LX_MAX_XTALK_RANGE_RESULTS]; 07064 07065 VL53LX_histogram_bin_data_t central_histogram_sum; 07066 07067 VL53LX_histogram_bin_data_t central_histogram_avg; 07068 07069 uint8_t central_histogram__window_start; 07070 07071 uint8_t central_histogram__window_end; 07072 07073 VL53LX_histogram_bin_data_t 07074 histogram_avg_1[VL53LX_MAX_XTALK_RANGE_RESULTS]; 07075 07076 VL53LX_histogram_bin_data_t 07077 histogram_avg_2[VL53LX_MAX_XTALK_RANGE_RESULTS]; 07078 07079 VL53LX_histogram_bin_data_t 07080 xtalk_avg[VL53LX_MAX_XTALK_RANGE_RESULTS]; 07081 07082 07083 } VL53LX_xtalk_range_results_t; 07084 07085 07086 07087 07088 typedef struct { 07089 07090 uint8_t preset_mode; 07091 07092 uint8_t dss_config__roi_mode_control; 07093 07094 uint16_t dss_config__manual_effective_spads_select; 07095 07096 uint8_t no_of_samples; 07097 07098 uint32_t effective_spads; 07099 07100 uint32_t peak_rate_mcps; 07101 07102 uint32_t VL53LX_p_002; 07103 07104 int32_t median_range_mm; 07105 07106 int32_t range_mm_offset; 07107 07108 07109 } VL53LX_offset_range_data_t; 07110 07111 07112 07113 07114 typedef struct { 07115 07116 int16_t cal_distance_mm; 07117 07118 uint16_t cal_reflectance_pc; 07119 07120 VL53LX_Error cal_status; 07121 07122 uint8_t cal_report; 07123 07124 uint8_t max_results; 07125 07126 uint8_t active_results; 07127 07128 VL53LX_offset_range_data_t 07129 VL53LX_p_003[VL53LX_MAX_OFFSET_RANGE_RESULTS]; 07130 07131 07132 } VL53LX_offset_range_results_t; 07133 07134 07135 07136 07137 typedef struct { 07138 07139 uint16_t result__mm_inner_actual_effective_spads; 07140 07141 uint16_t result__mm_outer_actual_effective_spads; 07142 07143 uint16_t result__mm_inner_peak_signal_count_rtn_mcps; 07144 07145 uint16_t result__mm_outer_peak_signal_count_rtn_mcps; 07146 07147 07148 } VL53LX_additional_offset_cal_data_t; 07149 07150 07151 07152 typedef struct { 07153 int16_t short_a_offset_mm; 07154 int16_t short_b_offset_mm; 07155 int16_t medium_a_offset_mm; 07156 int16_t medium_b_offset_mm; 07157 int16_t long_a_offset_mm; 07158 int16_t long_b_offset_mm; 07159 } VL53LX_per_vcsel_period_offset_cal_data_t; 07160 07161 07162 07163 07164 07165 typedef struct { 07166 07167 uint32_t VL53LX_p_016; 07168 07169 uint32_t VL53LX_p_017; 07170 07171 uint16_t VL53LX_p_011; 07172 07173 uint8_t range_status; 07174 07175 07176 } VL53LX_object_data_t; 07177 07178 07179 07180 07181 typedef struct { 07182 07183 VL53LX_DeviceState cfg_device_state; 07184 07185 VL53LX_DeviceState rd_device_state; 07186 07187 uint8_t zone_id; 07188 07189 uint8_t stream_count; 07190 07191 uint8_t max_objects; 07192 07193 uint8_t active_objects; 07194 07195 VL53LX_object_data_t VL53LX_p_003[VL53LX_MAX_RANGE_RESULTS]; 07196 07197 07198 VL53LX_object_data_t xmonitor; 07199 07200 07201 } VL53LX_zone_objects_t; 07202 07203 07204 07205 07206 07207 07208 typedef struct { 07209 07210 uint8_t max_zones; 07211 07212 uint8_t active_zones; 07213 07214 VL53LX_zone_objects_t VL53LX_p_003[VL53LX_MAX_USER_ZONES]; 07215 07216 07217 } VL53LX_zone_results_t; 07218 07219 07220 07221 07222 typedef struct { 07223 07224 VL53LX_DeviceState rd_device_state; 07225 07226 07227 uint8_t number_of_ambient_bins; 07228 07229 07230 uint16_t result__dss_actual_effective_spads; 07231 07232 uint8_t VL53LX_p_005; 07233 07234 uint32_t total_periods_elapsed; 07235 07236 07237 int32_t ambient_events_sum; 07238 07239 07240 } VL53LX_zone_hist_info_t; 07241 07242 07243 07244 07245 typedef struct { 07246 07247 uint8_t max_zones; 07248 07249 uint8_t active_zones; 07250 07251 VL53LX_zone_hist_info_t VL53LX_p_003[VL53LX_MAX_USER_ZONES]; 07252 07253 07254 } VL53LX_zone_histograms_t; 07255 07256 07257 07258 07259 typedef struct { 07260 07261 uint32_t no_of_samples; 07262 07263 uint32_t effective_spads; 07264 07265 uint32_t peak_rate_mcps; 07266 07267 uint32_t VL53LX_p_011; 07268 07269 uint32_t VL53LX_p_002; 07270 07271 int32_t median_range_mm; 07272 07273 int32_t range_mm_offset; 07274 07275 07276 } VL53LX_zone_calibration_data_t; 07277 07278 07279 07280 07281 07282 07283 typedef struct { 07284 07285 uint32_t struct_version; 07286 07287 VL53LX_DevicePresetModes preset_mode; 07288 07289 VL53LX_DeviceZonePreset zone_preset; 07290 07291 int16_t cal_distance_mm; 07292 07293 uint16_t cal_reflectance_pc; 07294 07295 uint16_t phasecal_result__reference_phase; 07296 07297 uint16_t zero_distance_phase; 07298 07299 VL53LX_Error cal_status; 07300 07301 uint8_t max_zones; 07302 07303 uint8_t active_zones; 07304 07305 VL53LX_zone_calibration_data_t VL53LX_p_003[VL53LX_MAX_USER_ZONES]; 07306 07307 07308 } VL53LX_zone_calibration_results_t; 07309 07310 07311 07312 07313 07314 typedef struct { 07315 07316 int16_t cal_distance_mm; 07317 07318 uint16_t cal_reflectance_pc; 07319 07320 uint16_t max_samples; 07321 07322 uint16_t width; 07323 07324 uint16_t height; 07325 07326 uint16_t peak_rate_mcps[VL53LX_NVM_PEAK_RATE_MAP_SAMPLES]; 07327 07328 07329 } VL53LX_cal_peak_rate_map_t; 07330 07331 07332 07333 07334 typedef struct { 07335 07336 uint8_t expected_stream_count; 07337 07338 uint8_t expected_gph_id; 07339 07340 uint8_t dss_mode; 07341 07342 uint16_t dss_requested_effective_spad_count; 07343 07344 uint8_t seed_cfg; 07345 07346 uint8_t initial_phase_seed; 07347 07348 07349 uint8_t roi_config__user_roi_centre_spad; 07350 07351 uint8_t roi_config__user_roi_requested_global_xy_size; 07352 07353 07354 } VL53LX_zone_private_dyn_cfg_t; 07355 07356 07357 07358 07359 typedef struct { 07360 07361 uint8_t max_zones; 07362 07363 uint8_t active_zones; 07364 07365 VL53LX_zone_private_dyn_cfg_t VL53LX_p_003[VL53LX_MAX_USER_ZONES]; 07366 07367 07368 } VL53LX_zone_private_dyn_cfgs_t; 07369 07370 07371 07372 typedef struct { 07373 07374 uint32_t algo__crosstalk_compensation_plane_offset_kcps; 07375 07376 int16_t algo__crosstalk_compensation_x_plane_gradient_kcps; 07377 07378 int16_t algo__crosstalk_compensation_y_plane_gradient_kcps; 07379 07380 uint32_t algo__xtalk_cpo_HistoMerge_kcps[VL53LX_BIN_REC_SIZE]; 07381 07382 07383 } VL53LX_xtalk_calibration_results_t; 07384 07385 07386 07387 07388 typedef struct { 07389 07390 07391 uint32_t sample_count; 07392 07393 07394 uint32_t pll_period_mm; 07395 07396 07397 uint32_t peak_duration_us_sum; 07398 07399 07400 uint32_t effective_spad_count_sum; 07401 07402 07403 uint32_t zero_distance_phase_sum; 07404 07405 07406 uint32_t zero_distance_phase_avg; 07407 07408 07409 int32_t event_scaler_sum; 07410 07411 07412 int32_t event_scaler_avg; 07413 07414 07415 int32_t signal_events_sum; 07416 07417 07418 uint32_t xtalk_rate_kcps_per_spad; 07419 07420 07421 int32_t xtalk_start_phase; 07422 07423 07424 int32_t xtalk_end_phase; 07425 07426 07427 int32_t xtalk_width_phase; 07428 07429 07430 int32_t target_start_phase; 07431 07432 07433 int32_t target_end_phase; 07434 07435 07436 int32_t target_width_phase; 07437 07438 07439 int32_t effective_width; 07440 07441 07442 int32_t event_scaler; 07443 07444 07445 uint8_t VL53LX_p_012; 07446 07447 07448 uint8_t VL53LX_p_013; 07449 07450 07451 uint8_t target_start; 07452 07453 07454 int32_t max_shape_value; 07455 07456 07457 int32_t bin_data_sums[VL53LX_XTALK_HISTO_BINS]; 07458 07459 } VL53LX_hist_xtalk_extract_data_t; 07460 07461 07462 07463 07464 typedef struct { 07465 07466 uint16_t standard_ranging_gain_factor; 07467 07468 uint16_t histogram_ranging_gain_factor; 07469 07470 07471 } VL53LX_gain_calibration_data_t; 07472 07473 07474 07475 07476 typedef struct { 07477 07478 VL53LX_DeviceState cfg_device_state; 07479 07480 uint8_t cfg_stream_count; 07481 07482 uint8_t cfg_internal_stream_count; 07483 07484 uint8_t cfg_internal_stream_count_val; 07485 07486 uint8_t cfg_gph_id; 07487 07488 uint8_t cfg_timing_status; 07489 07490 uint8_t cfg_zone_id; 07491 07492 07493 VL53LX_DeviceState rd_device_state; 07494 07495 uint8_t rd_stream_count; 07496 07497 uint8_t rd_internal_stream_count; 07498 07499 uint8_t rd_internal_stream_count_val; 07500 07501 uint8_t rd_gph_id; 07502 07503 uint8_t rd_timing_status; 07504 07505 uint8_t rd_zone_id; 07506 07507 07508 } VL53LX_ll_driver_state_t; 07509 07510 07511 07512 07513 typedef struct { 07514 07515 uint8_t wait_method; 07516 07517 VL53LX_DevicePresetModes preset_mode; 07518 07519 VL53LX_DeviceZonePreset zone_preset; 07520 07521 VL53LX_DeviceMeasurementModes measurement_mode; 07522 07523 VL53LX_OffsetCalibrationMode offset_calibration_mode; 07524 07525 VL53LX_OffsetCorrectionMode offset_correction_mode; 07526 07527 VL53LX_DeviceDmaxMode dmax_mode; 07528 07529 uint32_t phasecal_config_timeout_us; 07530 07531 uint32_t mm_config_timeout_us; 07532 07533 uint32_t range_config_timeout_us; 07534 07535 uint32_t inter_measurement_period_ms; 07536 07537 uint16_t dss_config__target_total_rate_mcps; 07538 07539 uint32_t fw_ready_poll_duration_ms; 07540 07541 uint8_t fw_ready; 07542 07543 uint8_t debug_mode; 07544 07545 07546 07547 VL53LX_ll_version_t version; 07548 07549 07550 VL53LX_ll_driver_state_t ll_state; 07551 07552 07553 VL53LX_GPIO_interrupt_config_t gpio_interrupt_config; 07554 07555 07556 VL53LX_customer_nvm_managed_t customer; 07557 VL53LX_cal_peak_rate_map_t cal_peak_rate_map; 07558 VL53LX_additional_offset_cal_data_t add_off_cal_data; 07559 VL53LX_dmax_calibration_data_t fmt_dmax_cal; 07560 VL53LX_dmax_calibration_data_t cust_dmax_cal; 07561 VL53LX_gain_calibration_data_t gain_cal; 07562 VL53LX_user_zone_t mm_roi; 07563 VL53LX_optical_centre_t optical_centre; 07564 VL53LX_zone_config_t zone_cfg; 07565 07566 07567 VL53LX_tuning_parm_storage_t tuning_parms; 07568 07569 07570 uint8_t rtn_good_spads[VL53LX_RTN_SPAD_BUFFER_SIZE]; 07571 07572 07573 VL53LX_refspadchar_config_t refspadchar; 07574 VL53LX_ssc_config_t ssc_cfg; 07575 VL53LX_hist_post_process_config_t histpostprocess; 07576 VL53LX_hist_gen3_dmax_config_t dmax_cfg; 07577 VL53LX_xtalkextract_config_t xtalk_extract_cfg; 07578 VL53LX_xtalk_config_t xtalk_cfg; 07579 VL53LX_offsetcal_config_t offsetcal_cfg; 07580 VL53LX_zonecal_config_t zonecal_cfg; 07581 07582 07583 VL53LX_static_nvm_managed_t stat_nvm; 07584 VL53LX_histogram_config_t hist_cfg; 07585 VL53LX_static_config_t stat_cfg; 07586 VL53LX_general_config_t gen_cfg; 07587 VL53LX_timing_config_t tim_cfg; 07588 VL53LX_dynamic_config_t dyn_cfg; 07589 VL53LX_system_control_t sys_ctrl; 07590 VL53LX_system_results_t sys_results; 07591 VL53LX_nvm_copy_data_t nvm_copy_data; 07592 07593 07594 VL53LX_histogram_bin_data_t hist_data; 07595 VL53LX_histogram_bin_data_t hist_xtalk; 07596 07597 07598 VL53LX_xtalk_histogram_data_t xtalk_shapes; 07599 VL53LX_xtalk_range_results_t xtalk_results; 07600 VL53LX_xtalk_calibration_results_t xtalk_cal; 07601 VL53LX_hist_xtalk_extract_data_t xtalk_extract; 07602 07603 07604 VL53LX_offset_range_results_t offset_results; 07605 07606 07607 VL53LX_core_results_t core_results; 07608 VL53LX_debug_results_t dbg_results; 07609 07610 VL53LX_smudge_corrector_config_t smudge_correct_config; 07611 07612 VL53LX_smudge_corrector_internals_t smudge_corrector_internals; 07613 07614 07615 07616 07617 VL53LX_low_power_auto_data_t low_power_auto_data; 07618 07619 uint8_t wArea1[1536]; 07620 uint8_t wArea2[512]; 07621 VL53LX_per_vcsel_period_offset_cal_data_t per_vcsel_cal_data; 07622 07623 uint8_t bin_rec_pos; 07624 07625 uint8_t pos_before_next_recom; 07626 07627 int32_t multi_bins_rec[VL53LX_BIN_REC_SIZE] 07628 [VL53LX_TIMING_CONF_A_B_SIZE][VL53LX_HISTOGRAM_BUFFER_SIZE]; 07629 07630 } VL53LX_LLDriverData_t; 07631 07632 07633 07634 07635 typedef struct { 07636 07637 07638 VL53LX_range_results_t range_results; 07639 07640 07641 VL53LX_zone_private_dyn_cfgs_t zone_dyn_cfgs; 07642 07643 07644 VL53LX_zone_results_t zone_results; 07645 VL53LX_zone_histograms_t zone_hists; 07646 VL53LX_zone_calibration_results_t zone_cal; 07647 07648 } VL53LX_LLDriverResults_t; 07649 07650 07651 07652 07653 typedef struct { 07654 07655 uint32_t struct_version; 07656 VL53LX_customer_nvm_managed_t customer; 07657 VL53LX_dmax_calibration_data_t fmt_dmax_cal; 07658 VL53LX_dmax_calibration_data_t cust_dmax_cal; 07659 VL53LX_additional_offset_cal_data_t add_off_cal_data; 07660 VL53LX_optical_centre_t optical_centre; 07661 VL53LX_xtalk_histogram_data_t xtalkhisto; 07662 VL53LX_gain_calibration_data_t gain_cal; 07663 VL53LX_cal_peak_rate_map_t cal_peak_rate_map; 07664 VL53LX_per_vcsel_period_offset_cal_data_t per_vcsel_cal_data; 07665 07666 } VL53LX_calibration_data_t; 07667 07668 07669 07670 07671 typedef struct { 07672 07673 VL53LX_customer_nvm_managed_t customer; 07674 VL53LX_xtalkextract_config_t xtalk_extract_cfg; 07675 VL53LX_xtalk_config_t xtalk_cfg; 07676 VL53LX_histogram_bin_data_t hist_data; 07677 VL53LX_xtalk_histogram_data_t xtalk_shapes; 07678 VL53LX_xtalk_range_results_t xtalk_results; 07679 07680 } VL53LX_xtalk_debug_data_t; 07681 07682 07683 07684 07685 typedef struct { 07686 07687 VL53LX_customer_nvm_managed_t customer; 07688 VL53LX_dmax_calibration_data_t fmt_dmax_cal; 07689 VL53LX_dmax_calibration_data_t cust_dmax_cal; 07690 VL53LX_additional_offset_cal_data_t add_off_cal_data; 07691 VL53LX_offset_range_results_t offset_results; 07692 07693 } VL53LX_offset_debug_data_t; 07694 07695 07696 07697 07698 typedef struct { 07699 uint16_t vl53lx_tuningparm_version; 07700 uint16_t vl53lx_tuningparm_key_table_version; 07701 uint16_t vl53lx_tuningparm_lld_version; 07702 uint8_t vl53lx_tuningparm_hist_algo_select; 07703 uint8_t vl53lx_tuningparm_hist_target_order; 07704 uint8_t vl53lx_tuningparm_hist_filter_woi_0; 07705 uint8_t vl53lx_tuningparm_hist_filter_woi_1; 07706 uint8_t vl53lx_tuningparm_hist_amb_est_method; 07707 uint8_t vl53lx_tuningparm_hist_amb_thresh_sigma_0; 07708 uint8_t vl53lx_tuningparm_hist_amb_thresh_sigma_1; 07709 int32_t vl53lx_tuningparm_hist_min_amb_thresh_events; 07710 uint16_t vl53lx_tuningparm_hist_amb_events_scaler; 07711 uint16_t vl53lx_tuningparm_hist_noise_threshold; 07712 int32_t vl53lx_tuningparm_hist_signal_total_events_limit; 07713 uint8_t vl53lx_tuningparm_hist_sigma_est_ref_mm; 07714 uint16_t vl53lx_tuningparm_hist_sigma_thresh_mm; 07715 uint16_t vl53lx_tuningparm_hist_gain_factor; 07716 uint8_t vl53lx_tuningparm_consistency_hist_phase_tolerance; 07717 uint16_t vl53lx_tuningparm_consistency_hist_min_max_tolerance_mm; 07718 uint8_t vl53lx_tuningparm_consistency_hist_event_sigma; 07719 uint16_t vl53lx_tuningparm_consistency_hist_event_sigma_min_spad_limit; 07720 uint8_t vl53lx_tuningparm_initial_phase_rtn_histo_long_range; 07721 uint8_t vl53lx_tuningparm_initial_phase_rtn_histo_med_range; 07722 uint8_t vl53lx_tuningparm_initial_phase_rtn_histo_short_range; 07723 uint8_t vl53lx_tuningparm_initial_phase_ref_histo_long_range; 07724 uint8_t vl53lx_tuningparm_initial_phase_ref_histo_med_range; 07725 uint8_t vl53lx_tuningparm_initial_phase_ref_histo_short_range; 07726 int16_t vl53lx_tuningparm_xtalk_detect_min_valid_range_mm; 07727 int16_t vl53lx_tuningparm_xtalk_detect_max_valid_range_mm; 07728 uint16_t vl53lx_tuningparm_xtalk_detect_max_sigma_mm; 07729 uint16_t vl53lx_tuningparm_xtalk_detect_min_max_tolerance; 07730 uint16_t vl53lx_tuningparm_xtalk_detect_max_valid_rate_kcps; 07731 uint8_t vl53lx_tuningparm_xtalk_detect_event_sigma; 07732 int16_t vl53lx_tuningparm_hist_xtalk_margin_kcps; 07733 uint8_t vl53lx_tuningparm_consistency_lite_phase_tolerance; 07734 uint8_t vl53lx_tuningparm_phasecal_target; 07735 uint16_t vl53lx_tuningparm_lite_cal_repeat_rate; 07736 uint16_t vl53lx_tuningparm_lite_ranging_gain_factor; 07737 uint8_t vl53lx_tuningparm_lite_min_clip_mm; 07738 uint16_t vl53lx_tuningparm_lite_long_sigma_thresh_mm; 07739 uint16_t vl53lx_tuningparm_lite_med_sigma_thresh_mm; 07740 uint16_t vl53lx_tuningparm_lite_short_sigma_thresh_mm; 07741 uint16_t vl53lx_tuningparm_lite_long_min_count_rate_rtn_mcps; 07742 uint16_t vl53lx_tuningparm_lite_med_min_count_rate_rtn_mcps; 07743 uint16_t vl53lx_tuningparm_lite_short_min_count_rate_rtn_mcps; 07744 uint8_t vl53lx_tuningparm_lite_sigma_est_pulse_width; 07745 uint8_t vl53lx_tuningparm_lite_sigma_est_amb_width_ns; 07746 uint8_t vl53lx_tuningparm_lite_sigma_ref_mm; 07747 uint8_t vl53lx_tuningparm_lite_rit_mult; 07748 uint8_t vl53lx_tuningparm_lite_seed_config; 07749 uint8_t vl53lx_tuningparm_lite_quantifier; 07750 uint8_t vl53lx_tuningparm_lite_first_order_select; 07751 int16_t vl53lx_tuningparm_lite_xtalk_margin_kcps; 07752 uint8_t vl53lx_tuningparm_initial_phase_rtn_lite_long_range; 07753 uint8_t vl53lx_tuningparm_initial_phase_rtn_lite_med_range; 07754 uint8_t vl53lx_tuningparm_initial_phase_rtn_lite_short_range; 07755 uint8_t vl53lx_tuningparm_initial_phase_ref_lite_long_range; 07756 uint8_t vl53lx_tuningparm_initial_phase_ref_lite_med_range; 07757 uint8_t vl53lx_tuningparm_initial_phase_ref_lite_short_range; 07758 uint8_t vl53lx_tuningparm_timed_seed_config; 07759 uint8_t vl53lx_tuningparm_dmax_cfg_signal_thresh_sigma; 07760 uint16_t vl53lx_tuningparm_dmax_cfg_reflectance_array_0; 07761 uint16_t vl53lx_tuningparm_dmax_cfg_reflectance_array_1; 07762 uint16_t vl53lx_tuningparm_dmax_cfg_reflectance_array_2; 07763 uint16_t vl53lx_tuningparm_dmax_cfg_reflectance_array_3; 07764 uint16_t vl53lx_tuningparm_dmax_cfg_reflectance_array_4; 07765 uint8_t vl53lx_tuningparm_vhv_loopbound; 07766 uint8_t vl53lx_tuningparm_refspadchar_device_test_mode; 07767 uint8_t vl53lx_tuningparm_refspadchar_vcsel_period; 07768 uint32_t vl53lx_tuningparm_refspadchar_phasecal_timeout_us; 07769 uint16_t vl53lx_tuningparm_refspadchar_target_count_rate_mcps; 07770 uint16_t vl53lx_tuningparm_refspadchar_min_countrate_limit_mcps; 07771 uint16_t vl53lx_tuningparm_refspadchar_max_countrate_limit_mcps; 07772 uint8_t vl53lx_tuningparm_xtalk_extract_num_of_samples; 07773 int16_t vl53lx_tuningparm_xtalk_extract_min_filter_thresh_mm; 07774 int16_t vl53lx_tuningparm_xtalk_extract_max_filter_thresh_mm; 07775 uint16_t vl53lx_tuningparm_xtalk_extract_dss_rate_mcps; 07776 uint32_t vl53lx_tuningparm_xtalk_extract_phasecal_timeout_us; 07777 uint16_t vl53lx_tuningparm_xtalk_extract_max_valid_rate_kcps; 07778 uint16_t vl53lx_tuningparm_xtalk_extract_sigma_threshold_mm; 07779 uint32_t vl53lx_tuningparm_xtalk_extract_dss_timeout_us; 07780 uint32_t vl53lx_tuningparm_xtalk_extract_bin_timeout_us; 07781 uint16_t vl53lx_tuningparm_offset_cal_dss_rate_mcps; 07782 uint32_t vl53lx_tuningparm_offset_cal_phasecal_timeout_us; 07783 uint32_t vl53lx_tuningparm_offset_cal_mm_timeout_us; 07784 uint32_t vl53lx_tuningparm_offset_cal_range_timeout_us; 07785 uint8_t vl53lx_tuningparm_offset_cal_pre_samples; 07786 uint8_t vl53lx_tuningparm_offset_cal_mm1_samples; 07787 uint8_t vl53lx_tuningparm_offset_cal_mm2_samples; 07788 uint16_t vl53lx_tuningparm_zone_cal_dss_rate_mcps; 07789 uint32_t vl53lx_tuningparm_zone_cal_phasecal_timeout_us; 07790 uint32_t vl53lx_tuningparm_zone_cal_dss_timeout_us; 07791 uint16_t vl53lx_tuningparm_zone_cal_phasecal_num_samples; 07792 uint32_t vl53lx_tuningparm_zone_cal_range_timeout_us; 07793 uint16_t vl53lx_tuningparm_zone_cal_zone_num_samples; 07794 uint8_t vl53lx_tuningparm_spadmap_vcsel_period; 07795 uint8_t vl53lx_tuningparm_spadmap_vcsel_start; 07796 uint16_t vl53lx_tuningparm_spadmap_rate_limit_mcps; 07797 uint16_t vl53lx_tuningparm_lite_dss_config_target_total_rate_mcps; 07798 uint16_t vl53lx_tuningparm_ranging_dss_config_target_total_rate_mcps; 07799 uint16_t vl53lx_tuningparm_mz_dss_config_target_total_rate_mcps; 07800 uint16_t vl53lx_tuningparm_timed_dss_config_target_total_rate_mcps; 07801 uint32_t vl53lx_tuningparm_lite_phasecal_config_timeout_us; 07802 uint32_t vl53lx_tuningparm_ranging_long_phasecal_config_timeout_us; 07803 uint32_t vl53lx_tuningparm_ranging_med_phasecal_config_timeout_us; 07804 uint32_t vl53lx_tuningparm_ranging_short_phasecal_config_timeout_us; 07805 uint32_t vl53lx_tuningparm_mz_long_phasecal_config_timeout_us; 07806 uint32_t vl53lx_tuningparm_mz_med_phasecal_config_timeout_us; 07807 uint32_t vl53lx_tuningparm_mz_short_phasecal_config_timeout_us; 07808 uint32_t vl53lx_tuningparm_timed_phasecal_config_timeout_us; 07809 uint32_t vl53lx_tuningparm_lite_mm_config_timeout_us; 07810 uint32_t vl53lx_tuningparm_ranging_mm_config_timeout_us; 07811 uint32_t vl53lx_tuningparm_mz_mm_config_timeout_us; 07812 uint32_t vl53lx_tuningparm_timed_mm_config_timeout_us; 07813 uint32_t vl53lx_tuningparm_lite_range_config_timeout_us; 07814 uint32_t vl53lx_tuningparm_ranging_range_config_timeout_us; 07815 uint32_t vl53lx_tuningparm_mz_range_config_timeout_us; 07816 uint32_t vl53lx_tuningparm_timed_range_config_timeout_us; 07817 uint16_t vl53lx_tuningparm_dynxtalk_smudge_margin; 07818 uint32_t vl53lx_tuningparm_dynxtalk_noise_margin; 07819 uint32_t vl53lx_tuningparm_dynxtalk_xtalk_offset_limit; 07820 uint8_t vl53lx_tuningparm_dynxtalk_xtalk_offset_limit_hi; 07821 uint32_t vl53lx_tuningparm_dynxtalk_sample_limit; 07822 uint32_t vl53lx_tuningparm_dynxtalk_single_xtalk_delta; 07823 uint32_t vl53lx_tuningparm_dynxtalk_averaged_xtalk_delta; 07824 uint32_t vl53lx_tuningparm_dynxtalk_clip_limit; 07825 uint8_t vl53lx_tuningparm_dynxtalk_scaler_calc_method; 07826 int16_t vl53lx_tuningparm_dynxtalk_xgradient_scaler; 07827 int16_t vl53lx_tuningparm_dynxtalk_ygradient_scaler; 07828 uint8_t vl53lx_tuningparm_dynxtalk_user_scaler_set; 07829 uint8_t vl53lx_tuningparm_dynxtalk_smudge_cor_single_apply; 07830 uint32_t vl53lx_tuningparm_dynxtalk_xtalk_amb_threshold; 07831 uint32_t vl53lx_tuningparm_dynxtalk_nodetect_amb_threshold_kcps; 07832 uint32_t vl53lx_tuningparm_dynxtalk_nodetect_sample_limit; 07833 uint32_t vl53lx_tuningparm_dynxtalk_nodetect_xtalk_offset_kcps; 07834 uint16_t vl53lx_tuningparm_dynxtalk_nodetect_min_range_mm; 07835 uint8_t vl53lx_tuningparm_lowpowerauto_vhv_loop_bound; 07836 uint32_t vl53lx_tuningparm_lowpowerauto_mm_config_timeout_us; 07837 uint32_t vl53lx_tuningparm_lowpowerauto_range_config_timeout_us; 07838 uint16_t vl53lx_tuningparm_very_short_dss_rate_mcps; 07839 uint32_t vl53lx_tuningparm_phasecal_patch_power; 07840 } VL53LX_tuning_parameters_t; 07841 07842 07843 07844 07845 07846 typedef struct { 07847 07848 uint16_t target_reflectance_for_dmax[VL53LX_MAX_AMBIENT_DMAX_VALUES]; 07849 07850 } VL53LX_dmax_reflectance_array_t; 07851 07852 07853 07854 07855 typedef struct { 07856 07857 uint8_t spad_type; 07858 07859 uint16_t VL53LX_p_020; 07860 07861 uint16_t rate_data[VL53LX_NO_OF_SPAD_ENABLES]; 07862 07863 uint16_t no_of_values; 07864 07865 uint8_t fractional_bits; 07866 07867 uint8_t error_status; 07868 07869 07870 } VL53LX_spad_rate_data_t; 07871 07872 07873 07874 07875 07876 07877 typedef struct { 07878 07879 VL53LX_DevicePresetModes preset_mode; 07880 07881 VL53LX_DeviceZonePreset zone_preset; 07882 07883 VL53LX_DeviceMeasurementModes measurement_mode; 07884 07885 VL53LX_OffsetCalibrationMode offset_calibration_mode; 07886 07887 VL53LX_OffsetCorrectionMode offset_correction_mode; 07888 07889 VL53LX_DeviceDmaxMode dmax_mode; 07890 07891 07892 uint32_t phasecal_config_timeout_us; 07893 07894 uint32_t mm_config_timeout_us; 07895 07896 uint32_t range_config_timeout_us; 07897 07898 uint32_t inter_measurement_period_ms; 07899 07900 uint16_t dss_config__target_total_rate_mcps; 07901 07902 07903 VL53LX_histogram_bin_data_t VL53LX_p_006; 07904 07905 07906 } VL53LX_additional_data_t; 07907 07908 07909 07910 /* vl53lx_def.h */ 07911 07912 07913 /** @defgroup VL53LX_globaldefine_group VL53LX Defines 07914 * @brief VL53LX Defines 07915 * @{ 07916 */ 07917 07918 07919 /** VL53LX IMPLEMENTATION major version */ 07920 #define VL53LX_IMPLEMENTATION_VER_MAJOR 1 07921 /** VL53LX IMPLEMENTATION minor version */ 07922 #define VL53LX_IMPLEMENTATION_VER_MINOR 1 07923 /** VL53LX IMPLEMENTATION sub version */ 07924 #define VL53LX_IMPLEMENTATION_VER_SUB 4 07925 /** VL53LX IMPLEMENTATION sub version */ 07926 #define VL53LX_IMPLEMENTATION_VER_REVISION 2352 07927 07928 /**************************************** 07929 * PRIVATE define do not edit 07930 ****************************************/ 07931 07932 /** @brief Defines the parameters of the Get Version Functions 07933 */ 07934 typedef struct { 07935 uint32_t revision; /*!< revision number */ 07936 uint8_t major; /*!< major number */ 07937 uint8_t minor; /*!< minor number */ 07938 uint8_t build; /*!< build number */ 07939 } VL53LX_Version_t; 07940 07941 07942 /** @brief Defines the parameters of the Get Device Info Functions 07943 */ 07944 typedef struct { 07945 uint8_t ProductType; 07946 /*!< Product Type, VL53LX = 0xAA 07947 * Stands as module_type in the datasheet 07948 */ 07949 uint8_t ProductRevisionMajor; 07950 /*!< Product revision major */ 07951 uint8_t ProductRevisionMinor; 07952 /*!< Product revision minor */ 07953 } VL53LX_DeviceInfo_t; 07954 07955 /** @defgroup VL53LX_define_DistanceModes_group Defines Distance modes 07956 * Defines all possible Distance modes for the device 07957 * @{ 07958 */ 07959 typedef uint8_t VL53LX_DistanceModes; 07960 07961 #define VL53LX_DISTANCEMODE_SHORT ((VL53LX_DistanceModes) 1) 07962 #define VL53LX_DISTANCEMODE_MEDIUM ((VL53LX_DistanceModes) 2) 07963 #define VL53LX_DISTANCEMODE_LONG ((VL53LX_DistanceModes) 3) 07964 /** @} VL53LX_define_DistanceModes_group */ 07965 07966 /** @defgroup VL53LX_define_OffsetCorrectionModes_group Defines Offset Correction modes 07967 * Device Offset Correction Mode 07968 * 07969 * @brief Defines all possible offset correction modes for the device 07970 * @{ 07971 */ 07972 typedef uint8_t VL53LX_OffsetCorrectionModes; 07973 07974 #define VL53LX_OFFSETCORRECTIONMODE_STANDARD ((VL53LX_OffsetCorrectionModes) 1) 07975 #define VL53LX_OFFSETCORRECTIONMODE_PERVCSEL ((VL53LX_OffsetCorrectionModes) 3) 07976 07977 /** @} VL53LX_define_OffsetCorrectionModes_group */ 07978 07979 /** @brief Defines all parameters for the device 07980 */ 07981 typedef struct { 07982 VL53LX_DistanceModes DistanceMode; 07983 /*!< Defines the operating mode to be used for the next measure */ 07984 uint32_t MeasurementTimingBudgetMicroSeconds; 07985 /*!< Defines the allowed total time for a single measurement */ 07986 } VL53LX_DeviceParameters_t; 07987 07988 07989 /** @defgroup VL53LX_define_Smudge_Mode_group Defines smudge correction modes 07990 * Defines the smudge correction modes 07991 * @{ 07992 */ 07993 07994 typedef uint8_t VL53LX_SmudgeCorrectionModes; 07995 07996 #define VL53LX_SMUDGE_CORRECTION_NONE ((VL53LX_SmudgeCorrectionModes) 0) 07997 /*!< Smudge correction is applied continuously across the rangings */ 07998 #define VL53LX_SMUDGE_CORRECTION_CONTINUOUS ((VL53LX_SmudgeCorrectionModes) 1) 07999 /*!< Smudge correction is applied continuously across the rangings */ 08000 #define VL53LX_SMUDGE_CORRECTION_SINGLE ((VL53LX_SmudgeCorrectionModes) 2) 08001 /*!< Smudge correction is applied only once across the rangings */ 08002 #define VL53LX_SMUDGE_CORRECTION_DEBUG ((VL53LX_SmudgeCorrectionModes) 3) 08003 /*!< Smudge detection is applied continuously but Xtalk values are not 08004 * updated automatically within the driver 08005 */ 08006 08007 /** @} VL53LX_define_Smudge_Correction_Mode_group */ 08008 08009 /** 08010 * @struct VL53LX_TargetRangeData_t 08011 * @brief One Range measurement data for each target. 08012 */ 08013 typedef struct { 08014 int16_t RangeMaxMilliMeter; 08015 /*!< Tells what is the maximum detection distance of the object 08016 * in current setup and environment conditions (Filled when 08017 * applicable) 08018 */ 08019 08020 int16_t RangeMinMilliMeter; 08021 /*!< Tells what is the minimum detection distance of the object 08022 * in current setup and environment conditions (Filled when 08023 * applicable) 08024 */ 08025 08026 FixPoint1616_t SignalRateRtnMegaCps; 08027 /*!< Return signal rate (MCPS)\n these is a 16.16 fix point 08028 * value, which is effectively a measure of target 08029 * reflectance. 08030 */ 08031 08032 FixPoint1616_t AmbientRateRtnMegaCps; 08033 /*!< Return ambient rate (MCPS)\n these is a 16.16 fix point 08034 * value, which is effectively a measure of the ambien 08035 * t light. 08036 */ 08037 08038 FixPoint1616_t SigmaMilliMeter; 08039 /*!< Return the Sigma value in millimeter */ 08040 08041 int16_t RangeMilliMeter; 08042 /*!< range distance in millimeter. This should be between 08043 * RangeMinMilliMeter and RangeMaxMilliMeter 08044 */ 08045 08046 uint8_t RangeStatus; 08047 /*!< Range Status for the current measurement. This is device 08048 * dependent. Value = 0 means value is valid. 08049 */ 08050 } VL53LX_TargetRangeData_t; 08051 /** 08052 * @struct VL53LX_MultiRangingData_t 08053 * @brief Structure for storing the set of range results 08054 * 08055 */ 08056 typedef struct { 08057 uint32_t TimeStamp; 08058 /*!< 32-bit time stamp. 08059 * @warning Not yet implemented 08060 */ 08061 08062 uint8_t StreamCount; 08063 /*!< 8-bit Stream Count. */ 08064 08065 uint8_t NumberOfObjectsFound; 08066 /*!< Indicate the number of objects found. 08067 * This is used to know how many ranging data should be get. 08068 * NumberOfObjectsFound is in the range 0 to 08069 * VL53LX_MAX_RANGE_RESULTS. 08070 */ 08071 VL53LX_TargetRangeData_t RangeData[VL53LX_MAX_RANGE_RESULTS]; 08072 /*!< Range data each target distance */ 08073 uint8_t HasXtalkValueChanged; 08074 /*!< set to 1 if a new Xtalk value has been computed whilst 08075 * smudge correction mode enable by with 08076 * VL53LX_SmudgeCorrectionEnable() function is either 08077 * VL53LX_SMUDGE_CORRECTION_CONTINUOUS or 08078 * VL53LX_SMUDGE_CORRECTION_SINGLE. 08079 */ 08080 uint16_t EffectiveSpadRtnCount; 08081 /*!< Return the effective SPAD count for the return signal. 08082 * To obtain Real value it should be divided by 256 08083 */ 08084 } VL53LX_MultiRangingData_t; 08085 08086 08087 08088 /** 08089 * @struct VL53LX_CustomerNvmManaged_t 08090 * 08091 */ 08092 08093 typedef struct { 08094 uint8_t global_config__spad_enables_ref_0; 08095 uint8_t global_config__spad_enables_ref_1; 08096 uint8_t global_config__spad_enables_ref_2; 08097 uint8_t global_config__spad_enables_ref_3; 08098 uint8_t global_config__spad_enables_ref_4; 08099 uint8_t global_config__spad_enables_ref_5; 08100 uint8_t global_config__ref_en_start_select; 08101 uint8_t ref_spad_man__num_requested_ref_spads; 08102 uint8_t ref_spad_man__ref_location; 08103 uint32_t algo__crosstalk_compensation_plane_offset_kcps; 08104 int16_t algo__crosstalk_compensation_x_plane_gradient_kcps; 08105 int16_t algo__crosstalk_compensation_y_plane_gradient_kcps; 08106 uint16_t ref_spad_char__total_rate_target_mcps; 08107 int16_t algo__part_to_part_range_offset_mm; 08108 int16_t mm_config__inner_offset_mm; 08109 int16_t mm_config__outer_offset_mm; 08110 } VL53LX_CustomerNvmManaged_t; 08111 08112 /** 08113 * @struct VL53LX_CalibrationData_t 08114 * @brief Structure for storing the Calibration Data 08115 * 08116 */ 08117 08118 typedef struct { 08119 08120 uint32_t struct_version; 08121 VL53LX_CustomerNvmManaged_t customer; 08122 VL53LX_additional_offset_cal_data_t add_off_cal_data; 08123 VL53LX_optical_centre_t optical_centre; 08124 VL53LX_xtalk_histogram_data_t xtalkhisto; 08125 VL53LX_gain_calibration_data_t gain_cal; 08126 VL53LX_cal_peak_rate_map_t cal_peak_rate_map; 08127 VL53LX_per_vcsel_period_offset_cal_data_t per_vcsel_cal_data; 08128 uint32_t algo__xtalk_cpo_HistoMerge_kcps[VL53LX_BIN_REC_SIZE]; 08129 } VL53LX_CalibrationData_t; 08130 08131 #define VL53LX_ADDITIONAL_CALIBRATION_DATA_STRUCT_VERSION 0x20 08132 /** VL53LX additional Calibration Data struct version final struct version 08133 * is given by adding it to VL53LX_LL_CALIBRATION_DATA_STRUCT_VERSION 08134 */ 08135 08136 #define VL53LX_CALIBRATION_DATA_STRUCT_VERSION \ 08137 (VL53LX_LL_CALIBRATION_DATA_STRUCT_VERSION + \ 08138 VL53LX_ADDITIONAL_CALIBRATION_DATA_STRUCT_VERSION) 08139 /* VL53LX Calibration Data struct version */ 08140 08141 /** 08142 * @struct VL53LX_AdditionalData_t 08143 * @brief Structure for storing the Additional Data 08144 * 08145 */ 08146 typedef VL53LX_additional_data_t VL53LX_AdditionalData_t; 08147 08148 08149 /** @defgroup VL53LX_define_RangeStatus_group Defines the Range Status 08150 * @{ 08151 */ 08152 #define VL53LX_RANGESTATUS_RANGE_VALID 0 08153 /*!<The Range is valid. */ 08154 #define VL53LX_RANGESTATUS_SIGMA_FAIL 1 08155 /*!<Sigma Fail. */ 08156 #define VL53LX_RANGESTATUS_SIGNAL_FAIL 2 08157 /*!<Signal fail. */ 08158 #define VL53LX_RANGESTATUS_RANGE_VALID_MIN_RANGE_CLIPPED 3 08159 /*!<Target is below minimum detection threshold. */ 08160 #define VL53LX_RANGESTATUS_OUTOFBOUNDS_FAIL 4 08161 /*!<Phase out of valid limits - different to a wrap exit. */ 08162 #define VL53LX_RANGESTATUS_HARDWARE_FAIL 5 08163 /*!<Hardware fail. */ 08164 #define VL53LX_RANGESTATUS_RANGE_VALID_NO_WRAP_CHECK_FAIL 6 08165 /*!<The Range is valid but the wraparound check has not been done. */ 08166 #define VL53LX_RANGESTATUS_WRAP_TARGET_FAIL 7 08167 /*!<Wrapped target - no matching phase in other VCSEL period timing. */ 08168 #define VL53LX_RANGESTATUS_PROCESSING_FAIL 8 08169 /*!<Internal algo underflow or overflow in lite ranging. */ 08170 #define VL53LX_RANGESTATUS_XTALK_SIGNAL_FAIL 9 08171 /*!<Specific to lite ranging. */ 08172 #define VL53LX_RANGESTATUS_SYNCRONISATION_INT 10 08173 /*!<1st interrupt when starting ranging in back to back mode. Ignore data. */ 08174 #define VL53LX_RANGESTATUS_RANGE_VALID_MERGED_PULSE 11 08175 /*!<All Range ok but object is result of multiple pulses merging together. 08176 * Used by RQL for merged pulse detection 08177 */ 08178 #define VL53LX_RANGESTATUS_TARGET_PRESENT_LACK_OF_SIGNAL 12 08179 /*!<Used by RQL as different to phase fail. */ 08180 #define VL53LX_RANGESTATUS_MIN_RANGE_FAIL 13 08181 /*!<Unexpected error in SPAD Array.*/ 08182 #define VL53LX_RANGESTATUS_RANGE_INVALID 14 08183 /*!<lld returned valid range but negative value ! */ 08184 #define VL53LX_RANGESTATUS_NONE 255 08185 /*!<No Update. */ 08186 08187 /** @} VL53LX_define_RangeStatus_group */ 08188 08189 08190 /** @brief Contains the Internal data of the Bare Driver 08191 */ 08192 08193 typedef struct { 08194 VL53LX_LLDriverData_t LLData; 08195 /*!< Low Level Driver data structure */ 08196 08197 VL53LX_LLDriverResults_t llresults; 08198 /*!< Low Level Driver data structure */ 08199 08200 VL53LX_DeviceParameters_t CurrentParameters; 08201 /*!< Current Device Parameter */ 08202 08203 } VL53LX_DevData_t; 08204 08205 08206 /* MACRO Definitions */ 08207 /** @defgroup VL53LX_define_GeneralMacro_group General Macro Defines 08208 * General Macro Defines 08209 * @{ 08210 */ 08211 08212 /* Defines */ 08213 #define VL53LX_SETPARAMETERFIELD(Dev, field, value) \ 08214 (VL53LXDevDataSet(Dev, CurrentParameters.field, value)) 08215 08216 #define VL53LX_GETPARAMETERFIELD(Dev, field, variable) \ 08217 (variable = VL53LXDevDataGet(Dev, CurrentParameters).field) 08218 08219 #define VL53LX_SETARRAYPARAMETERFIELD(Dev, field, index, value) \ 08220 (VL53LXDevDataSet(Dev, CurrentParameters.field[index], value)) 08221 08222 #define VL53LX_GETARRAYPARAMETERFIELD(Dev, field, index, variable) \ 08223 (variable = VL53LXDevDataGet(Dev, CurrentParameters).field[index]) 08224 08225 #define VL53LX_SETDEVICESPECIFICPARAMETER(Dev, field, value) \ 08226 (VL53LXDevDataSet(Dev, DeviceSpecificParameters.field, value)) 08227 08228 #define VL53LX_GETDEVICESPECIFICPARAMETER(Dev, field) \ 08229 (VL53LXDevDataGet(Dev, DeviceSpecificParameters).field) 08230 08231 08232 #define VL53LX_FIXPOINT1616TOFIXPOINT44(Value) \ 08233 (uint16_t)((Value>>12)&0xFFFF) 08234 #define VL53LX_FIXPOINT44TOFIXPOINT1616(Value) \ 08235 (FixPoint1616_t)((uint32_t)Value<<12) 08236 08237 #define VL53LX_FIXPOINT1616TOFIXPOINT72(Value) \ 08238 (uint16_t)((Value>>14)&0xFFFF) 08239 #define VL53LX_FIXPOINT72TOFIXPOINT1616(Value) \ 08240 (FixPoint1616_t)((uint32_t)Value<<14) 08241 08242 #define VL53LX_FIXPOINT1616TOFIXPOINT97(Value) \ 08243 (uint16_t)((Value>>9)&0xFFFF) 08244 #define VL53LX_FIXPOINT97TOFIXPOINT1616(Value) \ 08245 (FixPoint1616_t)((uint32_t)Value<<9) 08246 08247 #define VL53LX_FIXPOINT1616TOFIXPOINT88(Value) \ 08248 (uint16_t)((Value>>8)&0xFFFF) 08249 #define VL53LX_FIXPOINT88TOFIXPOINT1616(Value) \ 08250 (FixPoint1616_t)((uint32_t)Value<<8) 08251 08252 #define VL53LX_FIXPOINT1616TOFIXPOINT412(Value) \ 08253 (uint16_t)((Value>>4)&0xFFFF) 08254 #define VL53LX_FIXPOINT412TOFIXPOINT1616(Value) \ 08255 (FixPoint1616_t)((uint32_t)Value<<4) 08256 08257 #define VL53LX_FIXPOINT1616TOFIXPOINT313(Value) \ 08258 (uint16_t)((Value>>3)&0xFFFF) 08259 #define VL53LX_FIXPOINT313TOFIXPOINT1616(Value) \ 08260 (FixPoint1616_t)((uint32_t)Value<<3) 08261 08262 #define VL53LX_FIXPOINT1616TOFIXPOINT08(Value) \ 08263 (uint8_t)((Value>>8)&0x00FF) 08264 #define VL53LX_FIXPOINT08TOFIXPOINT1616(Value) \ 08265 (FixPoint1616_t)((uint32_t)Value<<8) 08266 08267 #define VL53LX_FIXPOINT1616TOFIXPOINT53(Value) \ 08268 (uint8_t)((Value>>13)&0x00FF) 08269 #define VL53LX_FIXPOINT53TOFIXPOINT1616(Value) \ 08270 (FixPoint1616_t)((uint32_t)Value<<13) 08271 08272 #define VL53LX_FIXPOINT1616TOFIXPOINT102(Value) \ 08273 (uint16_t)((Value>>14)&0x0FFF) 08274 #define VL53LX_FIXPOINT102TOFIXPOINT1616(Value) \ 08275 (FixPoint1616_t)((uint32_t)Value<<14) 08276 08277 #define VL53LX_FIXPOINT1616TOFIXPOINT142(Value) \ 08278 (uint16_t)((Value>>14)&0xFFFF) 08279 #define VL53LX_FIXPOINT142TOFIXPOINT1616(Value) \ 08280 (FixPoint1616_t)((uint32_t)Value<<14) 08281 08282 #define VL53LX_FIXPOINT1616TOFIXPOINT160(Value) \ 08283 (uint16_t)((Value>>16)&0xFFFF) 08284 #define VL53LX_FIXPOINT160TOFIXPOINT1616(Value) \ 08285 (FixPoint1616_t)((uint32_t)Value<<16) 08286 08287 #define VL53LX_MAKEUINT16(lsb, msb) (uint16_t)((((uint16_t)msb)<<8) + \ 08288 (uint16_t)lsb) 08289 08290 #ifndef SUPPRESS_UNUSED_WARNING 08291 #define SUPPRESS_UNUSED_WARNING(x) ((void) (x)) 08292 #endif 08293 08294 /** @} VL53LX_define_GeneralMacro_group */ 08295 08296 /** @} VL53LX_globaldefine_group */ 08297 08298 08299 08300 08301 /* vl53lx_xtalk_private_structs.h */ 08302 08303 08304 #define VL53LX_D_012 4 08305 08306 08307 08308 08309 08310 08311 08312 08313 08314 typedef struct { 08315 08316 08317 08318 08319 08320 uint32_t VL53LX_p_061[VL53LX_D_012]; 08321 08322 08323 08324 int16_t VL53LX_p_059; 08325 08326 08327 int16_t VL53LX_p_060; 08328 08329 08330 08331 VL53LX_histogram_bin_data_t VL53LX_p_056; 08332 08333 08334 VL53LX_histogram_bin_data_t VL53LX_p_057; 08335 08336 08337 08338 08339 uint32_t VL53LX_p_058; 08340 08341 08342 08343 uint32_t VL53LX_p_062[VL53LX_XTALK_HISTO_BINS]; 08344 08345 08346 08347 } VL53LX_xtalk_algo_data_t; 08348 08349 08350 /*vl53lx_platform_user_data*/ 08351 08352 #include <stdlib.h> 08353 //#include "Wire.h" 08354 /* 08355 08356 typedef struct { 08357 VL53LX_DevData_t Data; 08358 //!< Low Level Driver data structure 08359 uint8_t i2c_slave_address; 08360 uint8_t comms_type; 08361 uint16_t comms_speed_khz; 08362 vl53L1X_DevI2C *I2cHandle; 08363 uint8_t I2cDevAddr; 08364 int Present; 08365 int Enabled; 08366 int LoopState; 08367 int FirstStreamCountZero; 08368 int Idle; 08369 int Ready; 08370 uint8_t RangeStatus; 08371 FixPoint1616_t SignalRateRtnMegaCps; 08372 VL53LX_DeviceState device_state; //!< Device State 08373 } VL53LX_Dev_t; 08374 08375 typedef VL53LX_Dev_t *VL53LX_DEV; 08376 */ 08377 /** 08378 * @def VL53LXDevDataGet 08379 * @brief Get ST private structure @a VL53LX_DevData_t data access 08380 * 08381 * @param Dev Device Handle 08382 * @param field ST structure field name 08383 * It maybe used and as real data "ref" not just as "get" for sub-structure item 08384 * like VL53L1DevDataGet(FilterData.field)[i] or 08385 * VL53L1DevDataGet(FilterData.MeasurementIndex)++ 08386 */ 08387 #define VL53LXDevDataGet(Dev, field) (Dev->Data.field) 08388 08389 /** 08390 * @def VL53LXDevDataSet(Dev, field, data) 08391 * @brief Set ST private structure @a VL53LX_DevData_t data field 08392 * @param Dev Device Handle 08393 * @param field ST structure field name 08394 * @param data Data to be set 08395 */ 08396 #define VL53LXDevDataSet(Dev, field, data) ((Dev->Data.field) = (data)) 08397 08398 #define PALDevDataGet(Dev, field) (Dev->Data.field) 08399 08400 #define PALDevDataSet(Dev, field, VL53LX_PRM_00005) (Dev->Data.field)=(VL53LX_PRM_00005) 08401 08402 #define VL53LXDevStructGetLLDriverHandle(Dev) (&Dev -> Data.LLData) 08403 08404 #define VL53LXDevStructGetLLResultsHandle(Dev) (&Dev -> Data.llresults) 08405 08406 08407 /* vl53lx_hist_map.h */ 08408 08409 08410 #define VL53LX_HISTOGRAM_CONFIG__OPCODE_SEQUENCE_0 \ 08411 VL53LX_SIGMA_ESTIMATOR__EFFECTIVE_PULSE_WIDTH_NS 08412 08413 #define VL53LX_HISTOGRAM_CONFIG__OPCODE_SEQUENCE_1 \ 08414 VL53LX_SIGMA_ESTIMATOR__EFFECTIVE_AMBIENT_WIDTH_NS 08415 08416 #define VL53LX_HISTOGRAM_CONFIG__OPCODE_SEQUENCE_2 \ 08417 VL53LX_SIGMA_ESTIMATOR__SIGMA_REF_MM 08418 08419 #define VL53LX_HISTOGRAM_CONFIG__AMB_THRESH_HIGH \ 08420 VL53LX_ALGO__RANGE_IGNORE_THRESHOLD_MCPS 08421 08422 08423 08424 08425 #define VL53LX_RESULT__HISTOGRAM_BIN_0_2 0x008E 08426 #define VL53LX_RESULT__HISTOGRAM_BIN_0_1 0x008F 08427 #define VL53LX_RESULT__HISTOGRAM_BIN_0_0 0x0090 08428 08429 #define VL53LX_RESULT__HISTOGRAM_BIN_23_2 0x00D3 08430 #define VL53LX_RESULT__HISTOGRAM_BIN_23_1 0x00D4 08431 #define VL53LX_RESULT__HISTOGRAM_BIN_23_0 0x00D5 08432 08433 #define VL53LX_RESULT__HISTOGRAM_BIN_23_0_MSB 0x00D9 08434 #define VL53LX_RESULT__HISTOGRAM_BIN_23_0_LSB 0x00DA 08435 08436 08437 08438 #define VL53LX_HISTOGRAM_BIN_DATA_I2C_INDEX \ 08439 VL53LX_RESULT__INTERRUPT_STATUS 08440 #define VL53LX_HISTOGRAM_BIN_DATA_I2C_SIZE_BYTES \ 08441 (VL53LX_RESULT__HISTOGRAM_BIN_23_0_LSB - \ 08442 VL53LX_RESULT__INTERRUPT_STATUS + 1) 08443 08444 08445 /* vl53lx_nvm_structs.h */ 08446 08447 typedef struct { 08448 08449 uint16_t result__actual_effective_rtn_spads; 08450 uint8_t ref_spad_array__num_requested_ref_spads; 08451 uint8_t ref_spad_array__ref_location; 08452 uint16_t result__peak_signal_count_rate_rtn_mcps; 08453 uint16_t result__ambient_count_rate_rtn_mcps; 08454 uint16_t result__peak_signal_count_rate_ref_mcps; 08455 uint16_t result__ambient_count_rate_ref_mcps; 08456 uint16_t measured_distance_mm; 08457 uint16_t measured_distance_stdev_mm; 08458 } VL53LX_decoded_nvm_fmt_range_data_t; 08459 08460 08461 typedef struct { 08462 08463 char nvm__fmt__fgc[19]; 08464 uint8_t nvm__fmt__test_program_major; 08465 uint8_t nvm__fmt__test_program_minor; 08466 uint8_t nvm__fmt__map_major; 08467 uint8_t nvm__fmt__map_minor; 08468 uint8_t nvm__fmt__year; 08469 uint8_t nvm__fmt__month; 08470 uint8_t nvm__fmt__day; 08471 uint8_t nvm__fmt__module_date_phase; 08472 uint16_t nvm__fmt__time; 08473 uint8_t nvm__fmt__tester_id; 08474 uint8_t nvm__fmt__site_id; 08475 uint8_t nvm__ews__test_program_major; 08476 uint8_t nvm__ews__test_program_minor; 08477 uint8_t nvm__ews__probe_card_major; 08478 uint8_t nvm__ews__probe_card_minor; 08479 uint8_t nvm__ews__tester_id; 08480 char nvm__ews__lot[8]; 08481 uint8_t nvm__ews__wafer; 08482 uint8_t nvm__ews__xcoord; 08483 uint8_t nvm__ews__ycoord; 08484 } VL53LX_decoded_nvm_fmt_info_t; 08485 08486 08487 typedef struct { 08488 08489 uint8_t nvm__ews__test_program_major; 08490 uint8_t nvm__ews__test_program_minor; 08491 uint8_t nvm__ews__probe_card_major; 08492 uint8_t nvm__ews__probe_card_minor; 08493 uint8_t nvm__ews__tester_id; 08494 char nvm__ews__lot[8]; 08495 uint8_t nvm__ews__wafer; 08496 uint8_t nvm__ews__xcoord; 08497 uint8_t nvm__ews__ycoord; 08498 } VL53LX_decoded_nvm_ews_info_t; 08499 08500 08501 typedef struct { 08502 uint8_t nvm__identification_model_id; 08503 uint8_t nvm__identification_module_type; 08504 uint8_t nvm__identification_revision_id; 08505 uint16_t nvm__identification_module_id; 08506 uint8_t nvm__i2c_valid; 08507 uint8_t nvm__i2c_device_address_ews; 08508 uint16_t nvm__ews__fast_osc_frequency; 08509 uint8_t nvm__ews__fast_osc_trim_max; 08510 uint8_t nvm__ews__fast_osc_freq_set; 08511 uint16_t nvm__ews__slow_osc_calibration; 08512 uint16_t nvm__fmt__fast_osc_frequency; 08513 uint8_t nvm__fmt__fast_osc_trim_max; 08514 uint8_t nvm__fmt__fast_osc_freq_set; 08515 uint16_t nvm__fmt__slow_osc_calibration; 08516 uint8_t nvm__vhv_config_unlock; 08517 uint8_t nvm__ref_selvddpix; 08518 uint8_t nvm__ref_selvquench; 08519 uint8_t nvm__regavdd1v2_sel; 08520 uint8_t nvm__regdvdd1v2_sel; 08521 uint8_t nvm__vhv_timeout__macrop; 08522 uint8_t nvm__vhv_loop_bound; 08523 uint8_t nvm__vhv_count_threshold; 08524 uint8_t nvm__vhv_offset; 08525 uint8_t nvm__vhv_init_enable; 08526 uint8_t nvm__vhv_init_value; 08527 uint8_t nvm__laser_safety_vcsel_trim_ll; 08528 uint8_t nvm__laser_safety_vcsel_selion_ll; 08529 uint8_t nvm__laser_safety_vcsel_selion_max_ll; 08530 uint8_t nvm__laser_safety_mult_ll; 08531 uint8_t nvm__laser_safety_clip_ll; 08532 uint8_t nvm__laser_safety_vcsel_trim_ld; 08533 uint8_t nvm__laser_safety_vcsel_selion_ld; 08534 uint8_t nvm__laser_safety_vcsel_selion_max_ld; 08535 uint8_t nvm__laser_safety_mult_ld; 08536 uint8_t nvm__laser_safety_clip_ld; 08537 uint8_t nvm__laser_safety_lock_byte; 08538 uint8_t nvm__laser_safety_unlock_byte; 08539 uint8_t nvm__ews__spad_enables_rtn[VL53LX_RTN_SPAD_BUFFER_SIZE]; 08540 uint8_t nvm__ews__spad_enables_ref__loc1[VL53LX_REF_SPAD_BUFFER_SIZE]; 08541 uint8_t nvm__ews__spad_enables_ref__loc2[VL53LX_REF_SPAD_BUFFER_SIZE]; 08542 uint8_t nvm__ews__spad_enables_ref__loc3[VL53LX_REF_SPAD_BUFFER_SIZE]; 08543 uint8_t nvm__fmt__spad_enables_rtn[VL53LX_RTN_SPAD_BUFFER_SIZE]; 08544 uint8_t nvm__fmt__spad_enables_ref__loc1[VL53LX_REF_SPAD_BUFFER_SIZE]; 08545 uint8_t nvm__fmt__spad_enables_ref__loc2[VL53LX_REF_SPAD_BUFFER_SIZE]; 08546 uint8_t nvm__fmt__spad_enables_ref__loc3[VL53LX_REF_SPAD_BUFFER_SIZE]; 08547 uint8_t nvm__fmt__roi_config__mode_roi_centre_spad; 08548 uint8_t nvm__fmt__roi_config__mode_roi_x_size; 08549 uint8_t nvm__fmt__roi_config__mode_roi_y_size; 08550 uint8_t nvm__fmt__ref_spad_apply__num_requested_ref_spad; 08551 uint8_t nvm__fmt__ref_spad_man__ref_location; 08552 uint16_t nvm__fmt__mm_config__inner_offset_mm; 08553 uint16_t nvm__fmt__mm_config__outer_offset_mm; 08554 uint16_t nvm__fmt__algo_part_to_part_range_offset_mm; 08555 uint16_t nvm__fmt__algo__crosstalk_compensation_plane_offset_kcps; 08556 uint16_t nvm__fmt__algo__crosstalk_compensation_x_plane_gradient_kcps; 08557 uint16_t nvm__fmt__algo__crosstalk_compensation_y_plane_gradient_kcps; 08558 uint8_t nvm__fmt__spare__host_config__nvm_config_spare_0; 08559 uint8_t nvm__fmt__spare__host_config__nvm_config_spare_1; 08560 uint8_t nvm__customer_space_programmed; 08561 uint8_t nvm__cust__i2c_device_address; 08562 uint8_t nvm__cust__ref_spad_apply__num_requested_ref_spad; 08563 uint8_t nvm__cust__ref_spad_man__ref_location; 08564 uint16_t nvm__cust__mm_config__inner_offset_mm; 08565 uint16_t nvm__cust__mm_config__outer_offset_mm; 08566 uint16_t nvm__cust__algo_part_to_part_range_offset_mm; 08567 uint16_t nvm__cust__algo__crosstalk_compensation_plane_offset_kcps; 08568 uint16_t nvm__cust__algo__crosstalk_compensation_x_plane_gradient_kcps; 08569 uint16_t nvm__cust__algo__crosstalk_compensation_y_plane_gradient_kcps; 08570 uint8_t nvm__cust__spare__host_config__nvm_config_spare_0; 08571 uint8_t nvm__cust__spare__host_config__nvm_config_spare_1; 08572 VL53LX_optical_centre_t fmt_optical_centre; 08573 VL53LX_cal_peak_rate_map_t fmt_peak_rate_map; 08574 VL53LX_additional_offset_cal_data_t fmt_add_offset_data; 08575 08576 VL53LX_decoded_nvm_fmt_range_data_t 08577 fmt_range_data[VL53LX_NVM_MAX_FMT_RANGE_DATA]; 08578 08579 VL53LX_decoded_nvm_fmt_info_t fmt_info; 08580 VL53LX_decoded_nvm_ews_info_t ews_info; 08581 08582 } VL53LX_decoded_nvm_data_t; 08583 08584 08585 08586 #ifdef __cplusplus 08587 } 08588 #endif 08589 08590 #endif /* _VL53LX_DEF_H_ */
Generated on Fri Jul 15 2022 05:39:18 by
