Fork of X-NUCLEO-53L0A1 Library and deleted the board related files. Just use a VL53L0X chip as a ToF sensor.

Dependents:   Check_VL53L0X_simple_with_three_ToF Check_VL53L0X_simple_ToF_Sensor lidarproj Check_VL53L0X_simple_with_three_ToF ... more

Fork of VL53L0X by ST

Please refer below page.
/users/kenjiArai/notebook/vl53l0x-tof-sensor/

Committer:
kenjiArai
Date:
Tue Feb 06 10:35:18 2018 +0000
Revision:
8:ac14de4512e8
Parent:
5:ac6604b75d50
modified for multi VL53L0X control

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 5:ac6604b75d50 1
kenjiArai 5:ac6604b75d50 2 /**
kenjiArai 5:ac6604b75d50 3 * The device model ID
kenjiArai 5:ac6604b75d50 4 */
kenjiArai 5:ac6604b75d50 5 #define IDENTIFICATION_MODEL_ID 0x000
kenjiArai 5:ac6604b75d50 6
kenjiArai 5:ac6604b75d50 7
kenjiArai 5:ac6604b75d50 8 #define STATUS_OK 0x00
kenjiArai 5:ac6604b75d50 9 #define STATUS_FAIL 0x01
kenjiArai 5:ac6604b75d50 10
kenjiArai 8:ac14de4512e8 11 #if ORIGINAL
kenjiArai 5:ac6604b75d50 12 #define VL53L0X_OsDelay(...) wait_ms(2) // 2 msec delay. can also use wait(float secs)/wait_us(int)
kenjiArai 8:ac14de4512e8 13 #endif
kenjiArai 5:ac6604b75d50 14
kenjiArai 5:ac6604b75d50 15 #ifdef USE_EMPTY_STRING
kenjiArai 5:ac6604b75d50 16 #define VL53L0X_STRING_DEVICE_INFO_NAME ""
kenjiArai 5:ac6604b75d50 17 #define VL53L0X_STRING_DEVICE_INFO_NAME_TS0 ""
kenjiArai 5:ac6604b75d50 18 #define VL53L0X_STRING_DEVICE_INFO_NAME_TS1 ""
kenjiArai 5:ac6604b75d50 19 #define VL53L0X_STRING_DEVICE_INFO_NAME_TS2 ""
kenjiArai 5:ac6604b75d50 20 #define VL53L0X_STRING_DEVICE_INFO_NAME_ES1 ""
kenjiArai 5:ac6604b75d50 21 #define VL53L0X_STRING_DEVICE_INFO_TYPE ""
kenjiArai 5:ac6604b75d50 22
kenjiArai 5:ac6604b75d50 23 /* PAL ERROR strings */
kenjiArai 5:ac6604b75d50 24 #define VL53L0X_STRING_ERROR_NONE ""
kenjiArai 5:ac6604b75d50 25 #define VL53L0X_STRING_ERROR_CALIBRATION_WARNING ""
kenjiArai 5:ac6604b75d50 26 #define VL53L0X_STRING_ERROR_MIN_CLIPPED ""
kenjiArai 5:ac6604b75d50 27 #define VL53L0X_STRING_ERROR_UNDEFINED ""
kenjiArai 5:ac6604b75d50 28 #define VL53L0X_STRING_ERROR_INVALID_PARAMS ""
kenjiArai 5:ac6604b75d50 29 #define VL53L0X_STRING_ERROR_NOT_SUPPORTED ""
kenjiArai 5:ac6604b75d50 30 #define VL53L0X_STRING_ERROR_RANGE_ERROR ""
kenjiArai 5:ac6604b75d50 31 #define VL53L0X_STRING_ERROR_TIME_OUT ""
kenjiArai 5:ac6604b75d50 32 #define VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED ""
kenjiArai 5:ac6604b75d50 33 #define VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL ""
kenjiArai 5:ac6604b75d50 34 #define VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING ""
kenjiArai 5:ac6604b75d50 35 #define VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED ""
kenjiArai 5:ac6604b75d50 36 #define VL53L0X_STRING_ERROR_CONTROL_INTERFACE ""
kenjiArai 5:ac6604b75d50 37 #define VL53L0X_STRING_ERROR_INVALID_COMMAND ""
kenjiArai 5:ac6604b75d50 38 #define VL53L0X_STRING_ERROR_DIVISION_BY_ZERO ""
kenjiArai 5:ac6604b75d50 39 #define VL53L0X_STRING_ERROR_REF_SPAD_INIT ""
kenjiArai 5:ac6604b75d50 40 #define VL53L0X_STRING_ERROR_NOT_IMPLEMENTED ""
kenjiArai 5:ac6604b75d50 41
kenjiArai 5:ac6604b75d50 42 #define VL53L0X_STRING_UNKNOW_ERROR_CODE ""
kenjiArai 5:ac6604b75d50 43
kenjiArai 5:ac6604b75d50 44
kenjiArai 5:ac6604b75d50 45
kenjiArai 5:ac6604b75d50 46 /* Range Status */
kenjiArai 5:ac6604b75d50 47 #define VL53L0X_STRING_RANGESTATUS_NONE ""
kenjiArai 5:ac6604b75d50 48 #define VL53L0X_STRING_RANGESTATUS_RANGEVALID ""
kenjiArai 5:ac6604b75d50 49 #define VL53L0X_STRING_RANGESTATUS_SIGMA ""
kenjiArai 5:ac6604b75d50 50 #define VL53L0X_STRING_RANGESTATUS_SIGNAL ""
kenjiArai 5:ac6604b75d50 51 #define VL53L0X_STRING_RANGESTATUS_MINRANGE ""
kenjiArai 5:ac6604b75d50 52 #define VL53L0X_STRING_RANGESTATUS_PHASE ""
kenjiArai 5:ac6604b75d50 53 #define VL53L0X_STRING_RANGESTATUS_HW ""
kenjiArai 5:ac6604b75d50 54
kenjiArai 5:ac6604b75d50 55
kenjiArai 5:ac6604b75d50 56 /* Range Status */
kenjiArai 5:ac6604b75d50 57 #define VL53L0X_STRING_STATE_POWERDOWN ""
kenjiArai 5:ac6604b75d50 58 #define VL53L0X_STRING_STATE_WAIT_STATICINIT ""
kenjiArai 5:ac6604b75d50 59 #define VL53L0X_STRING_STATE_STANDBY ""
kenjiArai 5:ac6604b75d50 60 #define VL53L0X_STRING_STATE_IDLE ""
kenjiArai 5:ac6604b75d50 61 #define VL53L0X_STRING_STATE_RUNNING ""
kenjiArai 5:ac6604b75d50 62 #define VL53L0X_STRING_STATE_UNKNOWN ""
kenjiArai 5:ac6604b75d50 63 #define VL53L0X_STRING_STATE_ERROR ""
kenjiArai 5:ac6604b75d50 64
kenjiArai 5:ac6604b75d50 65
kenjiArai 5:ac6604b75d50 66 /* Device Specific */
kenjiArai 5:ac6604b75d50 67 #define VL53L0X_STRING_DEVICEERROR_NONE ""
kenjiArai 5:ac6604b75d50 68 #define VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE ""
kenjiArai 5:ac6604b75d50 69 #define VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE ""
kenjiArai 5:ac6604b75d50 70 #define VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND ""
kenjiArai 5:ac6604b75d50 71 #define VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET ""
kenjiArai 5:ac6604b75d50 72 #define VL53L0X_STRING_DEVICEERROR_SNRCHECK ""
kenjiArai 5:ac6604b75d50 73 #define VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK ""
kenjiArai 5:ac6604b75d50 74 #define VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK ""
kenjiArai 5:ac6604b75d50 75 #define VL53L0X_STRING_DEVICEERROR_TCC ""
kenjiArai 5:ac6604b75d50 76 #define VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY ""
kenjiArai 5:ac6604b75d50 77 #define VL53L0X_STRING_DEVICEERROR_MINCLIP ""
kenjiArai 5:ac6604b75d50 78 #define VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE ""
kenjiArai 5:ac6604b75d50 79 #define VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW ""
kenjiArai 5:ac6604b75d50 80 #define VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW ""
kenjiArai 5:ac6604b75d50 81 #define VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD ""
kenjiArai 5:ac6604b75d50 82 #define VL53L0X_STRING_DEVICEERROR_UNKNOWN ""
kenjiArai 5:ac6604b75d50 83
kenjiArai 5:ac6604b75d50 84 /* Check Enable */
kenjiArai 5:ac6604b75d50 85 #define VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE ""
kenjiArai 5:ac6604b75d50 86 #define VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE ""
kenjiArai 5:ac6604b75d50 87 #define VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP ""
kenjiArai 5:ac6604b75d50 88 #define VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD ""
kenjiArai 5:ac6604b75d50 89
kenjiArai 5:ac6604b75d50 90 /* Sequence Step */
kenjiArai 5:ac6604b75d50 91 #define VL53L0X_STRING_SEQUENCESTEP_TCC ""
kenjiArai 5:ac6604b75d50 92 #define VL53L0X_STRING_SEQUENCESTEP_DSS ""
kenjiArai 5:ac6604b75d50 93 #define VL53L0X_STRING_SEQUENCESTEP_MSRC ""
kenjiArai 5:ac6604b75d50 94 #define VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE ""
kenjiArai 5:ac6604b75d50 95 #define VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE ""
kenjiArai 5:ac6604b75d50 96 #else
kenjiArai 5:ac6604b75d50 97 #define VL53L0X_STRING_DEVICE_INFO_NAME "VL53L0X cut1.0"
kenjiArai 5:ac6604b75d50 98 #define VL53L0X_STRING_DEVICE_INFO_NAME_TS0 "VL53L0X TS0"
kenjiArai 5:ac6604b75d50 99 #define VL53L0X_STRING_DEVICE_INFO_NAME_TS1 "VL53L0X TS1"
kenjiArai 5:ac6604b75d50 100 #define VL53L0X_STRING_DEVICE_INFO_NAME_TS2 "VL53L0X TS2"
kenjiArai 5:ac6604b75d50 101 #define VL53L0X_STRING_DEVICE_INFO_NAME_ES1 "VL53L0X ES1 or later"
kenjiArai 5:ac6604b75d50 102 #define VL53L0X_STRING_DEVICE_INFO_TYPE "VL53L0X"
kenjiArai 5:ac6604b75d50 103
kenjiArai 5:ac6604b75d50 104 /* PAL ERROR strings */
kenjiArai 5:ac6604b75d50 105 #define VL53L0X_STRING_ERROR_NONE \
kenjiArai 5:ac6604b75d50 106 "No Error"
kenjiArai 5:ac6604b75d50 107 #define VL53L0X_STRING_ERROR_CALIBRATION_WARNING \
kenjiArai 5:ac6604b75d50 108 "Calibration Warning Error"
kenjiArai 5:ac6604b75d50 109 #define VL53L0X_STRING_ERROR_MIN_CLIPPED \
kenjiArai 5:ac6604b75d50 110 "Min clipped error"
kenjiArai 5:ac6604b75d50 111 #define VL53L0X_STRING_ERROR_UNDEFINED \
kenjiArai 5:ac6604b75d50 112 "Undefined error"
kenjiArai 5:ac6604b75d50 113 #define VL53L0X_STRING_ERROR_INVALID_PARAMS \
kenjiArai 5:ac6604b75d50 114 "Invalid parameters error"
kenjiArai 5:ac6604b75d50 115 #define VL53L0X_STRING_ERROR_NOT_SUPPORTED \
kenjiArai 5:ac6604b75d50 116 "Not supported error"
kenjiArai 5:ac6604b75d50 117 #define VL53L0X_STRING_ERROR_RANGE_ERROR \
kenjiArai 5:ac6604b75d50 118 "Range error"
kenjiArai 5:ac6604b75d50 119 #define VL53L0X_STRING_ERROR_TIME_OUT \
kenjiArai 5:ac6604b75d50 120 "Time out error"
kenjiArai 5:ac6604b75d50 121 #define VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED \
kenjiArai 5:ac6604b75d50 122 "Mode not supported error"
kenjiArai 5:ac6604b75d50 123 #define VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL \
kenjiArai 5:ac6604b75d50 124 "Buffer too small"
kenjiArai 5:ac6604b75d50 125 #define VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING \
kenjiArai 5:ac6604b75d50 126 "GPIO not existing"
kenjiArai 5:ac6604b75d50 127 #define VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED \
kenjiArai 5:ac6604b75d50 128 "GPIO funct not supported"
kenjiArai 5:ac6604b75d50 129 #define VL53L0X_STRING_ERROR_INTERRUPT_NOT_CLEARED \
kenjiArai 5:ac6604b75d50 130 "Interrupt not Cleared"
kenjiArai 5:ac6604b75d50 131 #define VL53L0X_STRING_ERROR_CONTROL_INTERFACE \
kenjiArai 5:ac6604b75d50 132 "Control Interface Error"
kenjiArai 5:ac6604b75d50 133 #define VL53L0X_STRING_ERROR_INVALID_COMMAND \
kenjiArai 5:ac6604b75d50 134 "Invalid Command Error"
kenjiArai 5:ac6604b75d50 135 #define VL53L0X_STRING_ERROR_DIVISION_BY_ZERO \
kenjiArai 5:ac6604b75d50 136 "Division by zero Error"
kenjiArai 5:ac6604b75d50 137 #define VL53L0X_STRING_ERROR_REF_SPAD_INIT \
kenjiArai 5:ac6604b75d50 138 "Reference Spad Init Error"
kenjiArai 5:ac6604b75d50 139 #define VL53L0X_STRING_ERROR_NOT_IMPLEMENTED \
kenjiArai 5:ac6604b75d50 140 "Not implemented error"
kenjiArai 5:ac6604b75d50 141
kenjiArai 5:ac6604b75d50 142 #define VL53L0X_STRING_UNKNOW_ERROR_CODE \
kenjiArai 5:ac6604b75d50 143 "Unknown Error Code"
kenjiArai 5:ac6604b75d50 144
kenjiArai 5:ac6604b75d50 145
kenjiArai 5:ac6604b75d50 146
kenjiArai 5:ac6604b75d50 147 /* Range Status */
kenjiArai 5:ac6604b75d50 148 #define VL53L0X_STRING_RANGESTATUS_NONE "No Update"
kenjiArai 5:ac6604b75d50 149 #define VL53L0X_STRING_RANGESTATUS_RANGEVALID "Range Valid"
kenjiArai 5:ac6604b75d50 150 #define VL53L0X_STRING_RANGESTATUS_SIGMA "Sigma Fail"
kenjiArai 5:ac6604b75d50 151 #define VL53L0X_STRING_RANGESTATUS_SIGNAL "Signal Fail"
kenjiArai 5:ac6604b75d50 152 #define VL53L0X_STRING_RANGESTATUS_MINRANGE "Min Range Fail"
kenjiArai 5:ac6604b75d50 153 #define VL53L0X_STRING_RANGESTATUS_PHASE "Phase Fail"
kenjiArai 5:ac6604b75d50 154 #define VL53L0X_STRING_RANGESTATUS_HW "Hardware Fail"
kenjiArai 5:ac6604b75d50 155
kenjiArai 5:ac6604b75d50 156
kenjiArai 5:ac6604b75d50 157 /* Range Status */
kenjiArai 5:ac6604b75d50 158 #define VL53L0X_STRING_STATE_POWERDOWN "POWERDOWN State"
kenjiArai 5:ac6604b75d50 159 #define VL53L0X_STRING_STATE_WAIT_STATICINIT \
kenjiArai 5:ac6604b75d50 160 "Wait for staticinit State"
kenjiArai 5:ac6604b75d50 161 #define VL53L0X_STRING_STATE_STANDBY "STANDBY State"
kenjiArai 5:ac6604b75d50 162 #define VL53L0X_STRING_STATE_IDLE "IDLE State"
kenjiArai 5:ac6604b75d50 163 #define VL53L0X_STRING_STATE_RUNNING "RUNNING State"
kenjiArai 5:ac6604b75d50 164 #define VL53L0X_STRING_STATE_UNKNOWN "UNKNOWN State"
kenjiArai 5:ac6604b75d50 165 #define VL53L0X_STRING_STATE_ERROR "ERROR State"
kenjiArai 5:ac6604b75d50 166
kenjiArai 5:ac6604b75d50 167
kenjiArai 5:ac6604b75d50 168 /* Device Specific */
kenjiArai 5:ac6604b75d50 169 #define VL53L0X_STRING_DEVICEERROR_NONE "No Update"
kenjiArai 5:ac6604b75d50 170 #define VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE \
kenjiArai 5:ac6604b75d50 171 "VCSEL Continuity Test Failure"
kenjiArai 5:ac6604b75d50 172 #define VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE \
kenjiArai 5:ac6604b75d50 173 "VCSEL Watchdog Test Failure"
kenjiArai 5:ac6604b75d50 174 #define VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND \
kenjiArai 5:ac6604b75d50 175 "No VHV Value found"
kenjiArai 5:ac6604b75d50 176 #define VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET \
kenjiArai 5:ac6604b75d50 177 "MSRC No Target Error"
kenjiArai 5:ac6604b75d50 178 #define VL53L0X_STRING_DEVICEERROR_SNRCHECK \
kenjiArai 5:ac6604b75d50 179 "SNR Check Exit"
kenjiArai 5:ac6604b75d50 180 #define VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK \
kenjiArai 5:ac6604b75d50 181 "Range Phase Check Error"
kenjiArai 5:ac6604b75d50 182 #define VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK \
kenjiArai 5:ac6604b75d50 183 "Sigma Threshold Check Error"
kenjiArai 5:ac6604b75d50 184 #define VL53L0X_STRING_DEVICEERROR_TCC \
kenjiArai 5:ac6604b75d50 185 "TCC Error"
kenjiArai 5:ac6604b75d50 186 #define VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY \
kenjiArai 5:ac6604b75d50 187 "Phase Consistency Error"
kenjiArai 5:ac6604b75d50 188 #define VL53L0X_STRING_DEVICEERROR_MINCLIP \
kenjiArai 5:ac6604b75d50 189 "Min Clip Error"
kenjiArai 5:ac6604b75d50 190 #define VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE \
kenjiArai 5:ac6604b75d50 191 "Range Complete"
kenjiArai 5:ac6604b75d50 192 #define VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW \
kenjiArai 5:ac6604b75d50 193 "Range Algo Underflow Error"
kenjiArai 5:ac6604b75d50 194 #define VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW \
kenjiArai 5:ac6604b75d50 195 "Range Algo Overlow Error"
kenjiArai 5:ac6604b75d50 196 #define VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD \
kenjiArai 5:ac6604b75d50 197 "Range Ignore Threshold Error"
kenjiArai 5:ac6604b75d50 198 #define VL53L0X_STRING_DEVICEERROR_UNKNOWN \
kenjiArai 5:ac6604b75d50 199 "Unknown error code"
kenjiArai 5:ac6604b75d50 200
kenjiArai 5:ac6604b75d50 201 /* Check Enable */
kenjiArai 5:ac6604b75d50 202 #define VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE \
kenjiArai 5:ac6604b75d50 203 "SIGMA FINAL RANGE"
kenjiArai 5:ac6604b75d50 204 #define VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE \
kenjiArai 5:ac6604b75d50 205 "SIGNAL RATE FINAL RANGE"
kenjiArai 5:ac6604b75d50 206 #define VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP \
kenjiArai 5:ac6604b75d50 207 "SIGNAL REF CLIP"
kenjiArai 5:ac6604b75d50 208 #define VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD \
kenjiArai 5:ac6604b75d50 209 "RANGE IGNORE THRESHOLD"
kenjiArai 5:ac6604b75d50 210 #define VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_MSRC \
kenjiArai 5:ac6604b75d50 211 "SIGNAL RATE MSRC"
kenjiArai 5:ac6604b75d50 212 #define VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_PRE_RANGE \
kenjiArai 5:ac6604b75d50 213 "SIGNAL RATE PRE RANGE"
kenjiArai 5:ac6604b75d50 214
kenjiArai 5:ac6604b75d50 215 /* Sequence Step */
kenjiArai 5:ac6604b75d50 216 #define VL53L0X_STRING_SEQUENCESTEP_TCC "TCC"
kenjiArai 5:ac6604b75d50 217 #define VL53L0X_STRING_SEQUENCESTEP_DSS "DSS"
kenjiArai 5:ac6604b75d50 218 #define VL53L0X_STRING_SEQUENCESTEP_MSRC "MSRC"
kenjiArai 5:ac6604b75d50 219 #define VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE "PRE RANGE"
kenjiArai 5:ac6604b75d50 220 #define VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE "FINAL RANGE"
kenjiArai 5:ac6604b75d50 221 #endif /* USE_EMPTY_STRING */