
Mbed OS and Pelion Device Management example over WIFI for DISCO_L475VG_IOT01 board
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
DEPRECATED
This example application is not maintained and not recommended. It uses an old version of Mbed OS, Pelion DM and Arm toolchain. It doesn't work with Mbed Studio.
Please use: https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-pelion/
This example is known to work on the following platforms:
- DISCO_L475E_IOT01A over WiFI and using onboard QSPI flash.
Follow the Quick-Start instructions: https://cloud.mbed.com/quick-start
Example functionality
This example showcases the following device functionality:
- Read onboard temperature and humidity sensors, and report them as Pelion LWM2M resources (see image below).
- On user button click, increment Pelion LWM2M button resource.
- Allow the user to change the state of the board LED from Pelion LWM2M led_state resource and PUT request.
- Uses all onboard sensors and reports them as Pelion LWM2M resources.
Use this example with Mbed CLI
1. Import the application into your desktop:
mbed import https://os.mbed.com/teams/ST/code/pelion-example-disco-iot01 cd pelion-example-disco-iot01
2. Install the CLOUD_SDK_API_KEY
mbed config -G CLOUD_SDK_API_KEY <PELION_DM_API_KEY>
For instructions on how to generate your API key, please see the documentation.
3. Initialize firmware credentials (done once per repository). You can use the following command:
mbed dm init -d "<your company name in Pelion DM>" --model-name "<product model identifier>" -q --force
If above command do not work for your Mbed CLI, please consider upgrading Mbed CLI to version 1.8.x or above.
4. Compile and program:
mbed compile -t <toolchain> -m DISCO_L475VG_IOT01A
(supported toolchains : GCC_ARM / ARM / IAR)
5. You can connect on a virtual terminal/COM port to the platform using:
mbed sterm -b 115200
This should give you an output similar to:
[BOOT] Mbed Bootloader [BOOT] ARM: 00000000000000000000 [BOOT] OEM: 00000000000000000000 [BOOT] Layout: 0 80096F4 [BOOT] Active firmware integrity check: [BOOT] SHA256: 0660E360D432225D5251461998FD8617B017098C5F1F90D5FB607BF8C27ED530 [BOOT] Version: 1553615309 [BOOT] Slot 0 is empty [BOOT] Active firmware up-to-date [BOOT] Application's start address: 0x8010400 [BOOT] Application's jump address: 0x8011041 [BOOT] Application's stack address: 0x20018000 [BOOT] Forwarding to application... Starting Simple Pelion Device Management Client example You can hold the user button during boot to format the storage and change the device identity. Sensors configuration: Invalid new address! HTS221 humidity & temperature = 0xBC LPS22HB pressure & temperature = 0xB1 LIS3MDL magnetometer = 0x3D LSM6DSL accelerometer & gyroscope = 0x6A Connecting to the network using Wifi... Connected to the network successfully. IP address: 192.168.1.3 Initializing Pelion Device Management Client... Initialized Pelion Client. Registering... Registered to Pelion Device Management. Endpoint Name: 0169********************001002d5 ADC temp: 23.0037 C, vref: 0.3661 V HTS221 temp: 28.700 C, humidity: 31.90 % LPS22HB temp: 29.600 C, pressure: 1032.01 mbar LIS3MDL mag: 0.217 x, -0.284 y, -0.053 z [gauss] LSM6DSL acc: 0.005 x, -0.014 y, 1.029 z [g] LSM6DSL gyro: 0.910 x, -0.910 y, 1.120 z [dps] VL53L0X dist: 1855 mm
sensors/VL53L0X/VL53L0X_device.h@36:aaf44d2a6c33, 2020-03-13 (annotated)
- Committer:
- chris
- Date:
- Fri Mar 13 13:18:07 2020 +0000
- Revision:
- 36:aaf44d2a6c33
- Parent:
- 18:a15bfe7aaebd
First revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
screamer | 18:a15bfe7aaebd | 1 | /******************************************************************************* |
screamer | 18:a15bfe7aaebd | 2 | Copyright © 2016, STMicroelectronics International N.V. |
screamer | 18:a15bfe7aaebd | 3 | All rights reserved. |
screamer | 18:a15bfe7aaebd | 4 | |
screamer | 18:a15bfe7aaebd | 5 | Redistribution and use in source and binary forms, with or without |
screamer | 18:a15bfe7aaebd | 6 | modification, are permitted provided that the following conditions are met: |
screamer | 18:a15bfe7aaebd | 7 | * Redistributions of source code must retain the above copyright |
screamer | 18:a15bfe7aaebd | 8 | notice, this list of conditions and the following disclaimer. |
screamer | 18:a15bfe7aaebd | 9 | * Redistributions in binary form must reproduce the above copyright |
screamer | 18:a15bfe7aaebd | 10 | notice, this list of conditions and the following disclaimer in the |
screamer | 18:a15bfe7aaebd | 11 | documentation and/or other materials provided with the distribution. |
screamer | 18:a15bfe7aaebd | 12 | * Neither the name of STMicroelectronics nor the |
screamer | 18:a15bfe7aaebd | 13 | names of its contributors may be used to endorse or promote products |
screamer | 18:a15bfe7aaebd | 14 | derived from this software without specific prior written permission. |
screamer | 18:a15bfe7aaebd | 15 | |
screamer | 18:a15bfe7aaebd | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
screamer | 18:a15bfe7aaebd | 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
screamer | 18:a15bfe7aaebd | 18 | WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND |
screamer | 18:a15bfe7aaebd | 19 | NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED. |
screamer | 18:a15bfe7aaebd | 20 | IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. BE LIABLE FOR ANY |
screamer | 18:a15bfe7aaebd | 21 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
screamer | 18:a15bfe7aaebd | 22 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
screamer | 18:a15bfe7aaebd | 23 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
screamer | 18:a15bfe7aaebd | 24 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
screamer | 18:a15bfe7aaebd | 25 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
screamer | 18:a15bfe7aaebd | 26 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
screamer | 18:a15bfe7aaebd | 27 | *******************************************************************************/ |
screamer | 18:a15bfe7aaebd | 28 | |
screamer | 18:a15bfe7aaebd | 29 | /** |
screamer | 18:a15bfe7aaebd | 30 | * Device specific defines. To be adapted by implementer for the targeted |
screamer | 18:a15bfe7aaebd | 31 | * device. |
screamer | 18:a15bfe7aaebd | 32 | */ |
screamer | 18:a15bfe7aaebd | 33 | |
screamer | 18:a15bfe7aaebd | 34 | #ifndef _VL53L0X_DEVICE_H_ |
screamer | 18:a15bfe7aaebd | 35 | #define _VL53L0X_DEVICE_H_ |
screamer | 18:a15bfe7aaebd | 36 | |
screamer | 18:a15bfe7aaebd | 37 | #include "VL53L0X_types.h" |
screamer | 18:a15bfe7aaebd | 38 | |
screamer | 18:a15bfe7aaebd | 39 | |
screamer | 18:a15bfe7aaebd | 40 | /** @defgroup VL53L0X_DevSpecDefines_group VL53L0X cut1.1 Device Specific Defines |
screamer | 18:a15bfe7aaebd | 41 | * @brief VL53L0X cut1.1 Device Specific Defines |
screamer | 18:a15bfe7aaebd | 42 | * @{ |
screamer | 18:a15bfe7aaebd | 43 | */ |
screamer | 18:a15bfe7aaebd | 44 | |
screamer | 18:a15bfe7aaebd | 45 | |
screamer | 18:a15bfe7aaebd | 46 | /** @defgroup VL53L0X_DeviceError_group Device Error |
screamer | 18:a15bfe7aaebd | 47 | * @brief Device Error code |
screamer | 18:a15bfe7aaebd | 48 | * |
screamer | 18:a15bfe7aaebd | 49 | * This enum is Device specific it should be updated in the implementation |
screamer | 18:a15bfe7aaebd | 50 | * Use @a VL53L0X_GetStatusErrorString() to get the string. |
screamer | 18:a15bfe7aaebd | 51 | * It is related to Status Register of the Device. |
screamer | 18:a15bfe7aaebd | 52 | * @{ |
screamer | 18:a15bfe7aaebd | 53 | */ |
screamer | 18:a15bfe7aaebd | 54 | typedef uint8_t VL53L0X_DeviceError; |
screamer | 18:a15bfe7aaebd | 55 | |
screamer | 18:a15bfe7aaebd | 56 | #define VL53L0X_DEVICEERROR_NONE ((VL53L0X_DeviceError) 0) |
screamer | 18:a15bfe7aaebd | 57 | /*!< 0 NoError */ |
screamer | 18:a15bfe7aaebd | 58 | #define VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE ((VL53L0X_DeviceError) 1) |
screamer | 18:a15bfe7aaebd | 59 | #define VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE ((VL53L0X_DeviceError) 2) |
screamer | 18:a15bfe7aaebd | 60 | #define VL53L0X_DEVICEERROR_NOVHVVALUEFOUND ((VL53L0X_DeviceError) 3) |
screamer | 18:a15bfe7aaebd | 61 | #define VL53L0X_DEVICEERROR_MSRCNOTARGET ((VL53L0X_DeviceError) 4) |
screamer | 18:a15bfe7aaebd | 62 | #define VL53L0X_DEVICEERROR_SNRCHECK ((VL53L0X_DeviceError) 5) |
screamer | 18:a15bfe7aaebd | 63 | #define VL53L0X_DEVICEERROR_RANGEPHASECHECK ((VL53L0X_DeviceError) 6) |
screamer | 18:a15bfe7aaebd | 64 | #define VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK ((VL53L0X_DeviceError) 7) |
screamer | 18:a15bfe7aaebd | 65 | #define VL53L0X_DEVICEERROR_TCC ((VL53L0X_DeviceError) 8) |
screamer | 18:a15bfe7aaebd | 66 | #define VL53L0X_DEVICEERROR_PHASECONSISTENCY ((VL53L0X_DeviceError) 9) |
screamer | 18:a15bfe7aaebd | 67 | #define VL53L0X_DEVICEERROR_MINCLIP ((VL53L0X_DeviceError) 10) |
screamer | 18:a15bfe7aaebd | 68 | #define VL53L0X_DEVICEERROR_RANGECOMPLETE ((VL53L0X_DeviceError) 11) |
screamer | 18:a15bfe7aaebd | 69 | #define VL53L0X_DEVICEERROR_ALGOUNDERFLOW ((VL53L0X_DeviceError) 12) |
screamer | 18:a15bfe7aaebd | 70 | #define VL53L0X_DEVICEERROR_ALGOOVERFLOW ((VL53L0X_DeviceError) 13) |
screamer | 18:a15bfe7aaebd | 71 | #define VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD ((VL53L0X_DeviceError) 14) |
screamer | 18:a15bfe7aaebd | 72 | |
screamer | 18:a15bfe7aaebd | 73 | /** @} end of VL53L0X_DeviceError_group */ |
screamer | 18:a15bfe7aaebd | 74 | |
screamer | 18:a15bfe7aaebd | 75 | |
screamer | 18:a15bfe7aaebd | 76 | /** @defgroup VL53L0X_CheckEnable_group Check Enable list |
screamer | 18:a15bfe7aaebd | 77 | * @brief Check Enable code |
screamer | 18:a15bfe7aaebd | 78 | * |
screamer | 18:a15bfe7aaebd | 79 | * Define used to specify the LimitCheckId. |
screamer | 18:a15bfe7aaebd | 80 | * Use @a VL53L0X_GetLimitCheckInfo() to get the string. |
screamer | 18:a15bfe7aaebd | 81 | * @{ |
screamer | 18:a15bfe7aaebd | 82 | */ |
screamer | 18:a15bfe7aaebd | 83 | |
screamer | 18:a15bfe7aaebd | 84 | #define VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE 0 |
screamer | 18:a15bfe7aaebd | 85 | #define VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE 1 |
screamer | 18:a15bfe7aaebd | 86 | #define VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP 2 |
screamer | 18:a15bfe7aaebd | 87 | #define VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD 3 |
screamer | 18:a15bfe7aaebd | 88 | #define VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC 4 |
screamer | 18:a15bfe7aaebd | 89 | #define VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE 5 |
screamer | 18:a15bfe7aaebd | 90 | |
screamer | 18:a15bfe7aaebd | 91 | #define VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS 6 |
screamer | 18:a15bfe7aaebd | 92 | |
screamer | 18:a15bfe7aaebd | 93 | /** @} end of VL53L0X_CheckEnable_group */ |
screamer | 18:a15bfe7aaebd | 94 | |
screamer | 18:a15bfe7aaebd | 95 | |
screamer | 18:a15bfe7aaebd | 96 | /** @defgroup VL53L0X_GpioFunctionality_group Gpio Functionality |
screamer | 18:a15bfe7aaebd | 97 | * @brief Defines the different functionalities for the device GPIO(s) |
screamer | 18:a15bfe7aaebd | 98 | * @{ |
screamer | 18:a15bfe7aaebd | 99 | */ |
screamer | 18:a15bfe7aaebd | 100 | typedef uint8_t VL53L0X_GpioFunctionality; |
screamer | 18:a15bfe7aaebd | 101 | |
screamer | 18:a15bfe7aaebd | 102 | #define VL53L0X_GPIOFUNCTIONALITY_OFF \ |
screamer | 18:a15bfe7aaebd | 103 | ((VL53L0X_GpioFunctionality) 0) /*!< NO Interrupt */ |
screamer | 18:a15bfe7aaebd | 104 | #define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW \ |
screamer | 18:a15bfe7aaebd | 105 | ((VL53L0X_GpioFunctionality) 1) /*!< Level Low (value < thresh_low) */ |
screamer | 18:a15bfe7aaebd | 106 | #define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH \ |
screamer | 18:a15bfe7aaebd | 107 | ((VL53L0X_GpioFunctionality) 2) /*!< Level High (value > thresh_high) */ |
screamer | 18:a15bfe7aaebd | 108 | #define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT \ |
screamer | 18:a15bfe7aaebd | 109 | ((VL53L0X_GpioFunctionality) 3) |
screamer | 18:a15bfe7aaebd | 110 | /*!< Out Of Window (value < thresh_low OR value > thresh_high) */ |
screamer | 18:a15bfe7aaebd | 111 | #define VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY \ |
screamer | 18:a15bfe7aaebd | 112 | ((VL53L0X_GpioFunctionality) 4) /*!< New Sample Ready */ |
screamer | 18:a15bfe7aaebd | 113 | |
screamer | 18:a15bfe7aaebd | 114 | /** @} end of VL53L0X_GpioFunctionality_group */ |
screamer | 18:a15bfe7aaebd | 115 | |
screamer | 18:a15bfe7aaebd | 116 | |
screamer | 18:a15bfe7aaebd | 117 | /* Device register map */ |
screamer | 18:a15bfe7aaebd | 118 | |
screamer | 18:a15bfe7aaebd | 119 | /** @defgroup VL53L0X_DefineRegisters_group Define Registers |
screamer | 18:a15bfe7aaebd | 120 | * @brief List of all the defined registers |
screamer | 18:a15bfe7aaebd | 121 | * @{ |
screamer | 18:a15bfe7aaebd | 122 | */ |
screamer | 18:a15bfe7aaebd | 123 | #define VL53L0X_REG_SYSRANGE_START 0x000 |
screamer | 18:a15bfe7aaebd | 124 | /** mask existing bit in #VL53L0X_REG_SYSRANGE_START*/ |
screamer | 18:a15bfe7aaebd | 125 | #define VL53L0X_REG_SYSRANGE_MODE_MASK 0x0F |
screamer | 18:a15bfe7aaebd | 126 | /** bit 0 in #VL53L0X_REG_SYSRANGE_START write 1 toggle state in |
screamer | 18:a15bfe7aaebd | 127 | * continuous mode and arm next shot in single shot mode */ |
screamer | 18:a15bfe7aaebd | 128 | #define VL53L0X_REG_SYSRANGE_MODE_START_STOP 0x01 |
screamer | 18:a15bfe7aaebd | 129 | /** bit 1 write 0 in #VL53L0X_REG_SYSRANGE_START set single shot mode */ |
screamer | 18:a15bfe7aaebd | 130 | #define VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT 0x00 |
screamer | 18:a15bfe7aaebd | 131 | /** bit 1 write 1 in #VL53L0X_REG_SYSRANGE_START set back-to-back |
screamer | 18:a15bfe7aaebd | 132 | * operation mode */ |
screamer | 18:a15bfe7aaebd | 133 | #define VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK 0x02 |
screamer | 18:a15bfe7aaebd | 134 | /** bit 2 write 1 in #VL53L0X_REG_SYSRANGE_START set timed operation |
screamer | 18:a15bfe7aaebd | 135 | * mode */ |
screamer | 18:a15bfe7aaebd | 136 | #define VL53L0X_REG_SYSRANGE_MODE_TIMED 0x04 |
screamer | 18:a15bfe7aaebd | 137 | /** bit 3 write 1 in #VL53L0X_REG_SYSRANGE_START set histogram operation |
screamer | 18:a15bfe7aaebd | 138 | * mode */ |
screamer | 18:a15bfe7aaebd | 139 | #define VL53L0X_REG_SYSRANGE_MODE_HISTOGRAM 0x08 |
screamer | 18:a15bfe7aaebd | 140 | |
screamer | 18:a15bfe7aaebd | 141 | |
screamer | 18:a15bfe7aaebd | 142 | #define VL53L0X_REG_SYSTEM_THRESH_HIGH 0x000C |
screamer | 18:a15bfe7aaebd | 143 | #define VL53L0X_REG_SYSTEM_THRESH_LOW 0x000E |
screamer | 18:a15bfe7aaebd | 144 | |
screamer | 18:a15bfe7aaebd | 145 | |
screamer | 18:a15bfe7aaebd | 146 | #define VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG 0x0001 |
screamer | 18:a15bfe7aaebd | 147 | #define VL53L0X_REG_SYSTEM_RANGE_CONFIG 0x0009 |
screamer | 18:a15bfe7aaebd | 148 | #define VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD 0x0004 |
screamer | 18:a15bfe7aaebd | 149 | |
screamer | 18:a15bfe7aaebd | 150 | |
screamer | 18:a15bfe7aaebd | 151 | #define VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO 0x000A |
screamer | 18:a15bfe7aaebd | 152 | #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_DISABLED 0x00 |
screamer | 18:a15bfe7aaebd | 153 | #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_LOW 0x01 |
screamer | 18:a15bfe7aaebd | 154 | #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_HIGH 0x02 |
screamer | 18:a15bfe7aaebd | 155 | #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW 0x03 |
screamer | 18:a15bfe7aaebd | 156 | #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY 0x04 |
screamer | 18:a15bfe7aaebd | 157 | |
screamer | 18:a15bfe7aaebd | 158 | #define VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH 0x0084 |
screamer | 18:a15bfe7aaebd | 159 | |
screamer | 18:a15bfe7aaebd | 160 | |
screamer | 18:a15bfe7aaebd | 161 | #define VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR 0x000B |
screamer | 18:a15bfe7aaebd | 162 | |
screamer | 18:a15bfe7aaebd | 163 | /* Result registers */ |
screamer | 18:a15bfe7aaebd | 164 | #define VL53L0X_REG_RESULT_INTERRUPT_STATUS 0x0013 |
screamer | 18:a15bfe7aaebd | 165 | #define VL53L0X_REG_RESULT_RANGE_STATUS 0x0014 |
screamer | 18:a15bfe7aaebd | 166 | |
screamer | 18:a15bfe7aaebd | 167 | #define VL53L0X_REG_RESULT_CORE_PAGE 1 |
screamer | 18:a15bfe7aaebd | 168 | #define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN 0x00BC |
screamer | 18:a15bfe7aaebd | 169 | #define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN 0x00C0 |
screamer | 18:a15bfe7aaebd | 170 | #define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF 0x00D0 |
screamer | 18:a15bfe7aaebd | 171 | #define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF 0x00D4 |
screamer | 18:a15bfe7aaebd | 172 | #define VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF 0x00B6 |
screamer | 18:a15bfe7aaebd | 173 | |
screamer | 18:a15bfe7aaebd | 174 | /* Algo register */ |
screamer | 18:a15bfe7aaebd | 175 | |
screamer | 18:a15bfe7aaebd | 176 | #define VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM 0x0028 |
screamer | 18:a15bfe7aaebd | 177 | |
screamer | 18:a15bfe7aaebd | 178 | #define VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS 0x008a |
screamer | 18:a15bfe7aaebd | 179 | |
screamer | 18:a15bfe7aaebd | 180 | /* Check Limit registers */ |
screamer | 18:a15bfe7aaebd | 181 | #define VL53L0X_REG_MSRC_CONFIG_CONTROL 0x0060 |
screamer | 18:a15bfe7aaebd | 182 | |
screamer | 18:a15bfe7aaebd | 183 | #define VL53L0X_REG_PRE_RANGE_CONFIG_MIN_SNR 0X0027 |
screamer | 18:a15bfe7aaebd | 184 | #define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW 0x0056 |
screamer | 18:a15bfe7aaebd | 185 | #define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH 0x0057 |
screamer | 18:a15bfe7aaebd | 186 | #define VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT 0x0064 |
screamer | 18:a15bfe7aaebd | 187 | |
screamer | 18:a15bfe7aaebd | 188 | #define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_SNR 0X0067 |
screamer | 18:a15bfe7aaebd | 189 | #define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW 0x0047 |
screamer | 18:a15bfe7aaebd | 190 | #define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH 0x0048 |
screamer | 18:a15bfe7aaebd | 191 | #define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT 0x0044 |
screamer | 18:a15bfe7aaebd | 192 | |
screamer | 18:a15bfe7aaebd | 193 | |
screamer | 18:a15bfe7aaebd | 194 | #define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI 0X0061 |
screamer | 18:a15bfe7aaebd | 195 | #define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO 0X0062 |
screamer | 18:a15bfe7aaebd | 196 | |
screamer | 18:a15bfe7aaebd | 197 | /* PRE RANGE registers */ |
screamer | 18:a15bfe7aaebd | 198 | #define VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD 0x0050 |
screamer | 18:a15bfe7aaebd | 199 | #define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI 0x0051 |
screamer | 18:a15bfe7aaebd | 200 | #define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO 0x0052 |
screamer | 18:a15bfe7aaebd | 201 | |
screamer | 18:a15bfe7aaebd | 202 | #define VL53L0X_REG_SYSTEM_HISTOGRAM_BIN 0x0081 |
screamer | 18:a15bfe7aaebd | 203 | #define VL53L0X_REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT 0x0033 |
screamer | 18:a15bfe7aaebd | 204 | #define VL53L0X_REG_HISTOGRAM_CONFIG_READOUT_CTRL 0x0055 |
screamer | 18:a15bfe7aaebd | 205 | |
screamer | 18:a15bfe7aaebd | 206 | #define VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD 0x0070 |
screamer | 18:a15bfe7aaebd | 207 | #define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI 0x0071 |
screamer | 18:a15bfe7aaebd | 208 | #define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO 0x0072 |
screamer | 18:a15bfe7aaebd | 209 | #define VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS 0x0020 |
screamer | 18:a15bfe7aaebd | 210 | |
screamer | 18:a15bfe7aaebd | 211 | #define VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP 0x0046 |
screamer | 18:a15bfe7aaebd | 212 | |
screamer | 18:a15bfe7aaebd | 213 | |
screamer | 18:a15bfe7aaebd | 214 | #define VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N 0x00bf |
screamer | 18:a15bfe7aaebd | 215 | #define VL53L0X_REG_IDENTIFICATION_MODEL_ID 0x00c0 |
screamer | 18:a15bfe7aaebd | 216 | #define VL53L0X_REG_IDENTIFICATION_REVISION_ID 0x00c2 |
screamer | 18:a15bfe7aaebd | 217 | |
screamer | 18:a15bfe7aaebd | 218 | #define VL53L0X_REG_OSC_CALIBRATE_VAL 0x00f8 |
screamer | 18:a15bfe7aaebd | 219 | |
screamer | 18:a15bfe7aaebd | 220 | |
screamer | 18:a15bfe7aaebd | 221 | #define VL53L0X_SIGMA_ESTIMATE_MAX_VALUE 65535 |
screamer | 18:a15bfe7aaebd | 222 | /* equivalent to a range sigma of 655.35mm */ |
screamer | 18:a15bfe7aaebd | 223 | |
screamer | 18:a15bfe7aaebd | 224 | #define VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH 0x032 |
screamer | 18:a15bfe7aaebd | 225 | #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0 0x0B0 |
screamer | 18:a15bfe7aaebd | 226 | #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1 0x0B1 |
screamer | 18:a15bfe7aaebd | 227 | #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2 0x0B2 |
screamer | 18:a15bfe7aaebd | 228 | #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3 0x0B3 |
screamer | 18:a15bfe7aaebd | 229 | #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4 0x0B4 |
screamer | 18:a15bfe7aaebd | 230 | #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5 0x0B5 |
screamer | 18:a15bfe7aaebd | 231 | |
screamer | 18:a15bfe7aaebd | 232 | #define VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT 0xB6 |
screamer | 18:a15bfe7aaebd | 233 | #define VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 0x4E /* 0x14E */ |
screamer | 18:a15bfe7aaebd | 234 | #define VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET 0x4F /* 0x14F */ |
screamer | 18:a15bfe7aaebd | 235 | #define VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE 0x80 |
screamer | 18:a15bfe7aaebd | 236 | |
screamer | 18:a15bfe7aaebd | 237 | /* |
screamer | 18:a15bfe7aaebd | 238 | * Speed of light in um per 1E-10 Seconds |
screamer | 18:a15bfe7aaebd | 239 | */ |
screamer | 18:a15bfe7aaebd | 240 | |
screamer | 18:a15bfe7aaebd | 241 | #define VL53L0X_SPEED_OF_LIGHT_IN_AIR 2997 |
screamer | 18:a15bfe7aaebd | 242 | |
screamer | 18:a15bfe7aaebd | 243 | #define VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV 0x0089 |
screamer | 18:a15bfe7aaebd | 244 | |
screamer | 18:a15bfe7aaebd | 245 | #define VL53L0X_REG_ALGO_PHASECAL_LIM 0x0030 /* 0x130 */ |
screamer | 18:a15bfe7aaebd | 246 | #define VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT 0x0030 |
screamer | 18:a15bfe7aaebd | 247 | |
screamer | 18:a15bfe7aaebd | 248 | /** @} VL53L0X_DefineRegisters_group */ |
screamer | 18:a15bfe7aaebd | 249 | |
screamer | 18:a15bfe7aaebd | 250 | /** @} VL53L0X_DevSpecDefines_group */ |
screamer | 18:a15bfe7aaebd | 251 | |
screamer | 18:a15bfe7aaebd | 252 | |
screamer | 18:a15bfe7aaebd | 253 | #endif |
screamer | 18:a15bfe7aaebd | 254 | |
screamer | 18:a15bfe7aaebd | 255 | /* _VL53L0X_DEVICE_H_ */ |
screamer | 18:a15bfe7aaebd | 256 | |
screamer | 18:a15bfe7aaebd | 257 |