x-cube-tof1/Drivers/BSP/Components/vl53l1cb/modules/vl53l1_nvm.h

170 lines
3.5 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.
*
******************************************************************************
*/
#ifndef _VL53L1_NVM_H_
#define _VL53L1_NVM_H_
#include "vl53l1_ll_def.h"
#include "vl53l1_platform.h"
#ifdef __cplusplus
extern "C"
{
#endif
#define VL53L1_NVM_POWER_UP_DELAY_US 50
#define VL53L1_NVM_READ_TRIGGER_DELAY_US 5
VL53L1_Error VL53L1_nvm_enable(
VL53L1_DEV Dev,
uint16_t nvm_ctrl_pulse_width,
int32_t nvm_power_up_delay_us);
VL53L1_Error VL53L1_nvm_read(
VL53L1_DEV Dev,
uint8_t start_address,
uint8_t count,
uint8_t *pdata);
VL53L1_Error VL53L1_nvm_disable(
VL53L1_DEV Dev);
VL53L1_Error VL53L1_nvm_format_decode(
uint16_t buf_size,
uint8_t *pbuffer,
VL53L1_decoded_nvm_data_t *pdata);
VL53L1_Error VL53L1_nvm_decode_optical_centre(
uint16_t buf_size,
uint8_t *pbuffer,
VL53L1_optical_centre_t *pdata);
VL53L1_Error VL53L1_nvm_decode_cal_peak_rate_map(
uint16_t buf_size,
uint8_t *pbuffer,
VL53L1_cal_peak_rate_map_t *pdata);
VL53L1_Error VL53L1_nvm_decode_additional_offset_cal_data(
uint16_t buf_size,
uint8_t *pbuffer,
VL53L1_additional_offset_cal_data_t *pdata);
VL53L1_Error VL53L1_nvm_decode_fmt_range_results_data(
uint16_t buf_size,
uint8_t *pbuffer,
VL53L1_decoded_nvm_fmt_range_data_t *pdata);
VL53L1_Error VL53L1_nvm_decode_fmt_info(
uint16_t buf_size,
uint8_t *pbuffer,
VL53L1_decoded_nvm_fmt_info_t *pdata);
VL53L1_Error VL53L1_nvm_decode_ews_info(
uint16_t buf_size,
uint8_t *pbuffer,
VL53L1_decoded_nvm_ews_info_t *pdata);
void VL53L1_nvm_format_encode(
VL53L1_decoded_nvm_data_t *pnvm_info,
uint8_t *pnvm_data);
VL53L1_Error VL53L1_read_nvm_raw_data(
VL53L1_DEV Dev,
uint8_t start_address,
uint8_t count,
uint8_t *pnvm_raw_data);
VL53L1_Error VL53L1_read_nvm(
VL53L1_DEV Dev,
uint8_t nvm_format,
VL53L1_decoded_nvm_data_t *pnvm_info);
VL53L1_Error VL53L1_read_nvm_optical_centre(
VL53L1_DEV Dev,
VL53L1_optical_centre_t *pcentre);
VL53L1_Error VL53L1_read_nvm_cal_peak_rate_map(
VL53L1_DEV Dev,
VL53L1_cal_peak_rate_map_t *pcal_data);
VL53L1_Error VL53L1_read_nvm_additional_offset_cal_data(
VL53L1_DEV Dev,
VL53L1_additional_offset_cal_data_t *pcal_data);
VL53L1_Error VL53L1_read_nvm_fmt_range_results_data(
VL53L1_DEV Dev,
uint16_t range_results_select,
VL53L1_decoded_nvm_fmt_range_data_t *prange_data);
#ifdef __cplusplus
}
#endif
#endif