Rename library

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging

Committer:
charlesmn
Date:
Wed Jul 21 14:07:59 2021 +0000
Revision:
7:7f1bbf370283
Parent:
5:89031b2f5316
Moved vl53l3cx_class.cpp and .h to 53l3a2_RangingClass

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Charles MacNeill 5:89031b2f5316 1
Charles MacNeill 5:89031b2f5316 2 // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
Charles MacNeill 5:89031b2f5316 3 /******************************************************************************
Charles MacNeill 5:89031b2f5316 4 * Copyright (c) 2020, STMicroelectronics - All Rights Reserved
Charles MacNeill 5:89031b2f5316 5
Charles MacNeill 5:89031b2f5316 6 This file is part of VL53LX and is dual licensed,
Charles MacNeill 5:89031b2f5316 7 either GPL-2.0+
Charles MacNeill 5:89031b2f5316 8 or 'BSD 3-clause "New" or "Revised" License' , at your option.
Charles MacNeill 5:89031b2f5316 9 ******************************************************************************
Charles MacNeill 5:89031b2f5316 10 */
Charles MacNeill 5:89031b2f5316 11
Charles MacNeill 5:89031b2f5316 12
Charles MacNeill 5:89031b2f5316 13
Charles MacNeill 5:89031b2f5316 14
Charles MacNeill 5:89031b2f5316 15
Charles MacNeill 5:89031b2f5316 16 #include "vl53lx_platform.h"
Charles MacNeill 5:89031b2f5316 17 #include "vl53lx_ll_def.h"
Charles MacNeill 5:89031b2f5316 18 #include "vl53lx_register_map.h"
Charles MacNeill 5:89031b2f5316 19 #include "vl53lx_core.h"
Charles MacNeill 5:89031b2f5316 20 #include "vl53lx_silicon_core.h"
Charles MacNeill 5:89031b2f5316 21
Charles MacNeill 5:89031b2f5316 22
Charles MacNeill 5:89031b2f5316 23 #define LOG_FUNCTION_START(fmt, ...) \
Charles MacNeill 5:89031b2f5316 24 _LOG_FUNCTION_START(VL53LX_TRACE_MODULE_CORE, fmt, ##__VA_ARGS__)
Charles MacNeill 5:89031b2f5316 25 #define LOG_FUNCTION_END(status, ...) \
Charles MacNeill 5:89031b2f5316 26 _LOG_FUNCTION_END(VL53LX_TRACE_MODULE_CORE, status, ##__VA_ARGS__)
Charles MacNeill 5:89031b2f5316 27 #define LOG_FUNCTION_END_FMT(status, fmt, ...) \
Charles MacNeill 5:89031b2f5316 28 _LOG_FUNCTION_END_FMT(VL53LX_TRACE_MODULE_CORE,\
Charles MacNeill 5:89031b2f5316 29 status, fmt, ##__VA_ARGS__)
Charles MacNeill 5:89031b2f5316 30
Charles MacNeill 5:89031b2f5316 31
Charles MacNeill 5:89031b2f5316 32 VL53LX_Error VL53LX_is_firmware_ready_silicon(
Charles MacNeill 5:89031b2f5316 33 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 34 uint8_t *pready)
Charles MacNeill 5:89031b2f5316 35 {
Charles MacNeill 5:89031b2f5316 36
Charles MacNeill 5:89031b2f5316 37
Charles MacNeill 5:89031b2f5316 38 VL53LX_Error status = VL53LX_ERROR_NONE;
Charles MacNeill 5:89031b2f5316 39 VL53LX_LLDriverData_t *pdev = VL53LXDevStructGetLLDriverHandle(Dev);
Charles MacNeill 5:89031b2f5316 40
Charles MacNeill 5:89031b2f5316 41 uint8_t comms_buffer[5];
Charles MacNeill 5:89031b2f5316 42
Charles MacNeill 5:89031b2f5316 43 LOG_FUNCTION_START("");
Charles MacNeill 5:89031b2f5316 44
Charles MacNeill 5:89031b2f5316 45
Charles MacNeill 5:89031b2f5316 46
Charles MacNeill 5:89031b2f5316 47 status = VL53LX_ReadMulti(
Charles MacNeill 5:89031b2f5316 48 Dev,
Charles MacNeill 5:89031b2f5316 49 VL53LX_INTERRUPT_MANAGER__ENABLES,
Charles MacNeill 5:89031b2f5316 50 comms_buffer,
Charles MacNeill 5:89031b2f5316 51 5);
Charles MacNeill 5:89031b2f5316 52
Charles MacNeill 5:89031b2f5316 53 if (status != VL53LX_ERROR_NONE)
Charles MacNeill 5:89031b2f5316 54 goto ENDFUNC;
Charles MacNeill 5:89031b2f5316 55
Charles MacNeill 5:89031b2f5316 56 pdev->dbg_results.interrupt_manager__enables =
Charles MacNeill 5:89031b2f5316 57 comms_buffer[0];
Charles MacNeill 5:89031b2f5316 58 pdev->dbg_results.interrupt_manager__clear =
Charles MacNeill 5:89031b2f5316 59 comms_buffer[1];
Charles MacNeill 5:89031b2f5316 60 pdev->dbg_results.interrupt_manager__status =
Charles MacNeill 5:89031b2f5316 61 comms_buffer[2];
Charles MacNeill 5:89031b2f5316 62 pdev->dbg_results.mcu_to_host_bank__wr_access_en =
Charles MacNeill 5:89031b2f5316 63 comms_buffer[3];
Charles MacNeill 5:89031b2f5316 64 pdev->dbg_results.power_management__go1_reset_status =
Charles MacNeill 5:89031b2f5316 65 comms_buffer[4];
Charles MacNeill 5:89031b2f5316 66
Charles MacNeill 5:89031b2f5316 67 if ((pdev->sys_ctrl.power_management__go1_power_force & 0x01)
Charles MacNeill 5:89031b2f5316 68 == 0x01) {
Charles MacNeill 5:89031b2f5316 69
Charles MacNeill 5:89031b2f5316 70 if (((pdev->dbg_results.interrupt_manager__enables &
Charles MacNeill 5:89031b2f5316 71 0x1F) == 0x1F) &&
Charles MacNeill 5:89031b2f5316 72 ((pdev->dbg_results.interrupt_manager__clear
Charles MacNeill 5:89031b2f5316 73 & 0x1F) == 0x1F))
Charles MacNeill 5:89031b2f5316 74 *pready = 0x01;
Charles MacNeill 5:89031b2f5316 75 else
Charles MacNeill 5:89031b2f5316 76 *pready = 0x00;
Charles MacNeill 5:89031b2f5316 77
Charles MacNeill 5:89031b2f5316 78 } else {
Charles MacNeill 5:89031b2f5316 79
Charles MacNeill 5:89031b2f5316 80
Charles MacNeill 5:89031b2f5316 81 if ((pdev->dbg_results.power_management__go1_reset_status
Charles MacNeill 5:89031b2f5316 82 & 0x01) == 0x00)
Charles MacNeill 5:89031b2f5316 83 *pready = 0x01;
Charles MacNeill 5:89031b2f5316 84 else
Charles MacNeill 5:89031b2f5316 85 *pready = 0x00;
Charles MacNeill 5:89031b2f5316 86 }
Charles MacNeill 5:89031b2f5316 87
Charles MacNeill 5:89031b2f5316 88
Charles MacNeill 5:89031b2f5316 89 ENDFUNC:
Charles MacNeill 5:89031b2f5316 90 LOG_FUNCTION_END(status);
Charles MacNeill 5:89031b2f5316 91
Charles MacNeill 5:89031b2f5316 92 return status;
Charles MacNeill 5:89031b2f5316 93 }
Charles MacNeill 5:89031b2f5316 94