1033 lines
22 KiB
C
1033 lines
22 KiB
C
/**
|
|
******************************************************************************
|
|
* Copyright (c) 2020, STMicroelectronics - All Rights Reserved
|
|
*
|
|
* This software is licensed under terms that can be found in the LICENSE file
|
|
* in the root directory of this software component.
|
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "vl53lx_platform.h"
|
|
#include <vl53lx_platform_log.h>
|
|
#include "vl53lx_ll_def.h"
|
|
#include "vl53lx_register_map.h"
|
|
#include "vl53lx_api_debug.h"
|
|
#include "vl53lx_nvm_structs.h"
|
|
#include "vl53lx_nvm_debug.h"
|
|
|
|
#define LOG_FUNCTION_START(fmt, ...) \
|
|
_LOG_FUNCTION_START(VL53LX_TRACE_MODULE_NVM, fmt, ##__VA_ARGS__)
|
|
#define LOG_FUNCTION_END(status, ...) \
|
|
_LOG_FUNCTION_END(VL53LX_TRACE_MODULE_NVM, status, ##__VA_ARGS__)
|
|
#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
|
|
_LOG_FUNCTION_END_FMT(VL53LX_TRACE_MODULE_NVM,\
|
|
status, fmt, ##__VA_ARGS__)
|
|
|
|
#define trace_print(level, ...) \
|
|
_LOG_TRACE_PRINT(trace_flags, \
|
|
level, VL53LX_TRACE_FUNCTION_NONE, ##__VA_ARGS__)
|
|
|
|
#ifdef VL53LX_LOG_ENABLE
|
|
|
|
void VL53LX_print_nvm_raw_data(
|
|
uint8_t *pnvm_raw_data,
|
|
uint32_t trace_flags)
|
|
{
|
|
|
|
|
|
int i = 0;
|
|
|
|
LOG_FUNCTION_START("");
|
|
|
|
for (i = 0 ; i < VL53LX_NVM_SIZE_IN_BYTES ; i++) {
|
|
if (i % 4 == 0)
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"\n NVM Addr 0x%02X : 0x",
|
|
i/4);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%02X",
|
|
*pnvm_raw_data++);
|
|
}
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"\n");
|
|
|
|
LOG_FUNCTION_END(0);
|
|
}
|
|
|
|
|
|
void VL53LX_print_decoded_nvm_data(
|
|
VL53LX_decoded_nvm_data_t *pdata,
|
|
char *pprefix,
|
|
uint32_t trace_flags)
|
|
{
|
|
char fp_text[VL53LX_MAX_STRING_LENGTH];
|
|
char pre_text[VL53LX_MAX_STRING_LENGTH];
|
|
char *ppre_text = &(pre_text[0]);
|
|
|
|
uint8_t i = 0;
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__identification_model_id",
|
|
pdata->nvm__identification_model_id);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__identification_module_type",
|
|
pdata->nvm__identification_module_type);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__identification_revision_id",
|
|
pdata->nvm__identification_revision_id);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__identification_module_id",
|
|
pdata->nvm__identification_module_id);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__i2c_valid",
|
|
pdata->nvm__i2c_valid);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__i2c_device_address_ews",
|
|
pdata->nvm__i2c_device_address_ews);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->nvm__ews__fast_osc_frequency,
|
|
12,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__ews__fast_osc_frequency",
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__fast_osc_trim_max",
|
|
pdata->nvm__ews__fast_osc_trim_max);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__fast_osc_freq_set",
|
|
pdata->nvm__ews__fast_osc_freq_set);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__slow_osc_calibration",
|
|
pdata->nvm__ews__slow_osc_calibration);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->nvm__fmt__fast_osc_frequency,
|
|
12,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__fmt__fast_osc_frequency",
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__fast_osc_trim_max",
|
|
pdata->nvm__fmt__fast_osc_trim_max);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__fast_osc_freq_set",
|
|
pdata->nvm__fmt__fast_osc_freq_set);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__slow_osc_calibration",
|
|
pdata->nvm__fmt__slow_osc_calibration);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__vhv_config_unlock",
|
|
pdata->nvm__vhv_config_unlock);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ref_selvddpix",
|
|
pdata->nvm__ref_selvddpix);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ref_selvquench",
|
|
pdata->nvm__ref_selvquench);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__regavdd1v2_sel",
|
|
pdata->nvm__regavdd1v2_sel);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__regdvdd1v2_sel",
|
|
pdata->nvm__regdvdd1v2_sel);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__vhv_timeout__macrop",
|
|
pdata->nvm__vhv_timeout__macrop);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__vhv_loop_bound",
|
|
pdata->nvm__vhv_loop_bound);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__vhv_count_threshold",
|
|
pdata->nvm__vhv_count_threshold);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__vhv_offset",
|
|
pdata->nvm__vhv_offset);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__vhv_init_enable",
|
|
pdata->nvm__vhv_init_enable);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__vhv_init_value",
|
|
pdata->nvm__vhv_init_value);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_vcsel_trim_ll",
|
|
pdata->nvm__laser_safety_vcsel_trim_ll);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_vcsel_selion_ll",
|
|
pdata->nvm__laser_safety_vcsel_selion_ll);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_vcsel_selion_max_ll",
|
|
pdata->nvm__laser_safety_vcsel_selion_max_ll);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_mult_ll",
|
|
pdata->nvm__laser_safety_mult_ll);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_clip_ll",
|
|
pdata->nvm__laser_safety_clip_ll);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_vcsel_trim_ld",
|
|
pdata->nvm__laser_safety_vcsel_trim_ld);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_vcsel_selion_ld",
|
|
pdata->nvm__laser_safety_vcsel_selion_ld);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_vcsel_selion_max_ld",
|
|
pdata->nvm__laser_safety_vcsel_selion_max_ld);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_mult_ld",
|
|
pdata->nvm__laser_safety_mult_ld);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_clip_ld",
|
|
pdata->nvm__laser_safety_clip_ld);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_lock_byte",
|
|
pdata->nvm__laser_safety_lock_byte);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__laser_safety_unlock_byte",
|
|
pdata->nvm__laser_safety_unlock_byte);
|
|
|
|
|
|
|
|
for (i = 0 ; i < VL53LX_RTN_SPAD_BUFFER_SIZE ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%snvm__ews__spad_enables_rtn[%u]",
|
|
pprefix, i);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s = %u\n",
|
|
ppre_text,
|
|
pdata->nvm__ews__spad_enables_rtn[i]);
|
|
}
|
|
|
|
for (i = 0 ; i < VL53LX_REF_SPAD_BUFFER_SIZE ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%snvm__ews__spad_enables_ref__loc1[%u]",
|
|
pprefix, i);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s = %u\n",
|
|
ppre_text,
|
|
pdata->nvm__ews__spad_enables_ref__loc1[i]);
|
|
}
|
|
|
|
for (i = 0 ; i < VL53LX_REF_SPAD_BUFFER_SIZE ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%snvm__ews__spad_enables_ref__loc2[%u]",
|
|
pprefix, i);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s = %u\n",
|
|
ppre_text,
|
|
pdata->nvm__ews__spad_enables_ref__loc2[i]);
|
|
}
|
|
|
|
for (i = 0 ; i < VL53LX_REF_SPAD_BUFFER_SIZE ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%snvm__ews__spad_enables_ref__loc3[%u]",
|
|
pprefix, i);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s = %u\n",
|
|
ppre_text,
|
|
pdata->nvm__ews__spad_enables_ref__loc3[i]);
|
|
}
|
|
|
|
|
|
|
|
|
|
for (i = 0 ; i < VL53LX_RTN_SPAD_BUFFER_SIZE ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%snvm__fmt__spad_enables_rtn[%u]",
|
|
pprefix, i);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s = %u\n",
|
|
ppre_text,
|
|
pdata->nvm__fmt__spad_enables_rtn[i]);
|
|
}
|
|
|
|
for (i = 0 ; i < VL53LX_REF_SPAD_BUFFER_SIZE ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%snvm__fmt__spad_enables_ref__loc1[%u]",
|
|
pprefix, i);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s = %u\n",
|
|
ppre_text,
|
|
pdata->nvm__fmt__spad_enables_ref__loc1[i]);
|
|
}
|
|
|
|
for (i = 0 ; i < VL53LX_REF_SPAD_BUFFER_SIZE ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%snvm__fmt__spad_enables_ref__loc2[%u]",
|
|
pprefix, i);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s = %u\n",
|
|
ppre_text,
|
|
pdata->nvm__fmt__spad_enables_ref__loc2[i]);
|
|
}
|
|
|
|
for (i = 0 ; i < VL53LX_REF_SPAD_BUFFER_SIZE ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%snvm__fmt__spad_enables_ref__loc3[%u]",
|
|
pprefix, i);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s = %u\n",
|
|
ppre_text,
|
|
pdata->nvm__fmt__spad_enables_ref__loc3[i]);
|
|
}
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__roi_config__mode_roi_centre_spad",
|
|
pdata->nvm__fmt__roi_config__mode_roi_centre_spad);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__roi_config__mode_roi_x_size",
|
|
pdata->nvm__fmt__roi_config__mode_roi_x_size);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__roi_config__mode_roi_y_size",
|
|
pdata->nvm__fmt__roi_config__mode_roi_y_size);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__ref_spad_apply__num_requested_ref_spad",
|
|
pdata->nvm__fmt__ref_spad_apply__num_requested_ref_spad);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__ref_spad_man__ref_location",
|
|
pdata->nvm__fmt__ref_spad_man__ref_location);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %d\n",
|
|
pprefix,
|
|
"nvm__fmt__mm_config__inner_offset_mm",
|
|
pdata->nvm__fmt__mm_config__inner_offset_mm);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %d\n",
|
|
pprefix,
|
|
"nvm__fmt__mm_config__outer_offset_mm",
|
|
pdata->nvm__fmt__mm_config__outer_offset_mm);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->nvm__fmt__algo_part_to_part_range_offset_mm,
|
|
2,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__fmt__algo_part_to_part_range_offset_mm",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)(
|
|
pdata->nvm__fmt__algo__crosstalk_compensation_plane_offset_kcps),
|
|
9,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__fmt__algo__crosstalk_compensation_plane_offset_kcps",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)(
|
|
pdata->nvm__fmt__algo__crosstalk_compensation_x_plane_gradient_kcps),
|
|
11,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__fmt__algo__crosstalk_compensation_x_plane_gradient_kcps",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)(
|
|
pdata->nvm__fmt__algo__crosstalk_compensation_y_plane_gradient_kcps),
|
|
11,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__fmt__algo__crosstalk_compensation_y_plane_gradient_kcps",
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__spare__host_config__nvm_config_spare_0",
|
|
pdata->nvm__fmt__spare__host_config__nvm_config_spare_0);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__spare__host_config__nvm_config_spare_1",
|
|
pdata->nvm__fmt__spare__host_config__nvm_config_spare_1);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__customer_space_programmed",
|
|
pdata->nvm__customer_space_programmed);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__cust__i2c_device_address",
|
|
pdata->nvm__cust__i2c_device_address);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__cust__ref_spad_apply__num_requested_ref_spad",
|
|
pdata->nvm__cust__ref_spad_apply__num_requested_ref_spad);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__cust__ref_spad_man__ref_location",
|
|
pdata->nvm__cust__ref_spad_man__ref_location);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %d\n",
|
|
pprefix,
|
|
"nvm__cust__mm_config__inner_offset_mm",
|
|
pdata->nvm__cust__mm_config__inner_offset_mm);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %d\n",
|
|
pprefix,
|
|
"nvm__cust__mm_config__outer_offset_mm",
|
|
pdata->nvm__cust__mm_config__outer_offset_mm);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->nvm__cust__algo_part_to_part_range_offset_mm,
|
|
2,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__cust__algo_part_to_part_range_offset_mm",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(uint32_t)(
|
|
pdata->nvm__cust__algo__crosstalk_compensation_plane_offset_kcps),
|
|
9,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__cust__algo__crosstalk_compensation_plane_offset_kcps",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)(
|
|
pdata->nvm__cust__algo__crosstalk_compensation_x_plane_gradient_kcps),
|
|
11,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__cust__algo__crosstalk_compensation_x_plane_gradient_kcps",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)(
|
|
pdata->nvm__cust__algo__crosstalk_compensation_y_plane_gradient_kcps),
|
|
11,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"nvm__cust__algo__crosstalk_compensation_y_plane_gradient_kcps",
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__cust__spare__host_config__nvm_config_spare_0",
|
|
pdata->nvm__cust__spare__host_config__nvm_config_spare_0);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__cust__spare__host_config__nvm_config_spare_1",
|
|
pdata->nvm__cust__spare__host_config__nvm_config_spare_1);
|
|
|
|
|
|
|
|
sprintf(
|
|
ppre_text,
|
|
"%sfmt_optical_centre.", pprefix);
|
|
|
|
VL53LX_print_optical_centre(
|
|
&(pdata->fmt_optical_centre),
|
|
ppre_text,
|
|
VL53LX_TRACE_MODULE_NVM_DATA);
|
|
|
|
|
|
|
|
sprintf(
|
|
ppre_text,
|
|
"%sfmt_peak_rate_map.", pprefix);
|
|
|
|
VL53LX_print_cal_peak_rate_map(
|
|
&(pdata->fmt_peak_rate_map),
|
|
ppre_text,
|
|
VL53LX_TRACE_MODULE_NVM_DATA);
|
|
|
|
|
|
|
|
sprintf(
|
|
ppre_text,
|
|
"%sfmt_add_offset_data.",
|
|
pprefix);
|
|
|
|
VL53LX_print_additional_offset_cal_data(
|
|
&(pdata->fmt_add_offset_data),
|
|
ppre_text,
|
|
VL53LX_TRACE_MODULE_NVM_DATA);
|
|
|
|
|
|
|
|
for (i = 0 ; i < VL53LX_NVM_MAX_FMT_RANGE_DATA ; i++) {
|
|
sprintf(
|
|
ppre_text,
|
|
"%sfmt_range_data[%u].",
|
|
pprefix, i);
|
|
|
|
VL53LX_print_decoded_nvm_fmt_range_data(
|
|
&(pdata->fmt_range_data[i]),
|
|
ppre_text,
|
|
trace_flags);
|
|
}
|
|
|
|
sprintf(
|
|
ppre_text,
|
|
"%sfmt_info.",
|
|
pprefix);
|
|
|
|
VL53LX_print_decoded_nvm_fmt_info(
|
|
&(pdata->fmt_info),
|
|
ppre_text,
|
|
trace_flags);
|
|
|
|
sprintf(
|
|
ppre_text,
|
|
"%sews_info.",
|
|
pprefix);
|
|
|
|
VL53LX_print_decoded_nvm_ews_info(
|
|
&(pdata->ews_info),
|
|
ppre_text,
|
|
trace_flags);
|
|
}
|
|
|
|
|
|
void VL53LX_print_decoded_nvm_fmt_range_data(
|
|
VL53LX_decoded_nvm_fmt_range_data_t *pdata,
|
|
char *pprefix,
|
|
uint32_t trace_flags)
|
|
{
|
|
char fp_text[VL53LX_MAX_STRING_LENGTH];
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->result__actual_effective_rtn_spads,
|
|
8,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"result__actual_effective_rtn_spads",
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"ref_spad_array__num_requested_ref_spads",
|
|
pdata->ref_spad_array__num_requested_ref_spads);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"ref_spad_array__ref_location",
|
|
pdata->ref_spad_array__ref_location);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->result__peak_signal_count_rate_rtn_mcps,
|
|
7,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"result__peak_signal_count_rate_rtn_mcps",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->result__ambient_count_rate_rtn_mcps,
|
|
7,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"result__ambient_count_rate_rtn_mcps",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->result__peak_signal_count_rate_ref_mcps,
|
|
7,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"result__peak_signal_count_rate_ref_mcps",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->result__ambient_count_rate_ref_mcps,
|
|
7,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"result__ambient_count_rate_ref_mcps",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(int32_t)pdata->measured_distance_mm,
|
|
4,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"measured_distance_mm",
|
|
fp_text);
|
|
|
|
VL53LX_signed_fixed_point_sprintf(
|
|
(uint32_t)pdata->measured_distance_stdev_mm,
|
|
4,
|
|
VL53LX_MAX_STRING_LENGTH,
|
|
fp_text);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %s\n",
|
|
pprefix,
|
|
"measured_distance_stdev_mm",
|
|
fp_text);
|
|
}
|
|
|
|
|
|
void VL53LX_print_decoded_nvm_fmt_info(
|
|
VL53LX_decoded_nvm_fmt_info_t *pdata,
|
|
char *pprefix,
|
|
uint32_t trace_flags)
|
|
{
|
|
trace_print(VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = \"%s\"\n",
|
|
pprefix,
|
|
"nvm__fmt__fgc",
|
|
pdata->nvm__fmt__fgc);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__test_program_major",
|
|
pdata->nvm__fmt__test_program_major);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__test_program_minor",
|
|
pdata->nvm__fmt__test_program_minor);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__map_major",
|
|
pdata->nvm__fmt__map_major);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__map_minor",
|
|
pdata->nvm__fmt__map_minor);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__year",
|
|
pdata->nvm__fmt__year);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__month",
|
|
pdata->nvm__fmt__month);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__day",
|
|
pdata->nvm__fmt__day);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__module_date_phase",
|
|
pdata->nvm__fmt__module_date_phase);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__time",
|
|
pdata->nvm__fmt__time);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__tester_id",
|
|
pdata->nvm__fmt__tester_id);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__fmt__site_id",
|
|
pdata->nvm__fmt__site_id);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__test_program_major",
|
|
pdata->nvm__ews__test_program_major);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__test_program_minor",
|
|
pdata->nvm__ews__test_program_minor);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__probe_card_major",
|
|
pdata->nvm__ews__probe_card_major);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__probe_card_minor",
|
|
pdata->nvm__ews__probe_card_minor);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__tester_id",
|
|
pdata->nvm__ews__tester_id);
|
|
}
|
|
|
|
|
|
void VL53LX_print_decoded_nvm_ews_info(
|
|
VL53LX_decoded_nvm_ews_info_t *pdata,
|
|
char *pprefix,
|
|
uint32_t trace_flags)
|
|
{
|
|
trace_print(VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = \"%s\"\n",
|
|
pprefix,
|
|
"nvm__ews__lot",
|
|
pdata->nvm__ews__lot);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__wafer",
|
|
pdata->nvm__ews__wafer);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__xcoord",
|
|
pdata->nvm__ews__xcoord);
|
|
|
|
trace_print(
|
|
VL53LX_TRACE_LEVEL_INFO,
|
|
"%s%s = %u\n",
|
|
pprefix,
|
|
"nvm__ews__ycoord",
|
|
pdata->nvm__ews__ycoord);
|
|
}
|
|
|
|
#endif
|
|
|
|
|