Rename library
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging
modules/vl53lx_silicon_core.c@7:7f1bbf370283, 2021-07-21 (annotated)
- 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?
User | Revision | Line number | New 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 |