Initial release. Mbed library for VL53L1CB
Embed:
(wiki syntax)
Show/hide line numbers
vl53l1_register_structs.h
00001 00002 /******************************************************************************* 00003 * Copyright (c) 2020, STMicroelectronics - All Rights Reserved 00004 00005 This file is part of VL53L1 Core and is dual licensed, 00006 either 'STMicroelectronics 00007 Proprietary license' 00008 or 'BSD 3-clause "New" or "Revised" License' , at your option. 00009 00010 ******************************************************************************** 00011 00012 'STMicroelectronics Proprietary license' 00013 00014 ******************************************************************************** 00015 00016 License terms: STMicroelectronics Proprietary in accordance with licensing 00017 terms at www.st.com/sla0081 00018 00019 STMicroelectronics confidential 00020 Reproduction and Communication of this document is strictly prohibited unless 00021 specifically authorized in writing by STMicroelectronics. 00022 00023 00024 ******************************************************************************** 00025 00026 Alternatively, VL53L1 Core may be distributed under the terms of 00027 'BSD 3-clause "New" or "Revised" License', in which case the following 00028 provisions apply instead of the ones 00029 mentioned above : 00030 00031 ******************************************************************************** 00032 00033 License terms: BSD 3-clause "New" or "Revised" License. 00034 00035 Redistribution and use in source and binary forms, with or without 00036 modification, are permitted provided that the following conditions are met: 00037 00038 1. Redistributions of source code must retain the above copyright notice, this 00039 list of conditions and the following disclaimer. 00040 00041 2. Redistributions in binary form must reproduce the above copyright notice, 00042 this list of conditions and the following disclaimer in the documentation 00043 and/or other materials provided with the distribution. 00044 00045 3. Neither the name of the copyright holder nor the names of its contributors 00046 may be used to endorse or promote products derived from this software 00047 without specific prior written permission. 00048 00049 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00050 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00051 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00052 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00053 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00054 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00055 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00056 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00057 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00058 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00059 00060 00061 ******************************************************************************** 00062 00063 */ 00064 00065 00066 00067 00068 #ifndef _VL53L1_REGISTER_STRUCTS_H_ 00069 #define _VL53L1_REGISTER_STRUCTS_H_ 00070 00071 #include "vl53l1_types.h" 00072 #include "vl53l1_register_map.h" 00073 00074 #define VL53L1_STATIC_NVM_MANAGED_I2C_INDEX \ 00075 VL53L1_I2C_SLAVE__DEVICE_ADDRESS 00076 #define VL53L1_CUSTOMER_NVM_MANAGED_I2C_INDEX \ 00077 VL53L1_GLOBAL_CONFIG__SPAD_ENABLES_REF_0 00078 #define VL53L1_STATIC_CONFIG_I2C_INDEX \ 00079 VL53L1_DSS_CONFIG__TARGET_TOTAL_RATE_MCPS 00080 #define VL53L1_GENERAL_CONFIG_I2C_INDEX \ 00081 VL53L1_GPH_CONFIG__STREAM_COUNT_UPDATE_VALUE 00082 #define VL53L1_TIMING_CONFIG_I2C_INDEX \ 00083 VL53L1_MM_CONFIG__TIMEOUT_MACROP_A_HI 00084 #define VL53L1_DYNAMIC_CONFIG_I2C_INDEX \ 00085 VL53L1_SYSTEM__GROUPED_PARAMETER_HOLD_0 00086 #define VL53L1_SYSTEM_CONTROL_I2C_INDEX \ 00087 VL53L1_POWER_MANAGEMENT__GO1_POWER_FORCE 00088 #define VL53L1_SYSTEM_RESULTS_I2C_INDEX \ 00089 VL53L1_RESULT__INTERRUPT_STATUS 00090 #define VL53L1_CORE_RESULTS_I2C_INDEX \ 00091 VL53L1_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 00092 #define VL53L1_DEBUG_RESULTS_I2C_INDEX \ 00093 VL53L1_PHASECAL_RESULT__REFERENCE_PHASE 00094 #define VL53L1_NVM_COPY_DATA_I2C_INDEX \ 00095 VL53L1_IDENTIFICATION__MODEL_ID 00096 #define VL53L1_PREV_SHADOW_SYSTEM_RESULTS_I2C_INDEX \ 00097 VL53L1_PREV_SHADOW_RESULT__INTERRUPT_STATUS 00098 #define VL53L1_PREV_SHADOW_CORE_RESULTS_I2C_INDEX \ 00099 VL53L1_PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 00100 #define VL53L1_PATCH_DEBUG_I2C_INDEX \ 00101 VL53L1_RESULT__DEBUG_STATUS 00102 #define VL53L1_GPH_GENERAL_CONFIG_I2C_INDEX \ 00103 VL53L1_GPH__SYSTEM__THRESH_RATE_HIGH 00104 #define VL53L1_GPH_STATIC_CONFIG_I2C_INDEX \ 00105 VL53L1_GPH__DSS_CONFIG__ROI_MODE_CONTROL 00106 #define VL53L1_GPH_TIMING_CONFIG_I2C_INDEX \ 00107 VL53L1_GPH__MM_CONFIG__TIMEOUT_MACROP_A_HI 00108 #define VL53L1_FW_INTERNAL_I2C_INDEX \ 00109 VL53L1_FIRMWARE__INTERNAL_STREAM_COUNT_DIV 00110 #define VL53L1_PATCH_RESULTS_I2C_INDEX \ 00111 VL53L1_DSS_CALC__ROI_CTRL 00112 #define VL53L1_SHADOW_SYSTEM_RESULTS_I2C_INDEX \ 00113 VL53L1_SHADOW_PHASECAL_RESULT__VCSEL_START 00114 #define VL53L1_SHADOW_CORE_RESULTS_I2C_INDEX \ 00115 VL53L1_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 00116 00117 #define VL53L1_STATIC_NVM_MANAGED_I2C_SIZE_BYTES 11 00118 #define VL53L1_CUSTOMER_NVM_MANAGED_I2C_SIZE_BYTES 23 00119 #define VL53L1_STATIC_CONFIG_I2C_SIZE_BYTES 32 00120 #define VL53L1_GENERAL_CONFIG_I2C_SIZE_BYTES 22 00121 #define VL53L1_TIMING_CONFIG_I2C_SIZE_BYTES 23 00122 #define VL53L1_DYNAMIC_CONFIG_I2C_SIZE_BYTES 18 00123 #define VL53L1_SYSTEM_CONTROL_I2C_SIZE_BYTES 5 00124 #define VL53L1_SYSTEM_RESULTS_I2C_SIZE_BYTES 44 00125 #define VL53L1_CORE_RESULTS_I2C_SIZE_BYTES 33 00126 #define VL53L1_DEBUG_RESULTS_I2C_SIZE_BYTES 56 00127 #define VL53L1_NVM_COPY_DATA_I2C_SIZE_BYTES 49 00128 #define VL53L1_PREV_SHADOW_SYSTEM_RESULTS_I2C_SIZE_BYTES 44 00129 #define VL53L1_PREV_SHADOW_CORE_RESULTS_I2C_SIZE_BYTES 33 00130 #define VL53L1_PATCH_DEBUG_I2C_SIZE_BYTES 2 00131 #define VL53L1_GPH_GENERAL_CONFIG_I2C_SIZE_BYTES 5 00132 #define VL53L1_GPH_STATIC_CONFIG_I2C_SIZE_BYTES 6 00133 #define VL53L1_GPH_TIMING_CONFIG_I2C_SIZE_BYTES 16 00134 #define VL53L1_FW_INTERNAL_I2C_SIZE_BYTES 2 00135 #define VL53L1_PATCH_RESULTS_I2C_SIZE_BYTES 90 00136 #define VL53L1_SHADOW_SYSTEM_RESULTS_I2C_SIZE_BYTES 82 00137 #define VL53L1_SHADOW_CORE_RESULTS_I2C_SIZE_BYTES 33 00138 00139 00140 00141 00142 typedef struct { 00143 uint8_t i2c_slave__device_address; 00144 00145 uint8_t ana_config__vhv_ref_sel_vddpix; 00146 00147 uint8_t ana_config__vhv_ref_sel_vquench; 00148 00149 uint8_t ana_config__reg_avdd1v2_sel; 00150 00151 uint8_t ana_config__fast_osc__trim; 00152 00153 uint16_t osc_measured__fast_osc__frequency; 00154 00155 uint8_t vhv_config__timeout_macrop_loop_bound; 00156 00157 uint8_t vhv_config__count_thresh; 00158 00159 uint8_t vhv_config__offset; 00160 00161 uint8_t vhv_config__init; 00162 00163 } VL53L1_static_nvm_managed_t; 00164 00165 00166 00167 00168 typedef struct { 00169 uint8_t global_config__spad_enables_ref_0; 00170 00171 uint8_t global_config__spad_enables_ref_1; 00172 00173 uint8_t global_config__spad_enables_ref_2; 00174 00175 uint8_t global_config__spad_enables_ref_3; 00176 00177 uint8_t global_config__spad_enables_ref_4; 00178 00179 uint8_t global_config__spad_enables_ref_5; 00180 00181 uint8_t global_config__ref_en_start_select; 00182 00183 uint8_t ref_spad_man__num_requested_ref_spads; 00184 00185 uint8_t ref_spad_man__ref_location; 00186 00187 uint16_t algo__crosstalk_compensation_plane_offset_kcps; 00188 00189 int16_t algo__crosstalk_compensation_x_plane_gradient_kcps; 00190 00191 int16_t algo__crosstalk_compensation_y_plane_gradient_kcps; 00192 00193 uint16_t ref_spad_char__total_rate_target_mcps; 00194 00195 int16_t algo__part_to_part_range_offset_mm; 00196 00197 int16_t mm_config__inner_offset_mm; 00198 00199 int16_t mm_config__outer_offset_mm; 00200 00201 } VL53L1_customer_nvm_managed_t; 00202 00203 00204 00205 00206 typedef struct { 00207 uint16_t dss_config__target_total_rate_mcps; 00208 00209 uint8_t debug__ctrl; 00210 00211 uint8_t test_mode__ctrl; 00212 00213 uint8_t clk_gating__ctrl; 00214 00215 uint8_t nvm_bist__ctrl; 00216 00217 uint8_t nvm_bist__num_nvm_words; 00218 00219 uint8_t nvm_bist__start_address; 00220 00221 uint8_t host_if__status; 00222 00223 uint8_t pad_i2c_hv__config; 00224 00225 uint8_t pad_i2c_hv__extsup_config; 00226 00227 uint8_t gpio_hv_pad__ctrl; 00228 00229 uint8_t gpio_hv_mux__ctrl; 00230 00231 uint8_t gpio__tio_hv_status; 00232 00233 uint8_t gpio__fio_hv_status; 00234 00235 uint8_t ana_config__spad_sel_pswidth; 00236 00237 uint8_t ana_config__vcsel_pulse_width_offset; 00238 00239 uint8_t ana_config__fast_osc__config_ctrl; 00240 00241 uint8_t sigma_estimator__effective_pulse_width_ns; 00242 00243 uint8_t sigma_estimator__effective_ambient_width_ns; 00244 00245 uint8_t sigma_estimator__sigma_ref_mm; 00246 00247 uint8_t algo__crosstalk_compensation_valid_height_mm; 00248 00249 uint8_t spare_host_config__static_config_spare_0; 00250 00251 uint8_t spare_host_config__static_config_spare_1; 00252 00253 uint16_t algo__range_ignore_threshold_mcps; 00254 00255 uint8_t algo__range_ignore_valid_height_mm; 00256 00257 uint8_t algo__range_min_clip; 00258 00259 uint8_t algo__consistency_check__tolerance; 00260 00261 uint8_t spare_host_config__static_config_spare_2; 00262 00263 uint8_t sd_config__reset_stages_msb; 00264 00265 uint8_t sd_config__reset_stages_lsb; 00266 00267 } VL53L1_static_config_t; 00268 00269 00270 00271 00272 typedef struct { 00273 uint8_t gph_config__stream_count_update_value; 00274 00275 uint8_t global_config__stream_divider; 00276 00277 uint8_t system__interrupt_config_gpio; 00278 00279 uint8_t cal_config__vcsel_start; 00280 00281 uint16_t cal_config__repeat_rate; 00282 00283 uint8_t global_config__vcsel_width; 00284 00285 uint8_t phasecal_config__timeout_macrop; 00286 00287 uint8_t phasecal_config__target; 00288 00289 uint8_t phasecal_config__override; 00290 00291 uint8_t dss_config__roi_mode_control; 00292 00293 uint16_t system__thresh_rate_high; 00294 00295 uint16_t system__thresh_rate_low; 00296 00297 uint16_t dss_config__manual_effective_spads_select; 00298 00299 uint8_t dss_config__manual_block_select; 00300 00301 uint8_t dss_config__aperture_attenuation; 00302 00303 uint8_t dss_config__max_spads_limit; 00304 00305 uint8_t dss_config__min_spads_limit; 00306 00307 } VL53L1_general_config_t; 00308 00309 00310 00311 00312 typedef struct { 00313 uint8_t mm_config__timeout_macrop_a_hi; 00314 00315 uint8_t mm_config__timeout_macrop_a_lo; 00316 00317 uint8_t mm_config__timeout_macrop_b_hi; 00318 00319 uint8_t mm_config__timeout_macrop_b_lo; 00320 00321 uint8_t range_config__timeout_macrop_a_hi; 00322 00323 uint8_t range_config__timeout_macrop_a_lo; 00324 00325 uint8_t range_config__vcsel_period_a; 00326 00327 uint8_t range_config__timeout_macrop_b_hi; 00328 00329 uint8_t range_config__timeout_macrop_b_lo; 00330 00331 uint8_t range_config__vcsel_period_b; 00332 00333 uint16_t range_config__sigma_thresh; 00334 00335 uint16_t range_config__min_count_rate_rtn_limit_mcps; 00336 00337 uint8_t range_config__valid_phase_low; 00338 00339 uint8_t range_config__valid_phase_high; 00340 00341 uint32_t system__intermeasurement_period; 00342 00343 uint8_t system__fractional_enable; 00344 00345 } VL53L1_timing_config_t; 00346 00347 00348 00349 00350 typedef struct { 00351 uint8_t system__grouped_parameter_hold_0; 00352 00353 uint16_t system__thresh_high; 00354 00355 uint16_t system__thresh_low; 00356 00357 uint8_t system__enable_xtalk_per_quadrant; 00358 00359 uint8_t system__seed_config; 00360 00361 uint8_t sd_config__woi_sd0; 00362 00363 uint8_t sd_config__woi_sd1; 00364 00365 uint8_t sd_config__initial_phase_sd0; 00366 00367 uint8_t sd_config__initial_phase_sd1; 00368 00369 uint8_t system__grouped_parameter_hold_1; 00370 00371 uint8_t sd_config__first_order_select; 00372 00373 uint8_t sd_config__quantifier; 00374 00375 uint8_t roi_config__user_roi_centre_spad; 00376 00377 uint8_t roi_config__user_roi_requested_global_xy_size; 00378 00379 uint8_t system__sequence_config; 00380 00381 uint8_t system__grouped_parameter_hold; 00382 00383 } VL53L1_dynamic_config_t; 00384 00385 00386 00387 00388 typedef struct { 00389 uint8_t power_management__go1_power_force; 00390 00391 uint8_t system__stream_count_ctrl; 00392 00393 uint8_t firmware__enable; 00394 00395 uint8_t system__interrupt_clear; 00396 00397 uint8_t system__mode_start; 00398 00399 } VL53L1_system_control_t; 00400 00401 00402 00403 00404 typedef struct { 00405 uint8_t result__interrupt_status; 00406 00407 uint8_t result__range_status; 00408 00409 uint8_t result__report_status; 00410 00411 uint8_t result__stream_count; 00412 00413 uint16_t result__dss_actual_effective_spads_sd0; 00414 00415 uint16_t result__peak_signal_count_rate_mcps_sd0; 00416 00417 uint16_t result__ambient_count_rate_mcps_sd0; 00418 00419 uint16_t result__sigma_sd0; 00420 00421 uint16_t result__phase_sd0; 00422 00423 uint16_t result__final_crosstalk_corrected_range_mm_sd0; 00424 00425 uint16_t result__peak_signal_count_rate_crosstalk_corrected_mcps_sd0; 00426 00427 uint16_t result__mm_inner_actual_effective_spads_sd0; 00428 00429 uint16_t result__mm_outer_actual_effective_spads_sd0; 00430 00431 uint16_t result__avg_signal_count_rate_mcps_sd0; 00432 00433 uint16_t result__dss_actual_effective_spads_sd1; 00434 00435 uint16_t result__peak_signal_count_rate_mcps_sd1; 00436 00437 uint16_t result__ambient_count_rate_mcps_sd1; 00438 00439 uint16_t result__sigma_sd1; 00440 00441 uint16_t result__phase_sd1; 00442 00443 uint16_t result__final_crosstalk_corrected_range_mm_sd1; 00444 00445 uint16_t result__spare_0_sd1; 00446 00447 uint16_t result__spare_1_sd1; 00448 00449 uint16_t result__spare_2_sd1; 00450 00451 uint8_t result__spare_3_sd1; 00452 00453 uint8_t result__thresh_info; 00454 00455 } VL53L1_system_results_t; 00456 00457 00458 00459 00460 typedef struct { 00461 uint32_t result_core__ambient_window_events_sd0; 00462 00463 uint32_t result_core__ranging_total_events_sd0; 00464 00465 int32_t result_core__signal_total_events_sd0; 00466 00467 uint32_t result_core__total_periods_elapsed_sd0; 00468 00469 uint32_t result_core__ambient_window_events_sd1; 00470 00471 uint32_t result_core__ranging_total_events_sd1; 00472 00473 int32_t result_core__signal_total_events_sd1; 00474 00475 uint32_t result_core__total_periods_elapsed_sd1; 00476 00477 uint8_t result_core__spare_0; 00478 00479 } VL53L1_core_results_t; 00480 00481 00482 00483 00484 typedef struct { 00485 uint16_t phasecal_result__reference_phase; 00486 00487 uint8_t phasecal_result__vcsel_start; 00488 00489 uint8_t ref_spad_char_result__num_actual_ref_spads; 00490 00491 uint8_t ref_spad_char_result__ref_location; 00492 00493 uint8_t vhv_result__coldboot_status; 00494 00495 uint8_t vhv_result__search_result; 00496 00497 uint8_t vhv_result__latest_setting; 00498 00499 uint16_t result__osc_calibrate_val; 00500 00501 uint8_t ana_config__powerdown_go1; 00502 00503 uint8_t ana_config__ref_bg_ctrl; 00504 00505 uint8_t ana_config__regdvdd1v2_ctrl; 00506 00507 uint8_t ana_config__osc_slow_ctrl; 00508 00509 uint8_t test_mode__status; 00510 00511 uint8_t firmware__system_status; 00512 00513 uint8_t firmware__mode_status; 00514 00515 uint8_t firmware__secondary_mode_status; 00516 00517 uint16_t firmware__cal_repeat_rate_counter; 00518 00519 uint16_t gph__system__thresh_high; 00520 00521 uint16_t gph__system__thresh_low; 00522 00523 uint8_t gph__system__enable_xtalk_per_quadrant; 00524 00525 uint8_t gph__spare_0; 00526 00527 uint8_t gph__sd_config__woi_sd0; 00528 00529 uint8_t gph__sd_config__woi_sd1; 00530 00531 uint8_t gph__sd_config__initial_phase_sd0; 00532 00533 uint8_t gph__sd_config__initial_phase_sd1; 00534 00535 uint8_t gph__sd_config__first_order_select; 00536 00537 uint8_t gph__sd_config__quantifier; 00538 00539 uint8_t gph__roi_config__user_roi_centre_spad; 00540 00541 uint8_t gph__roi_config__user_roi_requested_global_xy_size; 00542 00543 uint8_t gph__system__sequence_config; 00544 00545 uint8_t gph__gph_id; 00546 00547 uint8_t system__interrupt_set; 00548 00549 uint8_t interrupt_manager__enables; 00550 00551 uint8_t interrupt_manager__clear; 00552 00553 uint8_t interrupt_manager__status; 00554 00555 uint8_t mcu_to_host_bank__wr_access_en; 00556 00557 uint8_t power_management__go1_reset_status; 00558 00559 uint8_t pad_startup_mode__value_ro; 00560 00561 uint8_t pad_startup_mode__value_ctrl; 00562 00563 uint32_t pll_period_us; 00564 00565 uint32_t interrupt_scheduler__data_out; 00566 00567 uint8_t nvm_bist__complete; 00568 00569 uint8_t nvm_bist__status; 00570 00571 } VL53L1_debug_results_t; 00572 00573 00574 00575 00576 typedef struct { 00577 uint8_t identification__model_id; 00578 00579 uint8_t identification__module_type; 00580 00581 uint8_t identification__revision_id; 00582 00583 uint16_t identification__module_id; 00584 00585 uint8_t ana_config__fast_osc__trim_max; 00586 00587 uint8_t ana_config__fast_osc__freq_set; 00588 00589 uint8_t ana_config__vcsel_trim; 00590 00591 uint8_t ana_config__vcsel_selion; 00592 00593 uint8_t ana_config__vcsel_selion_max; 00594 00595 uint8_t protected_laser_safety__lock_bit; 00596 00597 uint8_t laser_safety__key; 00598 00599 uint8_t laser_safety__key_ro; 00600 00601 uint8_t laser_safety__clip; 00602 00603 uint8_t laser_safety__mult; 00604 00605 uint8_t global_config__spad_enables_rtn_0; 00606 00607 uint8_t global_config__spad_enables_rtn_1; 00608 00609 uint8_t global_config__spad_enables_rtn_2; 00610 00611 uint8_t global_config__spad_enables_rtn_3; 00612 00613 uint8_t global_config__spad_enables_rtn_4; 00614 00615 uint8_t global_config__spad_enables_rtn_5; 00616 00617 uint8_t global_config__spad_enables_rtn_6; 00618 00619 uint8_t global_config__spad_enables_rtn_7; 00620 00621 uint8_t global_config__spad_enables_rtn_8; 00622 00623 uint8_t global_config__spad_enables_rtn_9; 00624 00625 uint8_t global_config__spad_enables_rtn_10; 00626 00627 uint8_t global_config__spad_enables_rtn_11; 00628 00629 uint8_t global_config__spad_enables_rtn_12; 00630 00631 uint8_t global_config__spad_enables_rtn_13; 00632 00633 uint8_t global_config__spad_enables_rtn_14; 00634 00635 uint8_t global_config__spad_enables_rtn_15; 00636 00637 uint8_t global_config__spad_enables_rtn_16; 00638 00639 uint8_t global_config__spad_enables_rtn_17; 00640 00641 uint8_t global_config__spad_enables_rtn_18; 00642 00643 uint8_t global_config__spad_enables_rtn_19; 00644 00645 uint8_t global_config__spad_enables_rtn_20; 00646 00647 uint8_t global_config__spad_enables_rtn_21; 00648 00649 uint8_t global_config__spad_enables_rtn_22; 00650 00651 uint8_t global_config__spad_enables_rtn_23; 00652 00653 uint8_t global_config__spad_enables_rtn_24; 00654 00655 uint8_t global_config__spad_enables_rtn_25; 00656 00657 uint8_t global_config__spad_enables_rtn_26; 00658 00659 uint8_t global_config__spad_enables_rtn_27; 00660 00661 uint8_t global_config__spad_enables_rtn_28; 00662 00663 uint8_t global_config__spad_enables_rtn_29; 00664 00665 uint8_t global_config__spad_enables_rtn_30; 00666 00667 uint8_t global_config__spad_enables_rtn_31; 00668 00669 uint8_t roi_config__mode_roi_centre_spad; 00670 00671 uint8_t roi_config__mode_roi_xy_size; 00672 00673 } VL53L1_nvm_copy_data_t; 00674 00675 00676 00677 00678 typedef struct { 00679 uint8_t prev_shadow_result__interrupt_status; 00680 00681 uint8_t prev_shadow_result__range_status; 00682 00683 uint8_t prev_shadow_result__report_status; 00684 00685 uint8_t prev_shadow_result__stream_count; 00686 00687 uint16_t prev_shadow_result__dss_actual_effective_spads_sd0; 00688 00689 uint16_t prev_shadow_result__peak_signal_count_rate_mcps_sd0; 00690 00691 uint16_t prev_shadow_result__ambient_count_rate_mcps_sd0; 00692 00693 uint16_t prev_shadow_result__sigma_sd0; 00694 00695 uint16_t prev_shadow_result__phase_sd0; 00696 00697 uint16_t prev_shadow_result__final_crosstalk_corrected_range_mm_sd0; 00698 00699 uint16_t 00700 psr__peak_signal_count_rate_crosstalk_corrected_mcps_sd0; 00701 00702 uint16_t prev_shadow_result__mm_inner_actual_effective_spads_sd0; 00703 00704 uint16_t prev_shadow_result__mm_outer_actual_effective_spads_sd0; 00705 00706 uint16_t prev_shadow_result__avg_signal_count_rate_mcps_sd0; 00707 00708 uint16_t prev_shadow_result__dss_actual_effective_spads_sd1; 00709 00710 uint16_t prev_shadow_result__peak_signal_count_rate_mcps_sd1; 00711 00712 uint16_t prev_shadow_result__ambient_count_rate_mcps_sd1; 00713 00714 uint16_t prev_shadow_result__sigma_sd1; 00715 00716 uint16_t prev_shadow_result__phase_sd1; 00717 00718 uint16_t prev_shadow_result__final_crosstalk_corrected_range_mm_sd1; 00719 00720 uint16_t prev_shadow_result__spare_0_sd1; 00721 00722 uint16_t prev_shadow_result__spare_1_sd1; 00723 00724 uint16_t prev_shadow_result__spare_2_sd1; 00725 00726 uint16_t prev_shadow_result__spare_3_sd1; 00727 00728 } VL53L1_prev_shadow_system_results_t; 00729 00730 00731 00732 00733 typedef struct { 00734 uint32_t prev_shadow_result_core__ambient_window_events_sd0; 00735 00736 uint32_t prev_shadow_result_core__ranging_total_events_sd0; 00737 00738 int32_t prev_shadow_result_core__signal_total_events_sd0; 00739 00740 uint32_t prev_shadow_result_core__total_periods_elapsed_sd0; 00741 00742 uint32_t prev_shadow_result_core__ambient_window_events_sd1; 00743 00744 uint32_t prev_shadow_result_core__ranging_total_events_sd1; 00745 00746 int32_t prev_shadow_result_core__signal_total_events_sd1; 00747 00748 uint32_t prev_shadow_result_core__total_periods_elapsed_sd1; 00749 00750 uint8_t prev_shadow_result_core__spare_0; 00751 00752 } VL53L1_prev_shadow_core_results_t; 00753 00754 00755 00756 00757 typedef struct { 00758 uint8_t result__debug_status; 00759 00760 uint8_t result__debug_stage; 00761 00762 } VL53L1_patch_debug_t; 00763 00764 00765 00766 00767 typedef struct { 00768 uint16_t gph__system__thresh_rate_high; 00769 00770 uint16_t gph__system__thresh_rate_low; 00771 00772 uint8_t gph__system__interrupt_config_gpio; 00773 00774 } VL53L1_gph_general_config_t; 00775 00776 00777 00778 00779 typedef struct { 00780 uint8_t gph__dss_config__roi_mode_control; 00781 00782 uint16_t gph__dss_config__manual_effective_spads_select; 00783 00784 uint8_t gph__dss_config__manual_block_select; 00785 00786 uint8_t gph__dss_config__max_spads_limit; 00787 00788 uint8_t gph__dss_config__min_spads_limit; 00789 00790 } VL53L1_gph_static_config_t; 00791 00792 00793 00794 00795 typedef struct { 00796 uint8_t gph__mm_config__timeout_macrop_a_hi; 00797 00798 uint8_t gph__mm_config__timeout_macrop_a_lo; 00799 00800 uint8_t gph__mm_config__timeout_macrop_b_hi; 00801 00802 uint8_t gph__mm_config__timeout_macrop_b_lo; 00803 00804 uint8_t gph__range_config__timeout_macrop_a_hi; 00805 00806 uint8_t gph__range_config__timeout_macrop_a_lo; 00807 00808 uint8_t gph__range_config__vcsel_period_a; 00809 00810 uint8_t gph__range_config__vcsel_period_b; 00811 00812 uint8_t gph__range_config__timeout_macrop_b_hi; 00813 00814 uint8_t gph__range_config__timeout_macrop_b_lo; 00815 00816 uint16_t gph__range_config__sigma_thresh; 00817 00818 uint16_t gph__range_config__min_count_rate_rtn_limit_mcps; 00819 00820 uint8_t gph__range_config__valid_phase_low; 00821 00822 uint8_t gph__range_config__valid_phase_high; 00823 00824 } VL53L1_gph_timing_config_t; 00825 00826 00827 00828 00829 typedef struct { 00830 uint8_t firmware__internal_stream_count_div; 00831 00832 uint8_t firmware__internal_stream_counter_val; 00833 00834 } VL53L1_fw_internal_t; 00835 00836 00837 00838 00839 typedef struct { 00840 uint8_t dss_calc__roi_ctrl; 00841 00842 uint8_t dss_calc__spare_1; 00843 00844 uint8_t dss_calc__spare_2; 00845 00846 uint8_t dss_calc__spare_3; 00847 00848 uint8_t dss_calc__spare_4; 00849 00850 uint8_t dss_calc__spare_5; 00851 00852 uint8_t dss_calc__spare_6; 00853 00854 uint8_t dss_calc__spare_7; 00855 00856 uint8_t dss_calc__user_roi_spad_en_0; 00857 00858 uint8_t dss_calc__user_roi_spad_en_1; 00859 00860 uint8_t dss_calc__user_roi_spad_en_2; 00861 00862 uint8_t dss_calc__user_roi_spad_en_3; 00863 00864 uint8_t dss_calc__user_roi_spad_en_4; 00865 00866 uint8_t dss_calc__user_roi_spad_en_5; 00867 00868 uint8_t dss_calc__user_roi_spad_en_6; 00869 00870 uint8_t dss_calc__user_roi_spad_en_7; 00871 00872 uint8_t dss_calc__user_roi_spad_en_8; 00873 00874 uint8_t dss_calc__user_roi_spad_en_9; 00875 00876 uint8_t dss_calc__user_roi_spad_en_10; 00877 00878 uint8_t dss_calc__user_roi_spad_en_11; 00879 00880 uint8_t dss_calc__user_roi_spad_en_12; 00881 00882 uint8_t dss_calc__user_roi_spad_en_13; 00883 00884 uint8_t dss_calc__user_roi_spad_en_14; 00885 00886 uint8_t dss_calc__user_roi_spad_en_15; 00887 00888 uint8_t dss_calc__user_roi_spad_en_16; 00889 00890 uint8_t dss_calc__user_roi_spad_en_17; 00891 00892 uint8_t dss_calc__user_roi_spad_en_18; 00893 00894 uint8_t dss_calc__user_roi_spad_en_19; 00895 00896 uint8_t dss_calc__user_roi_spad_en_20; 00897 00898 uint8_t dss_calc__user_roi_spad_en_21; 00899 00900 uint8_t dss_calc__user_roi_spad_en_22; 00901 00902 uint8_t dss_calc__user_roi_spad_en_23; 00903 00904 uint8_t dss_calc__user_roi_spad_en_24; 00905 00906 uint8_t dss_calc__user_roi_spad_en_25; 00907 00908 uint8_t dss_calc__user_roi_spad_en_26; 00909 00910 uint8_t dss_calc__user_roi_spad_en_27; 00911 00912 uint8_t dss_calc__user_roi_spad_en_28; 00913 00914 uint8_t dss_calc__user_roi_spad_en_29; 00915 00916 uint8_t dss_calc__user_roi_spad_en_30; 00917 00918 uint8_t dss_calc__user_roi_spad_en_31; 00919 00920 uint8_t dss_calc__user_roi_0; 00921 00922 uint8_t dss_calc__user_roi_1; 00923 00924 uint8_t dss_calc__mode_roi_0; 00925 00926 uint8_t dss_calc__mode_roi_1; 00927 00928 uint8_t sigma_estimator_calc__spare_0; 00929 00930 uint16_t vhv_result__peak_signal_rate_mcps; 00931 00932 uint32_t vhv_result__signal_total_events_ref; 00933 00934 uint16_t phasecal_result__phase_output_ref; 00935 00936 uint16_t dss_result__total_rate_per_spad; 00937 00938 uint8_t dss_result__enabled_blocks; 00939 00940 uint16_t dss_result__num_requested_spads; 00941 00942 uint16_t mm_result__inner_intersection_rate; 00943 00944 uint16_t mm_result__outer_complement_rate; 00945 00946 uint16_t mm_result__total_offset; 00947 00948 uint32_t xtalk_calc__xtalk_for_enabled_spads; 00949 00950 uint32_t xtalk_result__avg_xtalk_user_roi_kcps; 00951 00952 uint32_t xtalk_result__avg_xtalk_mm_inner_roi_kcps; 00953 00954 uint32_t xtalk_result__avg_xtalk_mm_outer_roi_kcps; 00955 00956 uint32_t range_result__accum_phase; 00957 00958 uint16_t range_result__offset_corrected_range; 00959 00960 } VL53L1_patch_results_t; 00961 00962 00963 00964 00965 typedef struct { 00966 uint8_t shadow_phasecal_result__vcsel_start; 00967 00968 uint8_t shadow_result__interrupt_status; 00969 00970 uint8_t shadow_result__range_status; 00971 00972 uint8_t shadow_result__report_status; 00973 00974 uint8_t shadow_result__stream_count; 00975 00976 uint16_t shadow_result__dss_actual_effective_spads_sd0; 00977 00978 uint16_t shadow_result__peak_signal_count_rate_mcps_sd0; 00979 00980 uint16_t shadow_result__ambient_count_rate_mcps_sd0; 00981 00982 uint16_t shadow_result__sigma_sd0; 00983 00984 uint16_t shadow_result__phase_sd0; 00985 00986 uint16_t shadow_result__final_crosstalk_corrected_range_mm_sd0; 00987 00988 uint16_t 00989 shr__peak_signal_count_rate_crosstalk_corrected_mcps_sd0; 00990 00991 uint16_t shadow_result__mm_inner_actual_effective_spads_sd0; 00992 00993 uint16_t shadow_result__mm_outer_actual_effective_spads_sd0; 00994 00995 uint16_t shadow_result__avg_signal_count_rate_mcps_sd0; 00996 00997 uint16_t shadow_result__dss_actual_effective_spads_sd1; 00998 00999 uint16_t shadow_result__peak_signal_count_rate_mcps_sd1; 01000 01001 uint16_t shadow_result__ambient_count_rate_mcps_sd1; 01002 01003 uint16_t shadow_result__sigma_sd1; 01004 01005 uint16_t shadow_result__phase_sd1; 01006 01007 uint16_t shadow_result__final_crosstalk_corrected_range_mm_sd1; 01008 01009 uint16_t shadow_result__spare_0_sd1; 01010 01011 uint16_t shadow_result__spare_1_sd1; 01012 01013 uint16_t shadow_result__spare_2_sd1; 01014 01015 uint8_t shadow_result__spare_3_sd1; 01016 01017 uint8_t shadow_result__thresh_info; 01018 01019 uint8_t shadow_phasecal_result__reference_phase_hi; 01020 01021 uint8_t shadow_phasecal_result__reference_phase_lo; 01022 01023 } VL53L1_shadow_system_results_t; 01024 01025 01026 01027 01028 typedef struct { 01029 uint32_t shadow_result_core__ambient_window_events_sd0; 01030 01031 uint32_t shadow_result_core__ranging_total_events_sd0; 01032 01033 int32_t shadow_result_core__signal_total_events_sd0; 01034 01035 uint32_t shadow_result_core__total_periods_elapsed_sd0; 01036 01037 uint32_t shadow_result_core__ambient_window_events_sd1; 01038 01039 uint32_t shadow_result_core__ranging_total_events_sd1; 01040 01041 int32_t shadow_result_core__signal_total_events_sd1; 01042 01043 uint32_t shadow_result_core__total_periods_elapsed_sd1; 01044 01045 uint8_t shadow_result_core__spare_0; 01046 01047 } VL53L1_shadow_core_results_t; 01048 01049 01050 #endif 01051 01052 01053
Generated on Tue Jul 12 2022 20:07:15 by 1.7.2