1 /* 2 * Copyright (c) 2017, STMicroelectronics - All Rights Reserved 3 * 4 * This file is part of VL53L1 Core and is dual licensed, 5 * either 'STMicroelectronics 6 * Proprietary license' 7 * or 'BSD 3-clause "New" or "Revised" License' , at your option. 8 * 9 ******************************************************************************** 10 * 11 * 'STMicroelectronics Proprietary license' 12 * 13 ******************************************************************************** 14 * 15 * License terms: STMicroelectronics Proprietary in accordance with licensing 16 * terms at www.st.com/sla0081 17 * 18 * STMicroelectronics confidential 19 * Reproduction and Communication of this document is strictly prohibited unless 20 * specifically authorized in writing by STMicroelectronics. 21 * 22 * 23 ******************************************************************************** 24 * 25 * Alternatively, VL53L1 Core may be distributed under the terms of 26 * 'BSD 3-clause "New" or "Revised" License', in which case the following 27 * provisions apply instead of the ones mentioned above : 28 * 29 ******************************************************************************** 30 * 31 * License terms: BSD 3-clause "New" or "Revised" License. 32 * 33 * Redistribution and use in source and binary forms, with or without 34 * modification, are permitted provided that the following conditions are met: 35 * 36 * 1. Redistributions of source code must retain the above copyright notice, this 37 * list of conditions and the following disclaimer. 38 * 39 * 2. Redistributions in binary form must reproduce the above copyright notice, 40 * this list of conditions and the following disclaimer in the documentation 41 * and/or other materials provided with the distribution. 42 * 43 * 3. Neither the name of the copyright holder nor the names of its contributors 44 * may be used to endorse or promote products derived from this software 45 * without specific prior written permission. 46 * 47 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 48 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 49 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 50 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 51 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 52 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 53 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 54 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 55 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 56 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 57 * 58 * 59 ******************************************************************************** 60 * 61 */ 62 63 /** 64 * @file vl53l1_ll_device.h 65 * 66 * @brief LL Driver Device specific defines. To be adapted by implementer for the 67 * targeted device. 68 */ 69 70 #ifndef _VL53L1_LL_DEVICE_H_ 71 #define _VL53L1_LL_DEVICE_H_ 72 73 #include "vl53l1_types.h" 74 #include "vl53l1_platform_user_config.h" 75 76 #define VL53L1_I2C 0x01 77 #define VL53L1_SPI 0x00 78 79 80 /** @defgroup VL53L1_DevSpecDefines_group VL53L1 Device Specific Defines 81 * @brief VL53L1 cut1.0 Device Specific Defines 82 * @{ 83 */ 84 85 /** @defgroup VL53L1_define_WaitMethod_group Defines Wait method used 86 * For example blocking versus non blocking 87 * @{ 88 */ 89 typedef uint8_t VL53L1_WaitMethod; 90 91 #define VL53L1_WAIT_METHOD_BLOCKING ((VL53L1_WaitMethod) 0) 92 #define VL53L1_WAIT_METHOD_NON_BLOCKING ((VL53L1_WaitMethod) 1) 93 94 /** @} end of VL53L1_define_WaitMethod_group */ 95 96 /** @defgroup VL53L1_define_DeviceState_group Device State 97 * 98 * @brief Defines all possible device states for the device 99 * @{ 100 */ 101 typedef uint8_t VL53L1_DeviceState; 102 103 #define VL53L1_DEVICESTATE_POWERDOWN ((VL53L1_DeviceState) 0) 104 #define VL53L1_DEVICESTATE_HW_STANDBY ((VL53L1_DeviceState) 1) 105 #define VL53L1_DEVICESTATE_FW_COLDBOOT ((VL53L1_DeviceState) 2) 106 #define VL53L1_DEVICESTATE_SW_STANDBY ((VL53L1_DeviceState) 3) 107 #define VL53L1_DEVICESTATE_RANGING_DSS_AUTO ((VL53L1_DeviceState) 4) 108 #define VL53L1_DEVICESTATE_RANGING_DSS_MANUAL ((VL53L1_DeviceState) 5) 109 #define VL53L1_DEVICESTATE_RANGING_WAIT_GPH_SYNC ((VL53L1_DeviceState) 6) 110 #define VL53L1_DEVICESTATE_RANGING_GATHER_DATA ((VL53L1_DeviceState) 7) 111 #define VL53L1_DEVICESTATE_RANGING_OUTPUT_DATA ((VL53L1_DeviceState) 8) 112 113 #define VL53L1_DEVICESTATE_UNKNOWN ((VL53L1_DeviceState) 98) 114 #define VL53L1_DEVICESTATE_ERROR ((VL53L1_DeviceState) 99) 115 116 /** @} end of VL53L1_define_DeviceState_group */ 117 118 119 /** @defgroup VL53L1_define_DevicePresetModes_group Device Preset Modes 120 * 121 * @brief Defines all possible device preset modes. The integer values are 122 * kept the same as main EwokPlus driver branch 123 * @{ 124 */ 125 typedef uint8_t VL53L1_DevicePresetModes; 126 127 #define VL53L1_DEVICEPRESETMODE_NONE ((VL53L1_DevicePresetModes) 0) 128 #define VL53L1_DEVICEPRESETMODE_STANDARD_RANGING ((VL53L1_DevicePresetModes) 1) 129 #define VL53L1_DEVICEPRESETMODE_STANDARD_RANGING_SHORT_RANGE ((VL53L1_DevicePresetModes) 2) 130 #define VL53L1_DEVICEPRESETMODE_STANDARD_RANGING_LONG_RANGE ((VL53L1_DevicePresetModes) 3) 131 #define VL53L1_DEVICEPRESETMODE_STANDARD_RANGING_MM1_CAL ((VL53L1_DevicePresetModes) 4) 132 #define VL53L1_DEVICEPRESETMODE_STANDARD_RANGING_MM2_CAL ((VL53L1_DevicePresetModes) 5) 133 #define VL53L1_DEVICEPRESETMODE_TIMED_RANGING ((VL53L1_DevicePresetModes) 6) 134 #define VL53L1_DEVICEPRESETMODE_TIMED_RANGING_SHORT_RANGE ((VL53L1_DevicePresetModes) 7) 135 #define VL53L1_DEVICEPRESETMODE_TIMED_RANGING_LONG_RANGE ((VL53L1_DevicePresetModes) 8) 136 #define VL53L1_DEVICEPRESETMODE_OLT ((VL53L1_DevicePresetModes) 17) 137 #define VL53L1_DEVICEPRESETMODE_SINGLESHOT_RANGING ((VL53L1_DevicePresetModes) 18) 138 #define VL53L1_DEVICEPRESETMODE_LOWPOWERAUTO_SHORT_RANGE ((VL53L1_DevicePresetModes) 36) 139 #define VL53L1_DEVICEPRESETMODE_LOWPOWERAUTO_MEDIUM_RANGE ((VL53L1_DevicePresetModes) 37) 140 #define VL53L1_DEVICEPRESETMODE_LOWPOWERAUTO_LONG_RANGE ((VL53L1_DevicePresetModes) 38) 141 142 /** @} end of VL53L1_define_DevicePresetModes_group */ 143 144 145 /** @defgroup VL53L1_define_DeviceMeasurementModes_group Device Measurement Modes 146 * 147 * @brief Defines all possible measurement modes for the device 148 * @{ 149 */ 150 typedef uint8_t VL53L1_DeviceMeasurementModes; 151 152 #define VL53L1_DEVICEMEASUREMENTMODE_STOP ((VL53L1_DeviceMeasurementModes) 0x00) 153 #define VL53L1_DEVICEMEASUREMENTMODE_SINGLESHOT ((VL53L1_DeviceMeasurementModes) 0x10) 154 #define VL53L1_DEVICEMEASUREMENTMODE_BACKTOBACK ((VL53L1_DeviceMeasurementModes) 0x20) 155 #define VL53L1_DEVICEMEASUREMENTMODE_TIMED ((VL53L1_DeviceMeasurementModes) 0x40) 156 #define VL53L1_DEVICEMEASUREMENTMODE_ABORT ((VL53L1_DeviceMeasurementModes) 0x80) 157 158 /** @} VL53L1_define_DeviceMeasurementModes_group */ 159 160 /** @defgroup VL53L1_define_OffsetCalibrationModes_group Device Offset Calibration Mode 161 * 162 * @brief Defines possible offset calibration modes for the device 163 * @{ 164 */ 165 typedef uint8_t VL53L1_OffsetCalibrationMode; 166 167 #define VL53L1_OFFSETCALIBRATIONMODE__NONE ((VL53L1_OffsetCalibrationMode) 0) 168 #define VL53L1_OFFSETCALIBRATIONMODE__MM1_MM2__STANDARD ((VL53L1_OffsetCalibrationMode) 1) 169 #define VL53L1_OFFSETCALIBRATIONMODE__MM1_MM2__HISTOGRAM ((VL53L1_OffsetCalibrationMode) 2) 170 #define VL53L1_OFFSETCALIBRATIONMODE__MM1_MM2__STANDARD_PRE_RANGE_ONLY ((VL53L1_OffsetCalibrationMode) 3) 171 #define VL53L1_OFFSETCALIBRATIONMODE__MM1_MM2__HISTOGRAM_PRE_RANGE_ONLY ((VL53L1_OffsetCalibrationMode) 4) 172 #define VL53L1_OFFSETCALIBRATIONMODE__PER_ZONE ((VL53L1_OffsetCalibrationMode) 5) 173 174 /** @} VL53L1_define_OffsetCalibrationModes_group */ 175 176 177 /** @defgroup VL53L1_define_OffsetCalibrationModes_group Device Offset Correction Mode 178 * 179 * @brief Defines all possible offset correction modes for the device 180 * @{ 181 */ 182 typedef uint8_t VL53L1_OffsetCorrectionMode; 183 184 #define VL53L1_OFFSETCORRECTIONMODE__NONE ((VL53L1_OffsetCorrectionMode) 0) 185 #define VL53L1_OFFSETCORRECTIONMODE__MM1_MM2_OFFSETS ((VL53L1_OffsetCorrectionMode) 1) 186 #define VL53L1_OFFSETCORRECTIONMODE__PER_ZONE_OFFSETS ((VL53L1_OffsetCorrectionMode) 2) 187 188 /** @} VL53L1_define_OffsetCalibrationModes_group */ 189 190 191 192 /** @defgroup VL53L1_DeviceSequenceConfig_group Device Sequence Config 193 * 194 * @brief Individual bit enables for each stage in the ranging scheduler 195 * The values below encode the bit shift for each bit 196 * @{ 197 */ 198 typedef uint8_t VL53L1_DeviceSequenceConfig; 199 200 #define VL53L1_DEVICESEQUENCECONFIG_VHV ((VL53L1_DeviceSequenceConfig) 0) 201 #define VL53L1_DEVICESEQUENCECONFIG_PHASECAL ((VL53L1_DeviceSequenceConfig) 1) 202 #define VL53L1_DEVICESEQUENCECONFIG_REFERENCE_PHASE ((VL53L1_DeviceSequenceConfig) 2) 203 #define VL53L1_DEVICESEQUENCECONFIG_DSS1 ((VL53L1_DeviceSequenceConfig) 3) 204 #define VL53L1_DEVICESEQUENCECONFIG_DSS2 ((VL53L1_DeviceSequenceConfig) 4) 205 #define VL53L1_DEVICESEQUENCECONFIG_MM1 ((VL53L1_DeviceSequenceConfig) 5) 206 #define VL53L1_DEVICESEQUENCECONFIG_MM2 ((VL53L1_DeviceSequenceConfig) 6) 207 #define VL53L1_DEVICESEQUENCECONFIG_RANGE ((VL53L1_DeviceSequenceConfig) 7) 208 209 /** @} VL53L1_DeviceSequenceConfig_group */ 210 211 212 /** @defgroup VL53L1_DeviceInterruptPolarity_group Device Interrupt Polarity 213 * 214 * @brief Device Interrupt Polarity 215 * @{ 216 */ 217 typedef uint8_t VL53L1_DeviceInterruptPolarity; 218 219 #define VL53L1_DEVICEINTERRUPTPOLARITY_ACTIVE_HIGH ((VL53L1_DeviceInterruptPolarity) 0x00) 220 #define VL53L1_DEVICEINTERRUPTPOLARITY_ACTIVE_LOW ((VL53L1_DeviceInterruptPolarity) 0x10) 221 #define VL53L1_DEVICEINTERRUPTPOLARITY_BIT_MASK ((VL53L1_DeviceInterruptPolarity) 0x10) 222 #define VL53L1_DEVICEINTERRUPTPOLARITY_CLEAR_MASK ((VL53L1_DeviceInterruptPolarity) 0xEF) 223 224 /** @} VL53L1_DeviceInterruptPolarity_group */ 225 226 227 /** @defgroup VL53L1_DeviceGpioMode_group Device GPIO Mode 228 * 229 * @brief Device Gpio Mode 230 * @{ 231 */ 232 typedef uint8_t VL53L1_DeviceGpioMode; 233 234 #define VL53L1_DEVICEGPIOMODE_OUTPUT_CONSTANT_ZERO ((VL53L1_DeviceGpioMode) 0x00) 235 #define VL53L1_DEVICEGPIOMODE_OUTPUT_RANGE_AND_ERROR_INTERRUPTS ((VL53L1_DeviceGpioMode) 0x01) 236 #define VL53L1_DEVICEGPIOMODE_OUTPUT_TIMIER_INTERRUPTS ((VL53L1_DeviceGpioMode) 0x02) 237 #define VL53L1_DEVICEGPIOMODE_OUTPUT_RANGE_MODE_INTERRUPT_STATUS ((VL53L1_DeviceGpioMode) 0x03) 238 #define VL53L1_DEVICEGPIOMODE_OUTPUT_SLOW_OSCILLATOR_CLOCK ((VL53L1_DeviceGpioMode) 0x04) 239 #define VL53L1_DEVICEGPIOMODE_BIT_MASK ((VL53L1_DeviceGpioMode) 0x0F) 240 #define VL53L1_DEVICEGPIOMODE_CLEAR_MASK ((VL53L1_DeviceGpioMode) 0xF0) 241 242 /** @} VL53L1_DeviceGpioMode_group */ 243 244 245 /** @defgroup VL53L1_DeviceError_group Device Error 246 * 247 * @brief Device Error code in the range status 248 * 249 * This enum is Device specific it should be updated in the implementation 250 * Use @a VL53L1_GetStatusErrorString() to get the string. 251 * It is related to Status Register of the Device. 252 * @{ 253 */ 254 typedef uint8_t VL53L1_DeviceError; 255 256 #define VL53L1_DEVICEERROR_NOUPDATE ((VL53L1_DeviceError) 0) 257 /*!< 0 No Update */ 258 #define VL53L1_DEVICEERROR_VCSELCONTINUITYTESTFAILURE ((VL53L1_DeviceError) 1) 259 #define VL53L1_DEVICEERROR_VCSELWATCHDOGTESTFAILURE ((VL53L1_DeviceError) 2) 260 #define VL53L1_DEVICEERROR_NOVHVVALUEFOUND ((VL53L1_DeviceError) 3) 261 #define VL53L1_DEVICEERROR_MSRCNOTARGET ((VL53L1_DeviceError) 4) 262 #define VL53L1_DEVICEERROR_RANGEPHASECHECK ((VL53L1_DeviceError) 5) 263 #define VL53L1_DEVICEERROR_SIGMATHRESHOLDCHECK ((VL53L1_DeviceError) 6) 264 #define VL53L1_DEVICEERROR_PHASECONSISTENCY ((VL53L1_DeviceError) 7) 265 #define VL53L1_DEVICEERROR_MINCLIP ((VL53L1_DeviceError) 8) 266 #define VL53L1_DEVICEERROR_RANGECOMPLETE ((VL53L1_DeviceError) 9) 267 #define VL53L1_DEVICEERROR_ALGOUNDERFLOW ((VL53L1_DeviceError) 10) 268 #define VL53L1_DEVICEERROR_ALGOOVERFLOW ((VL53L1_DeviceError) 11) 269 #define VL53L1_DEVICEERROR_RANGEIGNORETHRESHOLD ((VL53L1_DeviceError) 12) 270 #define VL53L1_DEVICEERROR_USERROICLIP ((VL53L1_DeviceError) 13) 271 #define VL53L1_DEVICEERROR_REFSPADCHARNOTENOUGHDPADS ((VL53L1_DeviceError) 14) 272 #define VL53L1_DEVICEERROR_REFSPADCHARMORETHANTARGET ((VL53L1_DeviceError) 15) 273 #define VL53L1_DEVICEERROR_REFSPADCHARLESSTHANTARGET ((VL53L1_DeviceError) 16) 274 #define VL53L1_DEVICEERROR_MULTCLIPFAIL ((VL53L1_DeviceError) 17) 275 #define VL53L1_DEVICEERROR_GPHSTREAMCOUNT0READY ((VL53L1_DeviceError) 18) 276 #define VL53L1_DEVICEERROR_RANGECOMPLETE_NO_WRAP_CHECK ((VL53L1_DeviceError) 19) 277 #define VL53L1_DEVICEERROR_EVENTCONSISTENCY ((VL53L1_DeviceError) 20) 278 #define VL53L1_DEVICEERROR_MINSIGNALEVENTCHECK ((VL53L1_DeviceError) 21) 279 #define VL53L1_DEVICEERROR_RANGECOMPLETE_MERGED_PULSE ((VL53L1_DeviceError) 22) 280 281 /* Patch_NewDeviceErrorCodePrevRangeNoTargets_11786 */ 282 #define VL53L1_DEVICEERROR_PREV_RANGE_NO_TARGETS ((VL53L1_DeviceError) 23) 283 284 /** @} end of VL53L1_DeviceError_group */ 285 286 287 /** @defgroup VL53L1_DeviceReportStatus_group Device Report Status 288 * @brief Device Report Status code 289 * 290 * @{ 291 */ 292 typedef uint8_t VL53L1_DeviceReportStatus; 293 294 #define VL53L1_DEVICEREPORTSTATUS_NOUPDATE ((VL53L1_DeviceReportStatus) 0) 295 /*!< 0 No Update */ 296 #define VL53L1_DEVICEREPORTSTATUS_ROI_SETUP ((VL53L1_DeviceReportStatus) 1) 297 #define VL53L1_DEVICEREPORTSTATUS_VHV ((VL53L1_DeviceReportStatus) 2) 298 #define VL53L1_DEVICEREPORTSTATUS_PHASECAL ((VL53L1_DeviceReportStatus) 3) 299 #define VL53L1_DEVICEREPORTSTATUS_REFERENCE_PHASE ((VL53L1_DeviceReportStatus) 4) 300 #define VL53L1_DEVICEREPORTSTATUS_DSS1 ((VL53L1_DeviceReportStatus) 5) 301 #define VL53L1_DEVICEREPORTSTATUS_DSS2 ((VL53L1_DeviceReportStatus) 6) 302 #define VL53L1_DEVICEREPORTSTATUS_MM1 ((VL53L1_DeviceReportStatus) 7) 303 #define VL53L1_DEVICEREPORTSTATUS_MM2 ((VL53L1_DeviceReportStatus) 8) 304 #define VL53L1_DEVICEREPORTSTATUS_RANGE ((VL53L1_DeviceReportStatus) 9) 305 #define VL53L1_DEVICEREPORTSTATUS_HISTOGRAM ((VL53L1_DeviceReportStatus) 10) 306 307 /** @} end of VL53L1_DeviceReportStatus_group */ 308 309 /** @defgroup VL53L1_DeviceDssMode_group Dynamic SPAD Selection Mode 310 * @brief Selects the device Dynamic SPAD Selection Mode 311 * @{ 312 */ 313 314 typedef uint8_t VL53L1_DeviceDssMode; 315 316 #define VL53L1_DEVICEDSSMODE__DISABLED \ 317 ((VL53L1_DeviceDssMode) 0) 318 #define VL53L1_DEVICEDSSMODE__TARGET_RATE \ 319 ((VL53L1_DeviceDssMode) 1) 320 #define VL53L1_DEVICEDSSMODE__REQUESTED_EFFFECTIVE_SPADS \ 321 ((VL53L1_DeviceDssMode) 2) 322 #define VL53L1_DEVICEDSSMODE__BLOCK_SELECT \ 323 ((VL53L1_DeviceDssMode) 3) 324 325 /** @} end of VL53L1_DeviceDssMode_group */ 326 327 /** @defgroup VL53L1_DeviceConfigLevel_group Device Config Level 328 * 329 * @brief Defines the contents of the config & start range I2C multi byte transaction 330 * @{ 331 */ 332 typedef uint8_t VL53L1_DeviceConfigLevel; 333 334 #define VL53L1_DEVICECONFIGLEVEL_SYSTEM_CONTROL \ 335 ((VL53L1_DeviceConfigLevel) 0) 336 /*!< Configs system control & start range */ 337 #define VL53L1_DEVICECONFIGLEVEL_DYNAMIC_ONWARDS \ 338 ((VL53L1_DeviceConfigLevel) 1) 339 /*!< Dynamic config onwards (dynamic_config, system_control) & start range */ 340 #define VL53L1_DEVICECONFIGLEVEL_TIMING_ONWARDS \ 341 ((VL53L1_DeviceConfigLevel) 2) 342 /*!< Dynamic config onwards (timing config, dynamic_config, system_control) & 343 start range */ 344 #define VL53L1_DEVICECONFIGLEVEL_GENERAL_ONWARDS \ 345 ((VL53L1_DeviceConfigLevel) 3) 346 /*!< General config onwards (general_config, timing config, dynamic_config, 347 system_control) & start range */ 348 #define VL53L1_DEVICECONFIGLEVEL_STATIC_ONWARDS \ 349 ((VL53L1_DeviceConfigLevel) 4) 350 /*!< Static config onwards (static_config, general_config, timing_config, 351 dynamic_config, system_control) & start range */ 352 #define VL53L1_DEVICECONFIGLEVEL_CUSTOMER_ONWARDS \ 353 ((VL53L1_DeviceConfigLevel) 5) 354 /*!< Full device config (customer_nvm_managed, static_config, general_config, 355 timing config, dynamic_config, system_control) & start range */ 356 #define VL53L1_DEVICECONFIGLEVEL_FULL \ 357 ((VL53L1_DeviceConfigLevel) 6) 358 /*!< Full device config (static_nvm_managed, customer_nvm_managed, static_config, 359 general_config, timing config, dynamic_config, system_control) & start range */ 360 361 /** @} end of VL53L1_DeviceConfigLevel_group */ 362 363 364 /** @defgroup VL53L1_DeviceResultsLevel_group Device Results Level 365 * 366 * @brief Defines the contents of the read results I2C multi byte transaction 367 * @{ 368 */ 369 typedef uint8_t VL53L1_DeviceResultsLevel; 370 371 #define VL53L1_DEVICERESULTSLEVEL_SYSTEM_RESULTS \ 372 ((VL53L1_DeviceResultsLevel) 0) 373 /*!< Read just system_results */ 374 #define VL53L1_DEVICERESULTSLEVEL_UPTO_CORE \ 375 ((VL53L1_DeviceResultsLevel) 1) 376 /*!< Read both system and core results */ 377 #define VL53L1_DEVICERESULTSLEVEL_FULL \ 378 ((VL53L1_DeviceResultsLevel) 2) 379 /*!< Read system, core and debug results */ 380 381 /** @} end of VL53L1_DeviceResultsLevel_group */ 382 383 384 /** @defgroup VL53L1_DeviceTestMode_group Device Test Mode 385 * 386 * @brief Values below match the the TEST_MODE__CTRL register 387 * do not change 388 * @{ 389 */ 390 391 typedef uint8_t VL53L1_DeviceTestMode; 392 393 #define VL53L1_DEVICETESTMODE_NONE \ 394 ((VL53L1_DeviceTestMode) 0x00) 395 /*!< Idle */ 396 #define VL53L1_DEVICETESTMODE_NVM_ZERO \ 397 ((VL53L1_DeviceTestMode) 0x01) 398 /*!< NVM zero */ 399 #define VL53L1_DEVICETESTMODE_NVM_COPY \ 400 ((VL53L1_DeviceTestMode) 0x02) 401 /*!< NVM copy */ 402 #define VL53L1_DEVICETESTMODE_PATCH \ 403 ((VL53L1_DeviceTestMode) 0x03) 404 /*!< Patch */ 405 #define VL53L1_DEVICETESTMODE_DCR \ 406 ((VL53L1_DeviceTestMode) 0x04) 407 /*!< DCR - SPAD Self-Check (Pass if Count Rate is less than Threshold) */ 408 #define VL53L1_DEVICETESTMODE_LCR_VCSEL_OFF \ 409 ((VL53L1_DeviceTestMode) 0x05) 410 /*!< LCR - SPAD Self-Check (Pass if Count Rate is greater than Threshold 411 and VCSEL off) */ 412 #define VL53L1_DEVICETESTMODE_LCR_VCSEL_ON \ 413 ((VL53L1_DeviceTestMode) 0x06) 414 /*!< LCR - SPAD Self-Check (Pass if Count Rate is greater than Threshold 415 and VCSEL on) */ 416 #define VL53L1_DEVICETESTMODE_SPOT_CENTRE_LOCATE \ 417 ((VL53L1_DeviceTestMode) 0x07) 418 /*!< Spot centre locate */ 419 #define VL53L1_DEVICETESTMODE_REF_SPAD_CHAR_WITH_PRE_VHV \ 420 ((VL53L1_DeviceTestMode) 0x08) 421 /*!<Reference SPAD Characterisation with pre-VHV */ 422 #define VL53L1_DEVICETESTMODE_REF_SPAD_CHAR_ONLY \ 423 ((VL53L1_DeviceTestMode) 0x09) 424 /*!< Reference SPAD Characterisation Only */ 425 426 /** @} end of VL53L1_DeviceTestMode_group */ 427 428 429 /** @defgroup VL53L1_DeviceSscArray_group Device Test Mode 430 * 431 * @{ 432 */ 433 434 typedef uint8_t VL53L1_DeviceSscArray; 435 436 #define VL53L1_DEVICESSCARRAY_RTN ((VL53L1_DeviceSscArray) 0x00) 437 /*!<Return Array Rates */ 438 #define VL53L1_DEVICETESTMODE_REF ((VL53L1_DeviceSscArray) 0x01) 439 /*!< Reference Array Rates Only */ 440 441 /** @} end of VL53L1_DeviceSscArray_group */ 442 443 444 /** @defgroup VL53L1_SpadArraySelection_group SPAD Array Selection Functionality 445 * @brief SPAD array selection definitions 446 * @{ 447 */ 448 449 #define VL53L1_RETURN_ARRAY_ONLY 0x01 450 /*!< Return SPAD Array only */ 451 #define VL53L1_REFERENCE_ARRAY_ONLY 0x10 452 /*!< Reference SPAD Array only */ 453 #define VL53L1_BOTH_RETURN_AND_REFERENCE_ARRAYS 0x11 454 /*!< Both Return and Reference SPAD Arrays */ 455 #define VL53L1_NEITHER_RETURN_AND_REFERENCE_ARRAYS 0x00 456 /*!< Neither Return or Reference SPAD Array */ 457 458 /** @} end of VL53L1_SpadArraySelection_group */ 459 460 /** @defgroup VL53L1_DeviceInterruptLevel_group Interrupt Level Functionality 461 * @brief Interrupt Output Level types 462 * @{ 463 */ 464 465 #define VL53L1_DEVICEINTERRUPTLEVEL_ACTIVE_HIGH 0x00 466 /*!< Active High Interrupt */ 467 #define VL53L1_DEVICEINTERRUPTLEVEL_ACTIVE_LOW 0x10 468 /*!< Active Low Interrupt */ 469 #define VL53L1_DEVICEINTERRUPTLEVEL_ACTIVE_MASK 0x10 470 /*!< Active Bit Mask */ 471 472 /** @} end of VL53L1_DeviceInterruptLevel_group */ 473 474 /** @defgroup VL53L1_ApiCore_group Misc Functionality 475 * @brief API core specific definitions 476 * @{ 477 */ 478 479 #define VL53L1_POLLING_DELAY_US 1000 480 /*!< 1000us delay for register polling */ 481 #define VL53L1_SOFTWARE_RESET_DURATION_US 100 482 /*!< 100us software reset duration */ 483 #define VL53L1_FIRMWARE_BOOT_TIME_US 1200 484 /*!< Duration of firmware boot time for which I2C 485 access is blocked. Real Device 1ms, FPGA 15ms */ 486 #define VL53L1_ENABLE_POWERFORCE_SETTLING_TIME_US 250 487 /*!< After enabling power force a delay is required 488 to bring regulator, bandgap, oscillator time 489 to power up and settle */ 490 #define VL53L1_SPAD_ARRAY_WIDTH 16 491 /*!< SPAD array width */ 492 #define VL53L1_SPAD_ARRAY_HEIGHT 16 493 /*!< SPAD array height */ 494 #define VL53L1_NVM_SIZE_IN_BYTES 512 495 /*!< NVM (OTP) size in bytes */ 496 #define VL53L1_NO_OF_SPAD_ENABLES 256 497 /*!< Number of SPADs each SPAD array */ 498 #define VL53L1_RTN_SPAD_BUFFER_SIZE 32 499 /*!< Number of Return SPAD enable registers (bytes) */ 500 #define VL53L1_REF_SPAD_BUFFER_SIZE 6 501 /*!< Number of Reference SPAD enable registers (bytes) */ 502 #define VL53L1_AMBIENT_WINDOW_VCSEL_PERIODS 256 503 /*!< Sigma Delta Ambient window in VCSEL Periods */ 504 #define VL53L1_RANGING_WINDOW_VCSEL_PERIODS 2048 505 /*!< Sigma Delta Ranging window in VCSEL periods */ 506 #define VL53L1_MACRO_PERIOD_VCSEL_PERIODS \ 507 (VL53L1_AMBIENT_WINDOW_VCSEL_PERIODS + VL53L1_RANGING_WINDOW_VCSEL_PERIODS) 508 /*!< Macro Period in VCSEL periods */ 509 #define VL53L1_MAX_ALLOWED_PHASE 0xFFFF 510 /*!< Maximum Allowed phase 0xFFFF means 31.999 PLL Clocks */ 511 512 #define VL53L1_RTN_SPAD_UNITY_TRANSMISSION 0x0100 513 /*!< SPAD unity transmission value - 1.0 in 8.8 format */ 514 #define VL53L1_RTN_SPAD_APERTURE_TRANSMISSION 0x0038 515 /*!< Apertured SPAD transmission value - 8.8 format 516 Nominal: 5x -> 0.200000 * 256 = 51 = 0x33 517 Measured: 4.6x -> 0.217391 * 256 = 56 = 0x38 */ 518 519 #define VL53L1_SPAD_TOTAL_COUNT_MAX ((0x01 << 29) - 1) 520 /*!< Maximum SPAD count - 512Mcps * 1sec = 29bits) */ 521 #define VL53L1_SPAD_TOTAL_COUNT_RES_THRES (0x01 << 24) 522 /*!< SPAD count threshold for reduced 3-bit fractional resolution */ 523 #define VL53L1_COUNT_RATE_INTERNAL_MAX ((0x01 << 24) - 1) 524 /*!< Maximum internal count rate is a 17.7 (24-b) value */ 525 #define VL53L1_SPEED_OF_LIGHT_IN_AIR 299704 526 /*!< Speed of light in air in mm/sec */ 527 #define VL53L1_SPEED_OF_LIGHT_IN_AIR_DIV_8 (299704 >> 3) 528 /*!< Speed of light in air in divided by 8, 2 for round trip 529 and 4 as an additional scaling factor */ 530 531 /** @} end of VL53L1_ApiCore_group */ 532 533 /** @} end of VL53L1_DevSpecDefines_group */ 534 535 /** @defgroup VL53L1_GPIO_Interrupt_Mode_group Interrupt modes 536 * @brief Selects between four interrupt modes 537 * @{ 538 */ 539 540 typedef uint8_t VL53L1_GPIO_Interrupt_Mode; 541 542 #define VL53L1_GPIOINTMODE_LEVEL_LOW \ 543 ((VL53L1_GPIO_Interrupt_Mode) 0) 544 /*!< Trigger interupt if value < thresh_low */ 545 #define VL53L1_GPIOINTMODE_LEVEL_HIGH \ 546 ((VL53L1_GPIO_Interrupt_Mode) 1) 547 /*!< Trigger interupt if value > thresh_high */ 548 #define VL53L1_GPIOINTMODE_OUT_OF_WINDOW \ 549 ((VL53L1_GPIO_Interrupt_Mode) 2) 550 /*!< Trigger interupt if value < thresh_low OR value > thresh_high */ 551 #define VL53L1_GPIOINTMODE_IN_WINDOW \ 552 ((VL53L1_GPIO_Interrupt_Mode) 3) 553 /*!< Trigger interupt if value > thresh_low AND value < thresh_high */ 554 555 /** @} end of VL53L1_GPIO_Interrupt_Mode_group */ 556 557 /** @defgroup VL53L1_TuningParms_group Tuning Parameters 558 * @brief Selects specific tuning parameter inputs to get/set \ 559 * Added as part of Patch_AddedTuningParms_11761 560 * @{ 561 */ 562 563 typedef uint16_t VL53L1_TuningParms; 564 565 #define VL53L1_TUNINGPARMS_LLD_PUBLIC_MIN_ADDRESS \ 566 ((VL53L1_TuningParms) VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS) 567 #define VL53L1_TUNINGPARMS_LLD_PUBLIC_MAX_ADDRESS \ 568 ((VL53L1_TuningParms) VL53L1_TUNINGPARM_LOWPOWERAUTO_RANGE_CONFIG_TIMEOUT_US) 569 570 #define VL53L1_TUNINGPARMS_LLD_PRIVATE_MIN_ADDRESS \ 571 ((VL53L1_TuningParms) VL53L1_TUNINGPARM_PRIVATE_PAGE_BASE_ADDRESS) 572 #define VL53L1_TUNINGPARMS_LLD_PRIVATE_MAX_ADDRESS \ 573 ((VL53L1_TuningParms) VL53L1_TUNINGPARMS_LLD_PRIVATE_MIN_ADDRESS) 574 575 #define VL53L1_TUNINGPARM_VERSION \ 576 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 0)) 577 #define VL53L1_TUNINGPARM_KEY_TABLE_VERSION \ 578 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 1)) 579 #define VL53L1_TUNINGPARM_LLD_VERSION \ 580 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 2)) 581 #define VL53L1_TUNINGPARM_CONSISTENCY_LITE_PHASE_TOLERANCE \ 582 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 3)) 583 #define VL53L1_TUNINGPARM_PHASECAL_TARGET \ 584 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 4)) 585 #define VL53L1_TUNINGPARM_LITE_CAL_REPEAT_RATE \ 586 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 5)) 587 #define VL53L1_TUNINGPARM_LITE_RANGING_GAIN_FACTOR \ 588 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 6)) 589 #define VL53L1_TUNINGPARM_LITE_MIN_CLIP_MM \ 590 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 7)) 591 #define VL53L1_TUNINGPARM_LITE_LONG_SIGMA_THRESH_MM \ 592 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 8)) 593 #define VL53L1_TUNINGPARM_LITE_MED_SIGMA_THRESH_MM \ 594 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 9)) 595 #define VL53L1_TUNINGPARM_LITE_SHORT_SIGMA_THRESH_MM \ 596 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 10)) 597 #define VL53L1_TUNINGPARM_LITE_LONG_MIN_COUNT_RATE_RTN_MCPS \ 598 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 11)) 599 #define VL53L1_TUNINGPARM_LITE_MED_MIN_COUNT_RATE_RTN_MCPS \ 600 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 12)) 601 #define VL53L1_TUNINGPARM_LITE_SHORT_MIN_COUNT_RATE_RTN_MCPS \ 602 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 13)) 603 #define VL53L1_TUNINGPARM_LITE_SIGMA_EST_PULSE_WIDTH \ 604 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 14)) 605 #define VL53L1_TUNINGPARM_LITE_SIGMA_EST_AMB_WIDTH_NS \ 606 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 15)) 607 #define VL53L1_TUNINGPARM_LITE_SIGMA_REF_MM \ 608 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 16)) 609 #define VL53L1_TUNINGPARM_LITE_RIT_MULT \ 610 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 17)) 611 #define VL53L1_TUNINGPARM_LITE_SEED_CONFIG \ 612 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 18)) 613 #define VL53L1_TUNINGPARM_LITE_QUANTIFIER \ 614 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 19)) 615 #define VL53L1_TUNINGPARM_LITE_FIRST_ORDER_SELECT \ 616 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 20)) 617 #define VL53L1_TUNINGPARM_LITE_XTALK_MARGIN_KCPS \ 618 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 21)) 619 #define VL53L1_TUNINGPARM_INITIAL_PHASE_RTN_LITE_LONG_RANGE \ 620 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 22)) 621 #define VL53L1_TUNINGPARM_INITIAL_PHASE_RTN_LITE_MED_RANGE \ 622 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 23)) 623 #define VL53L1_TUNINGPARM_INITIAL_PHASE_RTN_LITE_SHORT_RANGE \ 624 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 24)) 625 #define VL53L1_TUNINGPARM_INITIAL_PHASE_REF_LITE_LONG_RANGE \ 626 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 25)) 627 #define VL53L1_TUNINGPARM_INITIAL_PHASE_REF_LITE_MED_RANGE \ 628 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 26)) 629 #define VL53L1_TUNINGPARM_INITIAL_PHASE_REF_LITE_SHORT_RANGE \ 630 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 27)) 631 #define VL53L1_TUNINGPARM_TIMED_SEED_CONFIG \ 632 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 28)) 633 #define VL53L1_TUNINGPARM_VHV_LOOPBOUND \ 634 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 29)) 635 #define VL53L1_TUNINGPARM_REFSPADCHAR_DEVICE_TEST_MODE \ 636 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 30)) 637 #define VL53L1_TUNINGPARM_REFSPADCHAR_VCSEL_PERIOD \ 638 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 31)) 639 #define VL53L1_TUNINGPARM_REFSPADCHAR_PHASECAL_TIMEOUT_US \ 640 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 32)) 641 #define VL53L1_TUNINGPARM_REFSPADCHAR_TARGET_COUNT_RATE_MCPS \ 642 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 33)) 643 #define VL53L1_TUNINGPARM_REFSPADCHAR_MIN_COUNTRATE_LIMIT_MCPS \ 644 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 34)) 645 #define VL53L1_TUNINGPARM_REFSPADCHAR_MAX_COUNTRATE_LIMIT_MCPS \ 646 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 35)) 647 #define VL53L1_TUNINGPARM_OFFSET_CAL_DSS_RATE_MCPS \ 648 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 36)) 649 #define VL53L1_TUNINGPARM_OFFSET_CAL_PHASECAL_TIMEOUT_US \ 650 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 37)) 651 #define VL53L1_TUNINGPARM_OFFSET_CAL_MM_TIMEOUT_US \ 652 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 38)) 653 #define VL53L1_TUNINGPARM_OFFSET_CAL_RANGE_TIMEOUT_US \ 654 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 39)) 655 #define VL53L1_TUNINGPARM_OFFSET_CAL_PRE_SAMPLES \ 656 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 40)) 657 #define VL53L1_TUNINGPARM_OFFSET_CAL_MM1_SAMPLES \ 658 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 41)) 659 #define VL53L1_TUNINGPARM_OFFSET_CAL_MM2_SAMPLES \ 660 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 42)) 661 #define VL53L1_TUNINGPARM_SPADMAP_VCSEL_PERIOD \ 662 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 43)) 663 #define VL53L1_TUNINGPARM_SPADMAP_VCSEL_START \ 664 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 44)) 665 #define VL53L1_TUNINGPARM_SPADMAP_RATE_LIMIT_MCPS \ 666 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 45)) 667 #define VL53L1_TUNINGPARM_LITE_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS \ 668 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 46)) 669 #define VL53L1_TUNINGPARM_TIMED_DSS_CONFIG_TARGET_TOTAL_RATE_MCPS \ 670 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 47)) 671 #define VL53L1_TUNINGPARM_LITE_PHASECAL_CONFIG_TIMEOUT_US \ 672 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 48)) 673 #define VL53L1_TUNINGPARM_TIMED_PHASECAL_CONFIG_TIMEOUT_US \ 674 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 49)) 675 #define VL53L1_TUNINGPARM_LITE_MM_CONFIG_TIMEOUT_US \ 676 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 50)) 677 #define VL53L1_TUNINGPARM_TIMED_MM_CONFIG_TIMEOUT_US \ 678 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 51)) 679 #define VL53L1_TUNINGPARM_LITE_RANGE_CONFIG_TIMEOUT_US \ 680 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 52)) 681 #define VL53L1_TUNINGPARM_TIMED_RANGE_CONFIG_TIMEOUT_US \ 682 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 53)) 683 #define VL53L1_TUNINGPARM_LOWPOWERAUTO_VHV_LOOP_BOUND \ 684 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 54)) 685 #define VL53L1_TUNINGPARM_LOWPOWERAUTO_MM_CONFIG_TIMEOUT_US \ 686 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 55)) 687 #define VL53L1_TUNINGPARM_LOWPOWERAUTO_RANGE_CONFIG_TIMEOUT_US \ 688 ((VL53L1_TuningParms) (VL53L1_TUNINGPARM_PUBLIC_PAGE_BASE_ADDRESS + 56)) 689 690 691 /** @} end of VL53L1_TuningParms_group */ 692 693 694 #endif 695 696 /* _VL53L1_DEVICE_H_ */ 697 698 699