AP_RangeFinder_VL53L1X.h 112 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293
  1. #pragma once
  2. #include "RangeFinder.h"
  3. #include "RangeFinder_Backend.h"
  4. #include <AP_HAL/I2CDevice.h>
  5. class AP_RangeFinder_VL53L1X : public AP_RangeFinder_Backend
  6. {
  7. public:
  8. // static detection function
  9. static AP_RangeFinder_Backend *detect(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, AP_HAL::OwnPtr<AP_HAL::I2CDevice> _dev);
  10. // update state
  11. void update(void) override;
  12. protected:
  13. virtual MAV_DISTANCE_SENSOR _get_mav_distance_sensor_type() const override {
  14. return MAV_DISTANCE_SENSOR_LASER;
  15. }
  16. private:
  17. enum DeviceError : uint8_t
  18. {
  19. NOUPDATE = 0,
  20. VCSELCONTINUITYTESTFAILURE = 1,
  21. VCSELWATCHDOGTESTFAILURE = 2,
  22. NOVHVVALUEFOUND = 3,
  23. MSRCNOTARGET = 4,
  24. RANGEPHASECHECK = 5,
  25. SIGMATHRESHOLDCHECK = 6,
  26. PHASECONSISTENCY = 7,
  27. MINCLIP = 8,
  28. RANGECOMPLETE = 9,
  29. ALGOUNDERFLOW = 10,
  30. ALGOOVERFLOW = 11,
  31. RANGEIGNORETHRESHOLD = 12,
  32. USERROICLIP = 13,
  33. REFSPADCHARNOTENOUGHDPADS = 14,
  34. REFSPADCHARMORETHANTARGET = 15,
  35. REFSPADCHARLESSTHANTARGET = 16,
  36. MULTCLIPFAIL = 17,
  37. GPHSTREAMCOUNT0READY = 18,
  38. RANGECOMPLETE_NO_WRAP_CHECK = 19,
  39. EVENTCONSISTENCY = 20,
  40. MINSIGNALEVENTCHECK = 21,
  41. RANGECOMPLETE_MERGED_PULSE = 22,
  42. };
  43. // register addresses from API vl53l1x_register_map.h
  44. enum regAddr : uint16_t
  45. {
  46. SOFT_RESET = 0x0000,
  47. I2C_SLAVE__DEVICE_ADDRESS = 0x0001,
  48. ANA_CONFIG__VHV_REF_SEL_VDDPIX = 0x0002,
  49. ANA_CONFIG__VHV_REF_SEL_VQUENCH = 0x0003,
  50. ANA_CONFIG__REG_AVDD1V2_SEL = 0x0004,
  51. ANA_CONFIG__FAST_OSC__TRIM = 0x0005,
  52. OSC_MEASURED__FAST_OSC__FREQUENCY = 0x0006,
  53. OSC_MEASURED__FAST_OSC__FREQUENCY_HI = 0x0006,
  54. OSC_MEASURED__FAST_OSC__FREQUENCY_LO = 0x0007,
  55. VHV_CONFIG__TIMEOUT_MACROP_LOOP_BOUND = 0x0008,
  56. VHV_CONFIG__COUNT_THRESH = 0x0009,
  57. VHV_CONFIG__OFFSET = 0x000A,
  58. VHV_CONFIG__INIT = 0x000B,
  59. GLOBAL_CONFIG__SPAD_ENABLES_REF_0 = 0x000D,
  60. GLOBAL_CONFIG__SPAD_ENABLES_REF_1 = 0x000E,
  61. GLOBAL_CONFIG__SPAD_ENABLES_REF_2 = 0x000F,
  62. GLOBAL_CONFIG__SPAD_ENABLES_REF_3 = 0x0010,
  63. GLOBAL_CONFIG__SPAD_ENABLES_REF_4 = 0x0011,
  64. GLOBAL_CONFIG__SPAD_ENABLES_REF_5 = 0x0012,
  65. GLOBAL_CONFIG__REF_EN_START_SELECT = 0x0013,
  66. REF_SPAD_MAN__NUM_REQUESTED_REF_SPADS = 0x0014,
  67. REF_SPAD_MAN__REF_LOCATION = 0x0015,
  68. ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS = 0x0016,
  69. ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS_HI = 0x0016,
  70. ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS_LO = 0x0017,
  71. ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS = 0x0018,
  72. ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS_HI = 0x0018,
  73. ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS_LO = 0x0019,
  74. ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS = 0x001A,
  75. ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS_HI = 0x001A,
  76. ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS_LO = 0x001B,
  77. REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS = 0x001C,
  78. REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS_HI = 0x001C,
  79. REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS_LO = 0x001D,
  80. ALGO__PART_TO_PART_RANGE_OFFSET_MM = 0x001E,
  81. ALGO__PART_TO_PART_RANGE_OFFSET_MM_HI = 0x001E,
  82. ALGO__PART_TO_PART_RANGE_OFFSET_MM_LO = 0x001F,
  83. MM_CONFIG__INNER_OFFSET_MM = 0x0020,
  84. MM_CONFIG__INNER_OFFSET_MM_HI = 0x0020,
  85. MM_CONFIG__INNER_OFFSET_MM_LO = 0x0021,
  86. MM_CONFIG__OUTER_OFFSET_MM = 0x0022,
  87. MM_CONFIG__OUTER_OFFSET_MM_HI = 0x0022,
  88. MM_CONFIG__OUTER_OFFSET_MM_LO = 0x0023,
  89. DSS_CONFIG__TARGET_TOTAL_RATE_MCPS = 0x0024,
  90. DSS_CONFIG__TARGET_TOTAL_RATE_MCPS_HI = 0x0024,
  91. DSS_CONFIG__TARGET_TOTAL_RATE_MCPS_LO = 0x0025,
  92. DEBUG__CTRL = 0x0026,
  93. TEST_MODE__CTRL = 0x0027,
  94. CLK_GATING__CTRL = 0x0028,
  95. NVM_BIST__CTRL = 0x0029,
  96. NVM_BIST__NUM_NVM_WORDS = 0x002A,
  97. NVM_BIST__START_ADDRESS = 0x002B,
  98. HOST_IF__STATUS = 0x002C,
  99. PAD_I2C_HV__CONFIG = 0x002D,
  100. PAD_I2C_HV__EXTSUP_CONFIG = 0x002E,
  101. GPIO_HV_PAD__CTRL = 0x002F,
  102. GPIO_HV_MUX__CTRL = 0x0030,
  103. GPIO__TIO_HV_STATUS = 0x0031,
  104. GPIO__FIO_HV_STATUS = 0x0032,
  105. ANA_CONFIG__SPAD_SEL_PSWIDTH = 0x0033,
  106. ANA_CONFIG__VCSEL_PULSE_WIDTH_OFFSET = 0x0034,
  107. ANA_CONFIG__FAST_OSC__CONFIG_CTRL = 0x0035,
  108. SIGMA_ESTIMATOR__EFFECTIVE_PULSE_WIDTH_NS = 0x0036,
  109. SIGMA_ESTIMATOR__EFFECTIVE_AMBIENT_WIDTH_NS = 0x0037,
  110. SIGMA_ESTIMATOR__SIGMA_REF_MM = 0x0038,
  111. ALGO__CROSSTALK_COMPENSATION_VALID_HEIGHT_MM = 0x0039,
  112. SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_0 = 0x003A,
  113. SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_1 = 0x003B,
  114. ALGO__RANGE_IGNORE_THRESHOLD_MCPS = 0x003C,
  115. ALGO__RANGE_IGNORE_THRESHOLD_MCPS_HI = 0x003C,
  116. ALGO__RANGE_IGNORE_THRESHOLD_MCPS_LO = 0x003D,
  117. ALGO__RANGE_IGNORE_VALID_HEIGHT_MM = 0x003E,
  118. ALGO__RANGE_MIN_CLIP = 0x003F,
  119. ALGO__CONSISTENCY_CHECK__TOLERANCE = 0x0040,
  120. SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_2 = 0x0041,
  121. SD_CONFIG__RESET_STAGES_MSB = 0x0042,
  122. SD_CONFIG__RESET_STAGES_LSB = 0x0043,
  123. GPH_CONFIG__STREAM_COUNT_UPDATE_VALUE = 0x0044,
  124. GLOBAL_CONFIG__STREAM_DIVIDER = 0x0045,
  125. SYSTEM__INTERRUPT_CONFIG_GPIO = 0x0046,
  126. CAL_CONFIG__VCSEL_START = 0x0047,
  127. CAL_CONFIG__REPEAT_RATE = 0x0048,
  128. CAL_CONFIG__REPEAT_RATE_HI = 0x0048,
  129. CAL_CONFIG__REPEAT_RATE_LO = 0x0049,
  130. GLOBAL_CONFIG__VCSEL_WIDTH = 0x004A,
  131. PHASECAL_CONFIG__TIMEOUT_MACROP = 0x004B,
  132. PHASECAL_CONFIG__TARGET = 0x004C,
  133. PHASECAL_CONFIG__OVERRIDE = 0x004D,
  134. DSS_CONFIG__ROI_MODE_CONTROL = 0x004F,
  135. SYSTEM__THRESH_RATE_HIGH = 0x0050,
  136. SYSTEM__THRESH_RATE_HIGH_HI = 0x0050,
  137. SYSTEM__THRESH_RATE_HIGH_LO = 0x0051,
  138. SYSTEM__THRESH_RATE_LOW = 0x0052,
  139. SYSTEM__THRESH_RATE_LOW_HI = 0x0052,
  140. SYSTEM__THRESH_RATE_LOW_LO = 0x0053,
  141. DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT = 0x0054,
  142. DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_HI = 0x0054,
  143. DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_LO = 0x0055,
  144. DSS_CONFIG__MANUAL_BLOCK_SELECT = 0x0056,
  145. DSS_CONFIG__APERTURE_ATTENUATION = 0x0057,
  146. DSS_CONFIG__MAX_SPADS_LIMIT = 0x0058,
  147. DSS_CONFIG__MIN_SPADS_LIMIT = 0x0059,
  148. MM_CONFIG__TIMEOUT_MACROP_A = 0x005A, // added by Pololu for 16-bit accesses
  149. MM_CONFIG__TIMEOUT_MACROP_A_HI = 0x005A,
  150. MM_CONFIG__TIMEOUT_MACROP_A_LO = 0x005B,
  151. MM_CONFIG__TIMEOUT_MACROP_B = 0x005C, // added by Pololu for 16-bit accesses
  152. MM_CONFIG__TIMEOUT_MACROP_B_HI = 0x005C,
  153. MM_CONFIG__TIMEOUT_MACROP_B_LO = 0x005D,
  154. RANGE_CONFIG__TIMEOUT_MACROP_A = 0x005E, // added by Pololu for 16-bit accesses
  155. RANGE_CONFIG__TIMEOUT_MACROP_A_HI = 0x005E,
  156. RANGE_CONFIG__TIMEOUT_MACROP_A_LO = 0x005F,
  157. RANGE_CONFIG__VCSEL_PERIOD_A = 0x0060,
  158. RANGE_CONFIG__TIMEOUT_MACROP_B = 0x0061, // added by Pololu for 16-bit accesses
  159. RANGE_CONFIG__TIMEOUT_MACROP_B_HI = 0x0061,
  160. RANGE_CONFIG__TIMEOUT_MACROP_B_LO = 0x0062,
  161. RANGE_CONFIG__VCSEL_PERIOD_B = 0x0063,
  162. RANGE_CONFIG__SIGMA_THRESH = 0x0064,
  163. RANGE_CONFIG__SIGMA_THRESH_HI = 0x0064,
  164. RANGE_CONFIG__SIGMA_THRESH_LO = 0x0065,
  165. RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS = 0x0066,
  166. RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_HI = 0x0066,
  167. RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_LO = 0x0067,
  168. RANGE_CONFIG__VALID_PHASE_LOW = 0x0068,
  169. RANGE_CONFIG__VALID_PHASE_HIGH = 0x0069,
  170. SYSTEM__INTERMEASUREMENT_PERIOD = 0x006C,
  171. SYSTEM__INTERMEASUREMENT_PERIOD_3 = 0x006C,
  172. SYSTEM__INTERMEASUREMENT_PERIOD_2 = 0x006D,
  173. SYSTEM__INTERMEASUREMENT_PERIOD_1 = 0x006E,
  174. SYSTEM__INTERMEASUREMENT_PERIOD_0 = 0x006F,
  175. SYSTEM__FRACTIONAL_ENABLE = 0x0070,
  176. SYSTEM__GROUPED_PARAMETER_HOLD_0 = 0x0071,
  177. SYSTEM__THRESH_HIGH = 0x0072,
  178. SYSTEM__THRESH_HIGH_HI = 0x0072,
  179. SYSTEM__THRESH_HIGH_LO = 0x0073,
  180. SYSTEM__THRESH_LOW = 0x0074,
  181. SYSTEM__THRESH_LOW_HI = 0x0074,
  182. SYSTEM__THRESH_LOW_LO = 0x0075,
  183. SYSTEM__ENABLE_XTALK_PER_QUADRANT = 0x0076,
  184. SYSTEM__SEED_CONFIG = 0x0077,
  185. SD_CONFIG__WOI_SD0 = 0x0078,
  186. SD_CONFIG__WOI_SD1 = 0x0079,
  187. SD_CONFIG__INITIAL_PHASE_SD0 = 0x007A,
  188. SD_CONFIG__INITIAL_PHASE_SD1 = 0x007B,
  189. SYSTEM__GROUPED_PARAMETER_HOLD_1 = 0x007C,
  190. SD_CONFIG__FIRST_ORDER_SELECT = 0x007D,
  191. SD_CONFIG__QUANTIFIER = 0x007E,
  192. ROI_CONFIG__USER_ROI_CENTRE_SPAD = 0x007F,
  193. ROI_CONFIG__USER_ROI_REQUESTED_GLOBAL_XY_SIZE = 0x0080,
  194. SYSTEM__SEQUENCE_CONFIG = 0x0081,
  195. SYSTEM__GROUPED_PARAMETER_HOLD = 0x0082,
  196. POWER_MANAGEMENT__GO1_POWER_FORCE = 0x0083,
  197. SYSTEM__STREAM_COUNT_CTRL = 0x0084,
  198. FIRMWARE__ENABLE = 0x0085,
  199. SYSTEM__INTERRUPT_CLEAR = 0x0086,
  200. SYSTEM__MODE_START = 0x0087,
  201. RESULT__INTERRUPT_STATUS = 0x0088,
  202. RESULT__RANGE_STATUS = 0x0089,
  203. RESULT__REPORT_STATUS = 0x008A,
  204. RESULT__STREAM_COUNT = 0x008B,
  205. RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x008C,
  206. RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x008C,
  207. RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x008D,
  208. RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0 = 0x008E,
  209. RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI = 0x008E,
  210. RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO = 0x008F,
  211. RESULT__AMBIENT_COUNT_RATE_MCPS_SD0 = 0x0090,
  212. RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI = 0x0090,
  213. RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO = 0x0091,
  214. RESULT__SIGMA_SD0 = 0x0092,
  215. RESULT__SIGMA_SD0_HI = 0x0092,
  216. RESULT__SIGMA_SD0_LO = 0x0093,
  217. RESULT__PHASE_SD0 = 0x0094,
  218. RESULT__PHASE_SD0_HI = 0x0094,
  219. RESULT__PHASE_SD0_LO = 0x0095,
  220. RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0 = 0x0096,
  221. RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI = 0x0096,
  222. RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO = 0x0097,
  223. RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0 = 0x0098,
  224. RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI = 0x0098,
  225. RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO = 0x0099,
  226. RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x009A,
  227. RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x009A,
  228. RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x009B,
  229. RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x009C,
  230. RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x009C,
  231. RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x009D,
  232. RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0 = 0x009E,
  233. RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI = 0x009E,
  234. RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO = 0x009F,
  235. RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1 = 0x00A0,
  236. RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI = 0x00A0,
  237. RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO = 0x00A1,
  238. RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1 = 0x00A2,
  239. RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI = 0x00A2,
  240. RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO = 0x00A3,
  241. RESULT__AMBIENT_COUNT_RATE_MCPS_SD1 = 0x00A4,
  242. RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI = 0x00A4,
  243. RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO = 0x00A5,
  244. RESULT__SIGMA_SD1 = 0x00A6,
  245. RESULT__SIGMA_SD1_HI = 0x00A6,
  246. RESULT__SIGMA_SD1_LO = 0x00A7,
  247. RESULT__PHASE_SD1 = 0x00A8,
  248. RESULT__PHASE_SD1_HI = 0x00A8,
  249. RESULT__PHASE_SD1_LO = 0x00A9,
  250. RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1 = 0x00AA,
  251. RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI = 0x00AA,
  252. RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO = 0x00AB,
  253. RESULT__SPARE_0_SD1 = 0x00AC,
  254. RESULT__SPARE_0_SD1_HI = 0x00AC,
  255. RESULT__SPARE_0_SD1_LO = 0x00AD,
  256. RESULT__SPARE_1_SD1 = 0x00AE,
  257. RESULT__SPARE_1_SD1_HI = 0x00AE,
  258. RESULT__SPARE_1_SD1_LO = 0x00AF,
  259. RESULT__SPARE_2_SD1 = 0x00B0,
  260. RESULT__SPARE_2_SD1_HI = 0x00B0,
  261. RESULT__SPARE_2_SD1_LO = 0x00B1,
  262. RESULT__SPARE_3_SD1 = 0x00B2,
  263. RESULT__THRESH_INFO = 0x00B3,
  264. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 = 0x00B4,
  265. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3 = 0x00B4,
  266. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2 = 0x00B5,
  267. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1 = 0x00B6,
  268. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0 = 0x00B7,
  269. RESULT_CORE__RANGING_TOTAL_EVENTS_SD0 = 0x00B8,
  270. RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3 = 0x00B8,
  271. RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2 = 0x00B9,
  272. RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1 = 0x00BA,
  273. RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0 = 0x00BB,
  274. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0 = 0x00BC,
  275. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3 = 0x00BC,
  276. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2 = 0x00BD,
  277. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1 = 0x00BE,
  278. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0 = 0x00BF,
  279. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0 = 0x00C0,
  280. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3 = 0x00C0,
  281. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2 = 0x00C1,
  282. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1 = 0x00C2,
  283. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0 = 0x00C3,
  284. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1 = 0x00C4,
  285. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3 = 0x00C4,
  286. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2 = 0x00C5,
  287. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1 = 0x00C6,
  288. RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0 = 0x00C7,
  289. RESULT_CORE__RANGING_TOTAL_EVENTS_SD1 = 0x00C8,
  290. RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3 = 0x00C8,
  291. RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2 = 0x00C9,
  292. RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1 = 0x00CA,
  293. RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0 = 0x00CB,
  294. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1 = 0x00CC,
  295. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3 = 0x00CC,
  296. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2 = 0x00CD,
  297. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1 = 0x00CE,
  298. RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0 = 0x00CF,
  299. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1 = 0x00D0,
  300. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3 = 0x00D0,
  301. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2 = 0x00D1,
  302. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1 = 0x00D2,
  303. RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0 = 0x00D3,
  304. RESULT_CORE__SPARE_0 = 0x00D4,
  305. PHASECAL_RESULT__REFERENCE_PHASE = 0x00D6,
  306. PHASECAL_RESULT__REFERENCE_PHASE_HI = 0x00D6,
  307. PHASECAL_RESULT__REFERENCE_PHASE_LO = 0x00D7,
  308. PHASECAL_RESULT__VCSEL_START = 0x00D8,
  309. REF_SPAD_CHAR_RESULT__NUM_ACTUAL_REF_SPADS = 0x00D9,
  310. REF_SPAD_CHAR_RESULT__REF_LOCATION = 0x00DA,
  311. VHV_RESULT__COLDBOOT_STATUS = 0x00DB,
  312. VHV_RESULT__SEARCH_RESULT = 0x00DC,
  313. VHV_RESULT__LATEST_SETTING = 0x00DD,
  314. RESULT__OSC_CALIBRATE_VAL = 0x00DE,
  315. RESULT__OSC_CALIBRATE_VAL_HI = 0x00DE,
  316. RESULT__OSC_CALIBRATE_VAL_LO = 0x00DF,
  317. ANA_CONFIG__POWERDOWN_GO1 = 0x00E0,
  318. ANA_CONFIG__REF_BG_CTRL = 0x00E1,
  319. ANA_CONFIG__REGDVDD1V2_CTRL = 0x00E2,
  320. ANA_CONFIG__OSC_SLOW_CTRL = 0x00E3,
  321. TEST_MODE__STATUS = 0x00E4,
  322. FIRMWARE__SYSTEM_STATUS = 0x00E5,
  323. FIRMWARE__MODE_STATUS = 0x00E6,
  324. FIRMWARE__SECONDARY_MODE_STATUS = 0x00E7,
  325. FIRMWARE__CAL_REPEAT_RATE_COUNTER = 0x00E8,
  326. FIRMWARE__CAL_REPEAT_RATE_COUNTER_HI = 0x00E8,
  327. FIRMWARE__CAL_REPEAT_RATE_COUNTER_LO = 0x00E9,
  328. FIRMWARE__HISTOGRAM_BIN = 0x00EA,
  329. GPH__SYSTEM__THRESH_HIGH = 0x00EC,
  330. GPH__SYSTEM__THRESH_HIGH_HI = 0x00EC,
  331. GPH__SYSTEM__THRESH_HIGH_LO = 0x00ED,
  332. GPH__SYSTEM__THRESH_LOW = 0x00EE,
  333. GPH__SYSTEM__THRESH_LOW_HI = 0x00EE,
  334. GPH__SYSTEM__THRESH_LOW_LO = 0x00EF,
  335. GPH__SYSTEM__ENABLE_XTALK_PER_QUADRANT = 0x00F0,
  336. GPH__SPARE_0 = 0x00F1,
  337. GPH__SD_CONFIG__WOI_SD0 = 0x00F2,
  338. GPH__SD_CONFIG__WOI_SD1 = 0x00F3,
  339. GPH__SD_CONFIG__INITIAL_PHASE_SD0 = 0x00F4,
  340. GPH__SD_CONFIG__INITIAL_PHASE_SD1 = 0x00F5,
  341. GPH__SD_CONFIG__FIRST_ORDER_SELECT = 0x00F6,
  342. GPH__SD_CONFIG__QUANTIFIER = 0x00F7,
  343. GPH__ROI_CONFIG__USER_ROI_CENTRE_SPAD = 0x00F8,
  344. GPH__ROI_CONFIG__USER_ROI_REQUESTED_GLOBAL_XY_SIZE = 0x00F9,
  345. GPH__SYSTEM__SEQUENCE_CONFIG = 0x00FA,
  346. GPH__GPH_ID = 0x00FB,
  347. SYSTEM__INTERRUPT_SET = 0x00FC,
  348. INTERRUPT_MANAGER__ENABLES = 0x00FD,
  349. INTERRUPT_MANAGER__CLEAR = 0x00FE,
  350. INTERRUPT_MANAGER__STATUS = 0x00FF,
  351. MCU_TO_HOST_BANK__WR_ACCESS_EN = 0x0100,
  352. POWER_MANAGEMENT__GO1_RESET_STATUS = 0x0101,
  353. PAD_STARTUP_MODE__VALUE_RO = 0x0102,
  354. PAD_STARTUP_MODE__VALUE_CTRL = 0x0103,
  355. PLL_PERIOD_US = 0x0104,
  356. PLL_PERIOD_US_3 = 0x0104,
  357. PLL_PERIOD_US_2 = 0x0105,
  358. PLL_PERIOD_US_1 = 0x0106,
  359. PLL_PERIOD_US_0 = 0x0107,
  360. INTERRUPT_SCHEDULER__DATA_OUT = 0x0108,
  361. INTERRUPT_SCHEDULER__DATA_OUT_3 = 0x0108,
  362. INTERRUPT_SCHEDULER__DATA_OUT_2 = 0x0109,
  363. INTERRUPT_SCHEDULER__DATA_OUT_1 = 0x010A,
  364. INTERRUPT_SCHEDULER__DATA_OUT_0 = 0x010B,
  365. NVM_BIST__COMPLETE = 0x010C,
  366. NVM_BIST__STATUS = 0x010D,
  367. IDENTIFICATION__MODEL_ID = 0x010F,
  368. IDENTIFICATION__MODULE_TYPE = 0x0110,
  369. IDENTIFICATION__REVISION_ID = 0x0111,
  370. IDENTIFICATION__MODULE_ID = 0x0112,
  371. IDENTIFICATION__MODULE_ID_HI = 0x0112,
  372. IDENTIFICATION__MODULE_ID_LO = 0x0113,
  373. ANA_CONFIG__FAST_OSC__TRIM_MAX = 0x0114,
  374. ANA_CONFIG__FAST_OSC__FREQ_SET = 0x0115,
  375. ANA_CONFIG__VCSEL_TRIM = 0x0116,
  376. ANA_CONFIG__VCSEL_SELION = 0x0117,
  377. ANA_CONFIG__VCSEL_SELION_MAX = 0x0118,
  378. PROTECTED_LASER_SAFETY__LOCK_BIT = 0x0119,
  379. LASER_SAFETY__KEY = 0x011A,
  380. LASER_SAFETY__KEY_RO = 0x011B,
  381. LASER_SAFETY__CLIP = 0x011C,
  382. LASER_SAFETY__MULT = 0x011D,
  383. GLOBAL_CONFIG__SPAD_ENABLES_RTN_0 = 0x011E,
  384. GLOBAL_CONFIG__SPAD_ENABLES_RTN_1 = 0x011F,
  385. GLOBAL_CONFIG__SPAD_ENABLES_RTN_2 = 0x0120,
  386. GLOBAL_CONFIG__SPAD_ENABLES_RTN_3 = 0x0121,
  387. GLOBAL_CONFIG__SPAD_ENABLES_RTN_4 = 0x0122,
  388. GLOBAL_CONFIG__SPAD_ENABLES_RTN_5 = 0x0123,
  389. GLOBAL_CONFIG__SPAD_ENABLES_RTN_6 = 0x0124,
  390. GLOBAL_CONFIG__SPAD_ENABLES_RTN_7 = 0x0125,
  391. GLOBAL_CONFIG__SPAD_ENABLES_RTN_8 = 0x0126,
  392. GLOBAL_CONFIG__SPAD_ENABLES_RTN_9 = 0x0127,
  393. GLOBAL_CONFIG__SPAD_ENABLES_RTN_10 = 0x0128,
  394. GLOBAL_CONFIG__SPAD_ENABLES_RTN_11 = 0x0129,
  395. GLOBAL_CONFIG__SPAD_ENABLES_RTN_12 = 0x012A,
  396. GLOBAL_CONFIG__SPAD_ENABLES_RTN_13 = 0x012B,
  397. GLOBAL_CONFIG__SPAD_ENABLES_RTN_14 = 0x012C,
  398. GLOBAL_CONFIG__SPAD_ENABLES_RTN_15 = 0x012D,
  399. GLOBAL_CONFIG__SPAD_ENABLES_RTN_16 = 0x012E,
  400. GLOBAL_CONFIG__SPAD_ENABLES_RTN_17 = 0x012F,
  401. GLOBAL_CONFIG__SPAD_ENABLES_RTN_18 = 0x0130,
  402. GLOBAL_CONFIG__SPAD_ENABLES_RTN_19 = 0x0131,
  403. GLOBAL_CONFIG__SPAD_ENABLES_RTN_20 = 0x0132,
  404. GLOBAL_CONFIG__SPAD_ENABLES_RTN_21 = 0x0133,
  405. GLOBAL_CONFIG__SPAD_ENABLES_RTN_22 = 0x0134,
  406. GLOBAL_CONFIG__SPAD_ENABLES_RTN_23 = 0x0135,
  407. GLOBAL_CONFIG__SPAD_ENABLES_RTN_24 = 0x0136,
  408. GLOBAL_CONFIG__SPAD_ENABLES_RTN_25 = 0x0137,
  409. GLOBAL_CONFIG__SPAD_ENABLES_RTN_26 = 0x0138,
  410. GLOBAL_CONFIG__SPAD_ENABLES_RTN_27 = 0x0139,
  411. GLOBAL_CONFIG__SPAD_ENABLES_RTN_28 = 0x013A,
  412. GLOBAL_CONFIG__SPAD_ENABLES_RTN_29 = 0x013B,
  413. GLOBAL_CONFIG__SPAD_ENABLES_RTN_30 = 0x013C,
  414. GLOBAL_CONFIG__SPAD_ENABLES_RTN_31 = 0x013D,
  415. ROI_CONFIG__MODE_ROI_CENTRE_SPAD = 0x013E,
  416. ROI_CONFIG__MODE_ROI_XY_SIZE = 0x013F,
  417. GO2_HOST_BANK_ACCESS__OVERRIDE = 0x0300,
  418. MCU_UTIL_MULTIPLIER__MULTIPLICAND = 0x0400,
  419. MCU_UTIL_MULTIPLIER__MULTIPLICAND_3 = 0x0400,
  420. MCU_UTIL_MULTIPLIER__MULTIPLICAND_2 = 0x0401,
  421. MCU_UTIL_MULTIPLIER__MULTIPLICAND_1 = 0x0402,
  422. MCU_UTIL_MULTIPLIER__MULTIPLICAND_0 = 0x0403,
  423. MCU_UTIL_MULTIPLIER__MULTIPLIER = 0x0404,
  424. MCU_UTIL_MULTIPLIER__MULTIPLIER_3 = 0x0404,
  425. MCU_UTIL_MULTIPLIER__MULTIPLIER_2 = 0x0405,
  426. MCU_UTIL_MULTIPLIER__MULTIPLIER_1 = 0x0406,
  427. MCU_UTIL_MULTIPLIER__MULTIPLIER_0 = 0x0407,
  428. MCU_UTIL_MULTIPLIER__PRODUCT_HI = 0x0408,
  429. MCU_UTIL_MULTIPLIER__PRODUCT_HI_3 = 0x0408,
  430. MCU_UTIL_MULTIPLIER__PRODUCT_HI_2 = 0x0409,
  431. MCU_UTIL_MULTIPLIER__PRODUCT_HI_1 = 0x040A,
  432. MCU_UTIL_MULTIPLIER__PRODUCT_HI_0 = 0x040B,
  433. MCU_UTIL_MULTIPLIER__PRODUCT_LO = 0x040C,
  434. MCU_UTIL_MULTIPLIER__PRODUCT_LO_3 = 0x040C,
  435. MCU_UTIL_MULTIPLIER__PRODUCT_LO_2 = 0x040D,
  436. MCU_UTIL_MULTIPLIER__PRODUCT_LO_1 = 0x040E,
  437. MCU_UTIL_MULTIPLIER__PRODUCT_LO_0 = 0x040F,
  438. MCU_UTIL_MULTIPLIER__START = 0x0410,
  439. MCU_UTIL_MULTIPLIER__STATUS = 0x0411,
  440. MCU_UTIL_DIVIDER__START = 0x0412,
  441. MCU_UTIL_DIVIDER__STATUS = 0x0413,
  442. MCU_UTIL_DIVIDER__DIVIDEND = 0x0414,
  443. MCU_UTIL_DIVIDER__DIVIDEND_3 = 0x0414,
  444. MCU_UTIL_DIVIDER__DIVIDEND_2 = 0x0415,
  445. MCU_UTIL_DIVIDER__DIVIDEND_1 = 0x0416,
  446. MCU_UTIL_DIVIDER__DIVIDEND_0 = 0x0417,
  447. MCU_UTIL_DIVIDER__DIVISOR = 0x0418,
  448. MCU_UTIL_DIVIDER__DIVISOR_3 = 0x0418,
  449. MCU_UTIL_DIVIDER__DIVISOR_2 = 0x0419,
  450. MCU_UTIL_DIVIDER__DIVISOR_1 = 0x041A,
  451. MCU_UTIL_DIVIDER__DIVISOR_0 = 0x041B,
  452. MCU_UTIL_DIVIDER__QUOTIENT = 0x041C,
  453. MCU_UTIL_DIVIDER__QUOTIENT_3 = 0x041C,
  454. MCU_UTIL_DIVIDER__QUOTIENT_2 = 0x041D,
  455. MCU_UTIL_DIVIDER__QUOTIENT_1 = 0x041E,
  456. MCU_UTIL_DIVIDER__QUOTIENT_0 = 0x041F,
  457. TIMER0__VALUE_IN = 0x0420,
  458. TIMER0__VALUE_IN_3 = 0x0420,
  459. TIMER0__VALUE_IN_2 = 0x0421,
  460. TIMER0__VALUE_IN_1 = 0x0422,
  461. TIMER0__VALUE_IN_0 = 0x0423,
  462. TIMER1__VALUE_IN = 0x0424,
  463. TIMER1__VALUE_IN_3 = 0x0424,
  464. TIMER1__VALUE_IN_2 = 0x0425,
  465. TIMER1__VALUE_IN_1 = 0x0426,
  466. TIMER1__VALUE_IN_0 = 0x0427,
  467. TIMER0__CTRL = 0x0428,
  468. TIMER1__CTRL = 0x0429,
  469. MCU_GENERAL_PURPOSE__GP_0 = 0x042C,
  470. MCU_GENERAL_PURPOSE__GP_1 = 0x042D,
  471. MCU_GENERAL_PURPOSE__GP_2 = 0x042E,
  472. MCU_GENERAL_PURPOSE__GP_3 = 0x042F,
  473. MCU_RANGE_CALC__CONFIG = 0x0430,
  474. MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE = 0x0432,
  475. MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE_HI = 0x0432,
  476. MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE_LO = 0x0433,
  477. MCU_RANGE_CALC__SPARE_4 = 0x0434,
  478. MCU_RANGE_CALC__SPARE_4_3 = 0x0434,
  479. MCU_RANGE_CALC__SPARE_4_2 = 0x0435,
  480. MCU_RANGE_CALC__SPARE_4_1 = 0x0436,
  481. MCU_RANGE_CALC__SPARE_4_0 = 0x0437,
  482. MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC = 0x0438,
  483. MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC_HI = 0x0438,
  484. MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC_LO = 0x0439,
  485. MCU_RANGE_CALC__ALGO_VCSEL_PERIOD = 0x043C,
  486. MCU_RANGE_CALC__SPARE_5 = 0x043D,
  487. MCU_RANGE_CALC__ALGO_TOTAL_PERIODS = 0x043E,
  488. MCU_RANGE_CALC__ALGO_TOTAL_PERIODS_HI = 0x043E,
  489. MCU_RANGE_CALC__ALGO_TOTAL_PERIODS_LO = 0x043F,
  490. MCU_RANGE_CALC__ALGO_ACCUM_PHASE = 0x0440,
  491. MCU_RANGE_CALC__ALGO_ACCUM_PHASE_3 = 0x0440,
  492. MCU_RANGE_CALC__ALGO_ACCUM_PHASE_2 = 0x0441,
  493. MCU_RANGE_CALC__ALGO_ACCUM_PHASE_1 = 0x0442,
  494. MCU_RANGE_CALC__ALGO_ACCUM_PHASE_0 = 0x0443,
  495. MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS = 0x0444,
  496. MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_3 = 0x0444,
  497. MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_2 = 0x0445,
  498. MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_1 = 0x0446,
  499. MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_0 = 0x0447,
  500. MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS = 0x0448,
  501. MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_3 = 0x0448,
  502. MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_2 = 0x0449,
  503. MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_1 = 0x044A,
  504. MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_0 = 0x044B,
  505. MCU_RANGE_CALC__SPARE_6 = 0x044C,
  506. MCU_RANGE_CALC__SPARE_6_HI = 0x044C,
  507. MCU_RANGE_CALC__SPARE_6_LO = 0x044D,
  508. MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD = 0x044E,
  509. MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD_HI = 0x044E,
  510. MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD_LO = 0x044F,
  511. MCU_RANGE_CALC__NUM_SPADS = 0x0450,
  512. MCU_RANGE_CALC__NUM_SPADS_HI = 0x0450,
  513. MCU_RANGE_CALC__NUM_SPADS_LO = 0x0451,
  514. MCU_RANGE_CALC__PHASE_OUTPUT = 0x0452,
  515. MCU_RANGE_CALC__PHASE_OUTPUT_HI = 0x0452,
  516. MCU_RANGE_CALC__PHASE_OUTPUT_LO = 0x0453,
  517. MCU_RANGE_CALC__RATE_PER_SPAD_MCPS = 0x0454,
  518. MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_3 = 0x0454,
  519. MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_2 = 0x0455,
  520. MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_1 = 0x0456,
  521. MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_0 = 0x0457,
  522. MCU_RANGE_CALC__SPARE_7 = 0x0458,
  523. MCU_RANGE_CALC__SPARE_8 = 0x0459,
  524. MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS = 0x045A,
  525. MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS_HI = 0x045A,
  526. MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS_LO = 0x045B,
  527. MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS = 0x045C,
  528. MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS_HI = 0x045C,
  529. MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS_LO = 0x045D,
  530. MCU_RANGE_CALC__AMBIENT_RATE_MCPS = 0x045E,
  531. MCU_RANGE_CALC__AMBIENT_RATE_MCPS_HI = 0x045E,
  532. MCU_RANGE_CALC__AMBIENT_RATE_MCPS_LO = 0x045F,
  533. MCU_RANGE_CALC__XTALK = 0x0460,
  534. MCU_RANGE_CALC__XTALK_HI = 0x0460,
  535. MCU_RANGE_CALC__XTALK_LO = 0x0461,
  536. MCU_RANGE_CALC__CALC_STATUS = 0x0462,
  537. MCU_RANGE_CALC__DEBUG = 0x0463,
  538. MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS = 0x0464,
  539. MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS_HI = 0x0464,
  540. MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS_LO = 0x0465,
  541. MCU_RANGE_CALC__SPARE_0 = 0x0468,
  542. MCU_RANGE_CALC__SPARE_1 = 0x0469,
  543. MCU_RANGE_CALC__SPARE_2 = 0x046A,
  544. MCU_RANGE_CALC__SPARE_3 = 0x046B,
  545. PATCH__CTRL = 0x0470,
  546. PATCH__JMP_ENABLES = 0x0472,
  547. PATCH__JMP_ENABLES_HI = 0x0472,
  548. PATCH__JMP_ENABLES_LO = 0x0473,
  549. PATCH__DATA_ENABLES = 0x0474,
  550. PATCH__DATA_ENABLES_HI = 0x0474,
  551. PATCH__DATA_ENABLES_LO = 0x0475,
  552. PATCH__OFFSET_0 = 0x0476,
  553. PATCH__OFFSET_0_HI = 0x0476,
  554. PATCH__OFFSET_0_LO = 0x0477,
  555. PATCH__OFFSET_1 = 0x0478,
  556. PATCH__OFFSET_1_HI = 0x0478,
  557. PATCH__OFFSET_1_LO = 0x0479,
  558. PATCH__OFFSET_2 = 0x047A,
  559. PATCH__OFFSET_2_HI = 0x047A,
  560. PATCH__OFFSET_2_LO = 0x047B,
  561. PATCH__OFFSET_3 = 0x047C,
  562. PATCH__OFFSET_3_HI = 0x047C,
  563. PATCH__OFFSET_3_LO = 0x047D,
  564. PATCH__OFFSET_4 = 0x047E,
  565. PATCH__OFFSET_4_HI = 0x047E,
  566. PATCH__OFFSET_4_LO = 0x047F,
  567. PATCH__OFFSET_5 = 0x0480,
  568. PATCH__OFFSET_5_HI = 0x0480,
  569. PATCH__OFFSET_5_LO = 0x0481,
  570. PATCH__OFFSET_6 = 0x0482,
  571. PATCH__OFFSET_6_HI = 0x0482,
  572. PATCH__OFFSET_6_LO = 0x0483,
  573. PATCH__OFFSET_7 = 0x0484,
  574. PATCH__OFFSET_7_HI = 0x0484,
  575. PATCH__OFFSET_7_LO = 0x0485,
  576. PATCH__OFFSET_8 = 0x0486,
  577. PATCH__OFFSET_8_HI = 0x0486,
  578. PATCH__OFFSET_8_LO = 0x0487,
  579. PATCH__OFFSET_9 = 0x0488,
  580. PATCH__OFFSET_9_HI = 0x0488,
  581. PATCH__OFFSET_9_LO = 0x0489,
  582. PATCH__OFFSET_10 = 0x048A,
  583. PATCH__OFFSET_10_HI = 0x048A,
  584. PATCH__OFFSET_10_LO = 0x048B,
  585. PATCH__OFFSET_11 = 0x048C,
  586. PATCH__OFFSET_11_HI = 0x048C,
  587. PATCH__OFFSET_11_LO = 0x048D,
  588. PATCH__OFFSET_12 = 0x048E,
  589. PATCH__OFFSET_12_HI = 0x048E,
  590. PATCH__OFFSET_12_LO = 0x048F,
  591. PATCH__OFFSET_13 = 0x0490,
  592. PATCH__OFFSET_13_HI = 0x0490,
  593. PATCH__OFFSET_13_LO = 0x0491,
  594. PATCH__OFFSET_14 = 0x0492,
  595. PATCH__OFFSET_14_HI = 0x0492,
  596. PATCH__OFFSET_14_LO = 0x0493,
  597. PATCH__OFFSET_15 = 0x0494,
  598. PATCH__OFFSET_15_HI = 0x0494,
  599. PATCH__OFFSET_15_LO = 0x0495,
  600. PATCH__ADDRESS_0 = 0x0496,
  601. PATCH__ADDRESS_0_HI = 0x0496,
  602. PATCH__ADDRESS_0_LO = 0x0497,
  603. PATCH__ADDRESS_1 = 0x0498,
  604. PATCH__ADDRESS_1_HI = 0x0498,
  605. PATCH__ADDRESS_1_LO = 0x0499,
  606. PATCH__ADDRESS_2 = 0x049A,
  607. PATCH__ADDRESS_2_HI = 0x049A,
  608. PATCH__ADDRESS_2_LO = 0x049B,
  609. PATCH__ADDRESS_3 = 0x049C,
  610. PATCH__ADDRESS_3_HI = 0x049C,
  611. PATCH__ADDRESS_3_LO = 0x049D,
  612. PATCH__ADDRESS_4 = 0x049E,
  613. PATCH__ADDRESS_4_HI = 0x049E,
  614. PATCH__ADDRESS_4_LO = 0x049F,
  615. PATCH__ADDRESS_5 = 0x04A0,
  616. PATCH__ADDRESS_5_HI = 0x04A0,
  617. PATCH__ADDRESS_5_LO = 0x04A1,
  618. PATCH__ADDRESS_6 = 0x04A2,
  619. PATCH__ADDRESS_6_HI = 0x04A2,
  620. PATCH__ADDRESS_6_LO = 0x04A3,
  621. PATCH__ADDRESS_7 = 0x04A4,
  622. PATCH__ADDRESS_7_HI = 0x04A4,
  623. PATCH__ADDRESS_7_LO = 0x04A5,
  624. PATCH__ADDRESS_8 = 0x04A6,
  625. PATCH__ADDRESS_8_HI = 0x04A6,
  626. PATCH__ADDRESS_8_LO = 0x04A7,
  627. PATCH__ADDRESS_9 = 0x04A8,
  628. PATCH__ADDRESS_9_HI = 0x04A8,
  629. PATCH__ADDRESS_9_LO = 0x04A9,
  630. PATCH__ADDRESS_10 = 0x04AA,
  631. PATCH__ADDRESS_10_HI = 0x04AA,
  632. PATCH__ADDRESS_10_LO = 0x04AB,
  633. PATCH__ADDRESS_11 = 0x04AC,
  634. PATCH__ADDRESS_11_HI = 0x04AC,
  635. PATCH__ADDRESS_11_LO = 0x04AD,
  636. PATCH__ADDRESS_12 = 0x04AE,
  637. PATCH__ADDRESS_12_HI = 0x04AE,
  638. PATCH__ADDRESS_12_LO = 0x04AF,
  639. PATCH__ADDRESS_13 = 0x04B0,
  640. PATCH__ADDRESS_13_HI = 0x04B0,
  641. PATCH__ADDRESS_13_LO = 0x04B1,
  642. PATCH__ADDRESS_14 = 0x04B2,
  643. PATCH__ADDRESS_14_HI = 0x04B2,
  644. PATCH__ADDRESS_14_LO = 0x04B3,
  645. PATCH__ADDRESS_15 = 0x04B4,
  646. PATCH__ADDRESS_15_HI = 0x04B4,
  647. PATCH__ADDRESS_15_LO = 0x04B5,
  648. SPI_ASYNC_MUX__CTRL = 0x04C0,
  649. CLK__CONFIG = 0x04C4,
  650. GPIO_LV_MUX__CTRL = 0x04CC,
  651. GPIO_LV_PAD__CTRL = 0x04CD,
  652. PAD_I2C_LV__CONFIG = 0x04D0,
  653. PAD_STARTUP_MODE__VALUE_RO_GO1 = 0x04D4,
  654. HOST_IF__STATUS_GO1 = 0x04D5,
  655. MCU_CLK_GATING__CTRL = 0x04D8,
  656. TEST__BIST_ROM_CTRL = 0x04E0,
  657. TEST__BIST_ROM_RESULT = 0x04E1,
  658. TEST__BIST_ROM_MCU_SIG = 0x04E2,
  659. TEST__BIST_ROM_MCU_SIG_HI = 0x04E2,
  660. TEST__BIST_ROM_MCU_SIG_LO = 0x04E3,
  661. TEST__BIST_RAM_CTRL = 0x04E4,
  662. TEST__BIST_RAM_RESULT = 0x04E5,
  663. TEST__TMC = 0x04E8,
  664. TEST__PLL_BIST_MIN_THRESHOLD = 0x04F0,
  665. TEST__PLL_BIST_MIN_THRESHOLD_HI = 0x04F0,
  666. TEST__PLL_BIST_MIN_THRESHOLD_LO = 0x04F1,
  667. TEST__PLL_BIST_MAX_THRESHOLD = 0x04F2,
  668. TEST__PLL_BIST_MAX_THRESHOLD_HI = 0x04F2,
  669. TEST__PLL_BIST_MAX_THRESHOLD_LO = 0x04F3,
  670. TEST__PLL_BIST_COUNT_OUT = 0x04F4,
  671. TEST__PLL_BIST_COUNT_OUT_HI = 0x04F4,
  672. TEST__PLL_BIST_COUNT_OUT_LO = 0x04F5,
  673. TEST__PLL_BIST_GONOGO = 0x04F6,
  674. TEST__PLL_BIST_CTRL = 0x04F7,
  675. RANGING_CORE__DEVICE_ID = 0x0680,
  676. RANGING_CORE__REVISION_ID = 0x0681,
  677. RANGING_CORE__CLK_CTRL1 = 0x0683,
  678. RANGING_CORE__CLK_CTRL2 = 0x0684,
  679. RANGING_CORE__WOI_1 = 0x0685,
  680. RANGING_CORE__WOI_REF_1 = 0x0686,
  681. RANGING_CORE__START_RANGING = 0x0687,
  682. RANGING_CORE__LOW_LIMIT_1 = 0x0690,
  683. RANGING_CORE__HIGH_LIMIT_1 = 0x0691,
  684. RANGING_CORE__LOW_LIMIT_REF_1 = 0x0692,
  685. RANGING_CORE__HIGH_LIMIT_REF_1 = 0x0693,
  686. RANGING_CORE__QUANTIFIER_1_MSB = 0x0694,
  687. RANGING_CORE__QUANTIFIER_1_LSB = 0x0695,
  688. RANGING_CORE__QUANTIFIER_REF_1_MSB = 0x0696,
  689. RANGING_CORE__QUANTIFIER_REF_1_LSB = 0x0697,
  690. RANGING_CORE__AMBIENT_OFFSET_1_MSB = 0x0698,
  691. RANGING_CORE__AMBIENT_OFFSET_1_LSB = 0x0699,
  692. RANGING_CORE__AMBIENT_OFFSET_REF_1_MSB = 0x069A,
  693. RANGING_CORE__AMBIENT_OFFSET_REF_1_LSB = 0x069B,
  694. RANGING_CORE__FILTER_STRENGTH_1 = 0x069C,
  695. RANGING_CORE__FILTER_STRENGTH_REF_1 = 0x069D,
  696. RANGING_CORE__SIGNAL_EVENT_LIMIT_1_MSB = 0x069E,
  697. RANGING_CORE__SIGNAL_EVENT_LIMIT_1_LSB = 0x069F,
  698. RANGING_CORE__SIGNAL_EVENT_LIMIT_REF_1_MSB = 0x06A0,
  699. RANGING_CORE__SIGNAL_EVENT_LIMIT_REF_1_LSB = 0x06A1,
  700. RANGING_CORE__TIMEOUT_OVERALL_PERIODS_MSB = 0x06A4,
  701. RANGING_CORE__TIMEOUT_OVERALL_PERIODS_LSB = 0x06A5,
  702. RANGING_CORE__INVERT_HW = 0x06A6,
  703. RANGING_CORE__FORCE_HW = 0x06A7,
  704. RANGING_CORE__STATIC_HW_VALUE = 0x06A8,
  705. RANGING_CORE__FORCE_CONTINUOUS_AMBIENT = 0x06A9,
  706. RANGING_CORE__TEST_PHASE_SELECT_TO_FILTER = 0x06AA,
  707. RANGING_CORE__TEST_PHASE_SELECT_TO_TIMING_GEN = 0x06AB,
  708. RANGING_CORE__INITIAL_PHASE_VALUE_1 = 0x06AC,
  709. RANGING_CORE__INITIAL_PHASE_VALUE_REF_1 = 0x06AD,
  710. RANGING_CORE__FORCE_UP_IN = 0x06AE,
  711. RANGING_CORE__FORCE_DN_IN = 0x06AF,
  712. RANGING_CORE__STATIC_UP_VALUE_1 = 0x06B0,
  713. RANGING_CORE__STATIC_UP_VALUE_REF_1 = 0x06B1,
  714. RANGING_CORE__STATIC_DN_VALUE_1 = 0x06B2,
  715. RANGING_CORE__STATIC_DN_VALUE_REF_1 = 0x06B3,
  716. RANGING_CORE__MONITOR_UP_DN = 0x06B4,
  717. RANGING_CORE__INVERT_UP_DN = 0x06B5,
  718. RANGING_CORE__CPUMP_1 = 0x06B6,
  719. RANGING_CORE__CPUMP_2 = 0x06B7,
  720. RANGING_CORE__CPUMP_3 = 0x06B8,
  721. RANGING_CORE__OSC_1 = 0x06B9,
  722. RANGING_CORE__PLL_1 = 0x06BB,
  723. RANGING_CORE__PLL_2 = 0x06BC,
  724. RANGING_CORE__REFERENCE_1 = 0x06BD,
  725. RANGING_CORE__REFERENCE_3 = 0x06BF,
  726. RANGING_CORE__REFERENCE_4 = 0x06C0,
  727. RANGING_CORE__REFERENCE_5 = 0x06C1,
  728. RANGING_CORE__REGAVDD1V2 = 0x06C3,
  729. RANGING_CORE__CALIB_1 = 0x06C4,
  730. RANGING_CORE__CALIB_2 = 0x06C5,
  731. RANGING_CORE__CALIB_3 = 0x06C6,
  732. RANGING_CORE__TST_MUX_SEL1 = 0x06C9,
  733. RANGING_CORE__TST_MUX_SEL2 = 0x06CA,
  734. RANGING_CORE__TST_MUX = 0x06CB,
  735. RANGING_CORE__GPIO_OUT_TESTMUX = 0x06CC,
  736. RANGING_CORE__CUSTOM_FE = 0x06CD,
  737. RANGING_CORE__CUSTOM_FE_2 = 0x06CE,
  738. RANGING_CORE__SPAD_READOUT = 0x06CF,
  739. RANGING_CORE__SPAD_READOUT_1 = 0x06D0,
  740. RANGING_CORE__SPAD_READOUT_2 = 0x06D1,
  741. RANGING_CORE__SPAD_PS = 0x06D2,
  742. RANGING_CORE__LASER_SAFETY_2 = 0x06D4,
  743. RANGING_CORE__NVM_CTRL__MODE = 0x0780,
  744. RANGING_CORE__NVM_CTRL__PDN = 0x0781,
  745. RANGING_CORE__NVM_CTRL__PROGN = 0x0782,
  746. RANGING_CORE__NVM_CTRL__READN = 0x0783,
  747. RANGING_CORE__NVM_CTRL__PULSE_WIDTH_MSB = 0x0784,
  748. RANGING_CORE__NVM_CTRL__PULSE_WIDTH_LSB = 0x0785,
  749. RANGING_CORE__NVM_CTRL__HV_RISE_MSB = 0x0786,
  750. RANGING_CORE__NVM_CTRL__HV_RISE_LSB = 0x0787,
  751. RANGING_CORE__NVM_CTRL__HV_FALL_MSB = 0x0788,
  752. RANGING_CORE__NVM_CTRL__HV_FALL_LSB = 0x0789,
  753. RANGING_CORE__NVM_CTRL__TST = 0x078A,
  754. RANGING_CORE__NVM_CTRL__TESTREAD = 0x078B,
  755. RANGING_CORE__NVM_CTRL__DATAIN_MMM = 0x078C,
  756. RANGING_CORE__NVM_CTRL__DATAIN_LMM = 0x078D,
  757. RANGING_CORE__NVM_CTRL__DATAIN_LLM = 0x078E,
  758. RANGING_CORE__NVM_CTRL__DATAIN_LLL = 0x078F,
  759. RANGING_CORE__NVM_CTRL__DATAOUT_MMM = 0x0790,
  760. RANGING_CORE__NVM_CTRL__DATAOUT_LMM = 0x0791,
  761. RANGING_CORE__NVM_CTRL__DATAOUT_LLM = 0x0792,
  762. RANGING_CORE__NVM_CTRL__DATAOUT_LLL = 0x0793,
  763. RANGING_CORE__NVM_CTRL__ADDR = 0x0794,
  764. RANGING_CORE__NVM_CTRL__DATAOUT_ECC = 0x0795,
  765. RANGING_CORE__RET_SPAD_EN_0 = 0x0796,
  766. RANGING_CORE__RET_SPAD_EN_1 = 0x0797,
  767. RANGING_CORE__RET_SPAD_EN_2 = 0x0798,
  768. RANGING_CORE__RET_SPAD_EN_3 = 0x0799,
  769. RANGING_CORE__RET_SPAD_EN_4 = 0x079A,
  770. RANGING_CORE__RET_SPAD_EN_5 = 0x079B,
  771. RANGING_CORE__RET_SPAD_EN_6 = 0x079C,
  772. RANGING_CORE__RET_SPAD_EN_7 = 0x079D,
  773. RANGING_CORE__RET_SPAD_EN_8 = 0x079E,
  774. RANGING_CORE__RET_SPAD_EN_9 = 0x079F,
  775. RANGING_CORE__RET_SPAD_EN_10 = 0x07A0,
  776. RANGING_CORE__RET_SPAD_EN_11 = 0x07A1,
  777. RANGING_CORE__RET_SPAD_EN_12 = 0x07A2,
  778. RANGING_CORE__RET_SPAD_EN_13 = 0x07A3,
  779. RANGING_CORE__RET_SPAD_EN_14 = 0x07A4,
  780. RANGING_CORE__RET_SPAD_EN_15 = 0x07A5,
  781. RANGING_CORE__RET_SPAD_EN_16 = 0x07A6,
  782. RANGING_CORE__RET_SPAD_EN_17 = 0x07A7,
  783. RANGING_CORE__SPAD_SHIFT_EN = 0x07BA,
  784. RANGING_CORE__SPAD_DISABLE_CTRL = 0x07BB,
  785. RANGING_CORE__SPAD_EN_SHIFT_OUT_DEBUG = 0x07BC,
  786. RANGING_CORE__SPI_MODE = 0x07BD,
  787. RANGING_CORE__GPIO_DIR = 0x07BE,
  788. RANGING_CORE__VCSEL_PERIOD = 0x0880,
  789. RANGING_CORE__VCSEL_START = 0x0881,
  790. RANGING_CORE__VCSEL_STOP = 0x0882,
  791. RANGING_CORE__VCSEL_1 = 0x0885,
  792. RANGING_CORE__VCSEL_STATUS = 0x088D,
  793. RANGING_CORE__STATUS = 0x0980,
  794. RANGING_CORE__LASER_CONTINUITY_STATE = 0x0981,
  795. RANGING_CORE__RANGE_1_MMM = 0x0982,
  796. RANGING_CORE__RANGE_1_LMM = 0x0983,
  797. RANGING_CORE__RANGE_1_LLM = 0x0984,
  798. RANGING_CORE__RANGE_1_LLL = 0x0985,
  799. RANGING_CORE__RANGE_REF_1_MMM = 0x0986,
  800. RANGING_CORE__RANGE_REF_1_LMM = 0x0987,
  801. RANGING_CORE__RANGE_REF_1_LLM = 0x0988,
  802. RANGING_CORE__RANGE_REF_1_LLL = 0x0989,
  803. RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_MMM = 0x098A,
  804. RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LMM = 0x098B,
  805. RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LLM = 0x098C,
  806. RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LLL = 0x098D,
  807. RANGING_CORE__RANGING_TOTAL_EVENTS_1_MMM = 0x098E,
  808. RANGING_CORE__RANGING_TOTAL_EVENTS_1_LMM = 0x098F,
  809. RANGING_CORE__RANGING_TOTAL_EVENTS_1_LLM = 0x0990,
  810. RANGING_CORE__RANGING_TOTAL_EVENTS_1_LLL = 0x0991,
  811. RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_MMM = 0x0992,
  812. RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LMM = 0x0993,
  813. RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LLM = 0x0994,
  814. RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LLL = 0x0995,
  815. RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_MM = 0x0996,
  816. RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_LM = 0x0997,
  817. RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_LL = 0x0998,
  818. RANGING_CORE__AMBIENT_MISMATCH_MM = 0x0999,
  819. RANGING_CORE__AMBIENT_MISMATCH_LM = 0x099A,
  820. RANGING_CORE__AMBIENT_MISMATCH_LL = 0x099B,
  821. RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_MMM = 0x099C,
  822. RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LMM = 0x099D,
  823. RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LLM = 0x099E,
  824. RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LLL = 0x099F,
  825. RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_MMM = 0x09A0,
  826. RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LMM = 0x09A1,
  827. RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LLM = 0x09A2,
  828. RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LLL = 0x09A3,
  829. RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_MMM = 0x09A4,
  830. RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LMM = 0x09A5,
  831. RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LLM = 0x09A6,
  832. RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LLL = 0x09A7,
  833. RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_MM = 0x09A8,
  834. RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_LM = 0x09A9,
  835. RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_LL = 0x09AA,
  836. RANGING_CORE__AMBIENT_MISMATCH_REF_MM = 0x09AB,
  837. RANGING_CORE__AMBIENT_MISMATCH_REF_LM = 0x09AC,
  838. RANGING_CORE__AMBIENT_MISMATCH_REF_LL = 0x09AD,
  839. RANGING_CORE__GPIO_CONFIG__A0 = 0x0A00,
  840. RANGING_CORE__RESET_CONTROL__A0 = 0x0A01,
  841. RANGING_CORE__INTR_MANAGER__A0 = 0x0A02,
  842. RANGING_CORE__POWER_FSM_TIME_OSC__A0 = 0x0A06,
  843. RANGING_CORE__VCSEL_ATEST__A0 = 0x0A07,
  844. RANGING_CORE__VCSEL_PERIOD_CLIPPED__A0 = 0x0A08,
  845. RANGING_CORE__VCSEL_STOP_CLIPPED__A0 = 0x0A09,
  846. RANGING_CORE__CALIB_2__A0 = 0x0A0A,
  847. RANGING_CORE__STOP_CONDITION__A0 = 0x0A0B,
  848. RANGING_CORE__STATUS_RESET__A0 = 0x0A0C,
  849. RANGING_CORE__READOUT_CFG__A0 = 0x0A0D,
  850. RANGING_CORE__WINDOW_SETTING__A0 = 0x0A0E,
  851. RANGING_CORE__VCSEL_DELAY__A0 = 0x0A1A,
  852. RANGING_CORE__REFERENCE_2__A0 = 0x0A1B,
  853. RANGING_CORE__REGAVDD1V2__A0 = 0x0A1D,
  854. RANGING_CORE__TST_MUX__A0 = 0x0A1F,
  855. RANGING_CORE__CUSTOM_FE_2__A0 = 0x0A20,
  856. RANGING_CORE__SPAD_READOUT__A0 = 0x0A21,
  857. RANGING_CORE__CPUMP_1__A0 = 0x0A22,
  858. RANGING_CORE__SPARE_REGISTER__A0 = 0x0A23,
  859. RANGING_CORE__VCSEL_CONT_STAGE5_BYPASS__A0 = 0x0A24,
  860. RANGING_CORE__RET_SPAD_EN_18 = 0x0A25,
  861. RANGING_CORE__RET_SPAD_EN_19 = 0x0A26,
  862. RANGING_CORE__RET_SPAD_EN_20 = 0x0A27,
  863. RANGING_CORE__RET_SPAD_EN_21 = 0x0A28,
  864. RANGING_CORE__RET_SPAD_EN_22 = 0x0A29,
  865. RANGING_CORE__RET_SPAD_EN_23 = 0x0A2A,
  866. RANGING_CORE__RET_SPAD_EN_24 = 0x0A2B,
  867. RANGING_CORE__RET_SPAD_EN_25 = 0x0A2C,
  868. RANGING_CORE__RET_SPAD_EN_26 = 0x0A2D,
  869. RANGING_CORE__RET_SPAD_EN_27 = 0x0A2E,
  870. RANGING_CORE__RET_SPAD_EN_28 = 0x0A2F,
  871. RANGING_CORE__RET_SPAD_EN_29 = 0x0A30,
  872. RANGING_CORE__RET_SPAD_EN_30 = 0x0A31,
  873. RANGING_CORE__RET_SPAD_EN_31 = 0x0A32,
  874. RANGING_CORE__REF_SPAD_EN_0__EWOK = 0x0A33,
  875. RANGING_CORE__REF_SPAD_EN_1__EWOK = 0x0A34,
  876. RANGING_CORE__REF_SPAD_EN_2__EWOK = 0x0A35,
  877. RANGING_CORE__REF_SPAD_EN_3__EWOK = 0x0A36,
  878. RANGING_CORE__REF_SPAD_EN_4__EWOK = 0x0A37,
  879. RANGING_CORE__REF_SPAD_EN_5__EWOK = 0x0A38,
  880. RANGING_CORE__REF_EN_START_SELECT = 0x0A39,
  881. RANGING_CORE__REGDVDD1V2_ATEST__EWOK = 0x0A41,
  882. SOFT_RESET_GO1 = 0x0B00,
  883. PRIVATE__PATCH_BASE_ADDR_RSLV = 0x0E00,
  884. PREV_SHADOW_RESULT__INTERRUPT_STATUS = 0x0ED0,
  885. PREV_SHADOW_RESULT__RANGE_STATUS = 0x0ED1,
  886. PREV_SHADOW_RESULT__REPORT_STATUS = 0x0ED2,
  887. PREV_SHADOW_RESULT__STREAM_COUNT = 0x0ED3,
  888. PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x0ED4,
  889. PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x0ED4,
  890. PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x0ED5,
  891. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0 = 0x0ED6,
  892. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI = 0x0ED6,
  893. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO = 0x0ED7,
  894. PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0 = 0x0ED8,
  895. PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI = 0x0ED8,
  896. PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO = 0x0ED9,
  897. PREV_SHADOW_RESULT__SIGMA_SD0 = 0x0EDA,
  898. PREV_SHADOW_RESULT__SIGMA_SD0_HI = 0x0EDA,
  899. PREV_SHADOW_RESULT__SIGMA_SD0_LO = 0x0EDB,
  900. PREV_SHADOW_RESULT__PHASE_SD0 = 0x0EDC,
  901. PREV_SHADOW_RESULT__PHASE_SD0_HI = 0x0EDC,
  902. PREV_SHADOW_RESULT__PHASE_SD0_LO = 0x0EDD,
  903. PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0 = 0x0EDE,
  904. PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI = 0x0EDE,
  905. PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO = 0x0EDF,
  906. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0 = 0x0EE0,
  907. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI = 0x0EE0,
  908. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO = 0x0EE1,
  909. PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x0EE2,
  910. PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x0EE2,
  911. PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x0EE3,
  912. PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x0EE4,
  913. PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x0EE4,
  914. PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x0EE5,
  915. PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0 = 0x0EE6,
  916. PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI = 0x0EE6,
  917. PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO = 0x0EE7,
  918. PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1 = 0x0EE8,
  919. PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI = 0x0EE8,
  920. PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO = 0x0EE9,
  921. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1 = 0x0EEA,
  922. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI = 0x0EEA,
  923. PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO = 0x0EEB,
  924. PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1 = 0x0EEC,
  925. PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI = 0x0EEC,
  926. PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO = 0x0EED,
  927. PREV_SHADOW_RESULT__SIGMA_SD1 = 0x0EEE,
  928. PREV_SHADOW_RESULT__SIGMA_SD1_HI = 0x0EEE,
  929. PREV_SHADOW_RESULT__SIGMA_SD1_LO = 0x0EEF,
  930. PREV_SHADOW_RESULT__PHASE_SD1 = 0x0EF0,
  931. PREV_SHADOW_RESULT__PHASE_SD1_HI = 0x0EF0,
  932. PREV_SHADOW_RESULT__PHASE_SD1_LO = 0x0EF1,
  933. PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1 = 0x0EF2,
  934. PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI = 0x0EF2,
  935. PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO = 0x0EF3,
  936. PREV_SHADOW_RESULT__SPARE_0_SD1 = 0x0EF4,
  937. PREV_SHADOW_RESULT__SPARE_0_SD1_HI = 0x0EF4,
  938. PREV_SHADOW_RESULT__SPARE_0_SD1_LO = 0x0EF5,
  939. PREV_SHADOW_RESULT__SPARE_1_SD1 = 0x0EF6,
  940. PREV_SHADOW_RESULT__SPARE_1_SD1_HI = 0x0EF6,
  941. PREV_SHADOW_RESULT__SPARE_1_SD1_LO = 0x0EF7,
  942. PREV_SHADOW_RESULT__SPARE_2_SD1 = 0x0EF8,
  943. PREV_SHADOW_RESULT__SPARE_2_SD1_HI = 0x0EF8,
  944. PREV_SHADOW_RESULT__SPARE_2_SD1_LO = 0x0EF9,
  945. PREV_SHADOW_RESULT__SPARE_3_SD1 = 0x0EFA,
  946. PREV_SHADOW_RESULT__SPARE_3_SD1_HI = 0x0EFA,
  947. PREV_SHADOW_RESULT__SPARE_3_SD1_LO = 0x0EFB,
  948. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 = 0x0EFC,
  949. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3 = 0x0EFC,
  950. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2 = 0x0EFD,
  951. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1 = 0x0EFE,
  952. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0 = 0x0EFF,
  953. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0 = 0x0F00,
  954. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3 = 0x0F00,
  955. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2 = 0x0F01,
  956. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1 = 0x0F02,
  957. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0 = 0x0F03,
  958. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0 = 0x0F04,
  959. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3 = 0x0F04,
  960. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2 = 0x0F05,
  961. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1 = 0x0F06,
  962. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0 = 0x0F07,
  963. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0 = 0x0F08,
  964. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3 = 0x0F08,
  965. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2 = 0x0F09,
  966. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1 = 0x0F0A,
  967. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0 = 0x0F0B,
  968. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1 = 0x0F0C,
  969. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3 = 0x0F0C,
  970. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2 = 0x0F0D,
  971. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1 = 0x0F0E,
  972. PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0 = 0x0F0F,
  973. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1 = 0x0F10,
  974. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3 = 0x0F10,
  975. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2 = 0x0F11,
  976. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1 = 0x0F12,
  977. PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0 = 0x0F13,
  978. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1 = 0x0F14,
  979. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3 = 0x0F14,
  980. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2 = 0x0F15,
  981. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1 = 0x0F16,
  982. PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0 = 0x0F17,
  983. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1 = 0x0F18,
  984. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3 = 0x0F18,
  985. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2 = 0x0F19,
  986. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1 = 0x0F1A,
  987. PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0 = 0x0F1B,
  988. PREV_SHADOW_RESULT_CORE__SPARE_0 = 0x0F1C,
  989. RESULT__DEBUG_STATUS = 0x0F20,
  990. RESULT__DEBUG_STAGE = 0x0F21,
  991. GPH__SYSTEM__THRESH_RATE_HIGH = 0x0F24,
  992. GPH__SYSTEM__THRESH_RATE_HIGH_HI = 0x0F24,
  993. GPH__SYSTEM__THRESH_RATE_HIGH_LO = 0x0F25,
  994. GPH__SYSTEM__THRESH_RATE_LOW = 0x0F26,
  995. GPH__SYSTEM__THRESH_RATE_LOW_HI = 0x0F26,
  996. GPH__SYSTEM__THRESH_RATE_LOW_LO = 0x0F27,
  997. GPH__SYSTEM__INTERRUPT_CONFIG_GPIO = 0x0F28,
  998. GPH__DSS_CONFIG__ROI_MODE_CONTROL = 0x0F2F,
  999. GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT = 0x0F30,
  1000. GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_HI = 0x0F30,
  1001. GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_LO = 0x0F31,
  1002. GPH__DSS_CONFIG__MANUAL_BLOCK_SELECT = 0x0F32,
  1003. GPH__DSS_CONFIG__MAX_SPADS_LIMIT = 0x0F33,
  1004. GPH__DSS_CONFIG__MIN_SPADS_LIMIT = 0x0F34,
  1005. GPH__MM_CONFIG__TIMEOUT_MACROP_A_HI = 0x0F36,
  1006. GPH__MM_CONFIG__TIMEOUT_MACROP_A_LO = 0x0F37,
  1007. GPH__MM_CONFIG__TIMEOUT_MACROP_B_HI = 0x0F38,
  1008. GPH__MM_CONFIG__TIMEOUT_MACROP_B_LO = 0x0F39,
  1009. GPH__RANGE_CONFIG__TIMEOUT_MACROP_A_HI = 0x0F3A,
  1010. GPH__RANGE_CONFIG__TIMEOUT_MACROP_A_LO = 0x0F3B,
  1011. GPH__RANGE_CONFIG__VCSEL_PERIOD_A = 0x0F3C,
  1012. GPH__RANGE_CONFIG__VCSEL_PERIOD_B = 0x0F3D,
  1013. GPH__RANGE_CONFIG__TIMEOUT_MACROP_B_HI = 0x0F3E,
  1014. GPH__RANGE_CONFIG__TIMEOUT_MACROP_B_LO = 0x0F3F,
  1015. GPH__RANGE_CONFIG__SIGMA_THRESH = 0x0F40,
  1016. GPH__RANGE_CONFIG__SIGMA_THRESH_HI = 0x0F40,
  1017. GPH__RANGE_CONFIG__SIGMA_THRESH_LO = 0x0F41,
  1018. GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS = 0x0F42,
  1019. GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_HI = 0x0F42,
  1020. GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_LO = 0x0F43,
  1021. GPH__RANGE_CONFIG__VALID_PHASE_LOW = 0x0F44,
  1022. GPH__RANGE_CONFIG__VALID_PHASE_HIGH = 0x0F45,
  1023. FIRMWARE__INTERNAL_STREAM_COUNT_DIV = 0x0F46,
  1024. FIRMWARE__INTERNAL_STREAM_COUNTER_VAL = 0x0F47,
  1025. DSS_CALC__ROI_CTRL = 0x0F54,
  1026. DSS_CALC__SPARE_1 = 0x0F55,
  1027. DSS_CALC__SPARE_2 = 0x0F56,
  1028. DSS_CALC__SPARE_3 = 0x0F57,
  1029. DSS_CALC__SPARE_4 = 0x0F58,
  1030. DSS_CALC__SPARE_5 = 0x0F59,
  1031. DSS_CALC__SPARE_6 = 0x0F5A,
  1032. DSS_CALC__SPARE_7 = 0x0F5B,
  1033. DSS_CALC__USER_ROI_SPAD_EN_0 = 0x0F5C,
  1034. DSS_CALC__USER_ROI_SPAD_EN_1 = 0x0F5D,
  1035. DSS_CALC__USER_ROI_SPAD_EN_2 = 0x0F5E,
  1036. DSS_CALC__USER_ROI_SPAD_EN_3 = 0x0F5F,
  1037. DSS_CALC__USER_ROI_SPAD_EN_4 = 0x0F60,
  1038. DSS_CALC__USER_ROI_SPAD_EN_5 = 0x0F61,
  1039. DSS_CALC__USER_ROI_SPAD_EN_6 = 0x0F62,
  1040. DSS_CALC__USER_ROI_SPAD_EN_7 = 0x0F63,
  1041. DSS_CALC__USER_ROI_SPAD_EN_8 = 0x0F64,
  1042. DSS_CALC__USER_ROI_SPAD_EN_9 = 0x0F65,
  1043. DSS_CALC__USER_ROI_SPAD_EN_10 = 0x0F66,
  1044. DSS_CALC__USER_ROI_SPAD_EN_11 = 0x0F67,
  1045. DSS_CALC__USER_ROI_SPAD_EN_12 = 0x0F68,
  1046. DSS_CALC__USER_ROI_SPAD_EN_13 = 0x0F69,
  1047. DSS_CALC__USER_ROI_SPAD_EN_14 = 0x0F6A,
  1048. DSS_CALC__USER_ROI_SPAD_EN_15 = 0x0F6B,
  1049. DSS_CALC__USER_ROI_SPAD_EN_16 = 0x0F6C,
  1050. DSS_CALC__USER_ROI_SPAD_EN_17 = 0x0F6D,
  1051. DSS_CALC__USER_ROI_SPAD_EN_18 = 0x0F6E,
  1052. DSS_CALC__USER_ROI_SPAD_EN_19 = 0x0F6F,
  1053. DSS_CALC__USER_ROI_SPAD_EN_20 = 0x0F70,
  1054. DSS_CALC__USER_ROI_SPAD_EN_21 = 0x0F71,
  1055. DSS_CALC__USER_ROI_SPAD_EN_22 = 0x0F72,
  1056. DSS_CALC__USER_ROI_SPAD_EN_23 = 0x0F73,
  1057. DSS_CALC__USER_ROI_SPAD_EN_24 = 0x0F74,
  1058. DSS_CALC__USER_ROI_SPAD_EN_25 = 0x0F75,
  1059. DSS_CALC__USER_ROI_SPAD_EN_26 = 0x0F76,
  1060. DSS_CALC__USER_ROI_SPAD_EN_27 = 0x0F77,
  1061. DSS_CALC__USER_ROI_SPAD_EN_28 = 0x0F78,
  1062. DSS_CALC__USER_ROI_SPAD_EN_29 = 0x0F79,
  1063. DSS_CALC__USER_ROI_SPAD_EN_30 = 0x0F7A,
  1064. DSS_CALC__USER_ROI_SPAD_EN_31 = 0x0F7B,
  1065. DSS_CALC__USER_ROI_0 = 0x0F7C,
  1066. DSS_CALC__USER_ROI_1 = 0x0F7D,
  1067. DSS_CALC__MODE_ROI_0 = 0x0F7E,
  1068. DSS_CALC__MODE_ROI_1 = 0x0F7F,
  1069. SIGMA_ESTIMATOR_CALC__SPARE_0 = 0x0F80,
  1070. VHV_RESULT__PEAK_SIGNAL_RATE_MCPS = 0x0F82,
  1071. VHV_RESULT__PEAK_SIGNAL_RATE_MCPS_HI = 0x0F82,
  1072. VHV_RESULT__PEAK_SIGNAL_RATE_MCPS_LO = 0x0F83,
  1073. VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF = 0x0F84,
  1074. VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_3 = 0x0F84,
  1075. VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_2 = 0x0F85,
  1076. VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_1 = 0x0F86,
  1077. VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_0 = 0x0F87,
  1078. PHASECAL_RESULT__PHASE_OUTPUT_REF = 0x0F88,
  1079. PHASECAL_RESULT__PHASE_OUTPUT_REF_HI = 0x0F88,
  1080. PHASECAL_RESULT__PHASE_OUTPUT_REF_LO = 0x0F89,
  1081. DSS_RESULT__TOTAL_RATE_PER_SPAD = 0x0F8A,
  1082. DSS_RESULT__TOTAL_RATE_PER_SPAD_HI = 0x0F8A,
  1083. DSS_RESULT__TOTAL_RATE_PER_SPAD_LO = 0x0F8B,
  1084. DSS_RESULT__ENABLED_BLOCKS = 0x0F8C,
  1085. DSS_RESULT__NUM_REQUESTED_SPADS = 0x0F8E,
  1086. DSS_RESULT__NUM_REQUESTED_SPADS_HI = 0x0F8E,
  1087. DSS_RESULT__NUM_REQUESTED_SPADS_LO = 0x0F8F,
  1088. MM_RESULT__INNER_INTERSECTION_RATE = 0x0F92,
  1089. MM_RESULT__INNER_INTERSECTION_RATE_HI = 0x0F92,
  1090. MM_RESULT__INNER_INTERSECTION_RATE_LO = 0x0F93,
  1091. MM_RESULT__OUTER_COMPLEMENT_RATE = 0x0F94,
  1092. MM_RESULT__OUTER_COMPLEMENT_RATE_HI = 0x0F94,
  1093. MM_RESULT__OUTER_COMPLEMENT_RATE_LO = 0x0F95,
  1094. MM_RESULT__TOTAL_OFFSET = 0x0F96,
  1095. MM_RESULT__TOTAL_OFFSET_HI = 0x0F96,
  1096. MM_RESULT__TOTAL_OFFSET_LO = 0x0F97,
  1097. XTALK_CALC__XTALK_FOR_ENABLED_SPADS = 0x0F98,
  1098. XTALK_CALC__XTALK_FOR_ENABLED_SPADS_3 = 0x0F98,
  1099. XTALK_CALC__XTALK_FOR_ENABLED_SPADS_2 = 0x0F99,
  1100. XTALK_CALC__XTALK_FOR_ENABLED_SPADS_1 = 0x0F9A,
  1101. XTALK_CALC__XTALK_FOR_ENABLED_SPADS_0 = 0x0F9B,
  1102. XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS = 0x0F9C,
  1103. XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_3 = 0x0F9C,
  1104. XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_2 = 0x0F9D,
  1105. XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_1 = 0x0F9E,
  1106. XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_0 = 0x0F9F,
  1107. XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS = 0x0FA0,
  1108. XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_3 = 0x0FA0,
  1109. XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_2 = 0x0FA1,
  1110. XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_1 = 0x0FA2,
  1111. XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_0 = 0x0FA3,
  1112. XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS = 0x0FA4,
  1113. XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_3 = 0x0FA4,
  1114. XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_2 = 0x0FA5,
  1115. XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_1 = 0x0FA6,
  1116. XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_0 = 0x0FA7,
  1117. RANGE_RESULT__ACCUM_PHASE = 0x0FA8,
  1118. RANGE_RESULT__ACCUM_PHASE_3 = 0x0FA8,
  1119. RANGE_RESULT__ACCUM_PHASE_2 = 0x0FA9,
  1120. RANGE_RESULT__ACCUM_PHASE_1 = 0x0FAA,
  1121. RANGE_RESULT__ACCUM_PHASE_0 = 0x0FAB,
  1122. RANGE_RESULT__OFFSET_CORRECTED_RANGE = 0x0FAC,
  1123. RANGE_RESULT__OFFSET_CORRECTED_RANGE_HI = 0x0FAC,
  1124. RANGE_RESULT__OFFSET_CORRECTED_RANGE_LO = 0x0FAD,
  1125. SHADOW_PHASECAL_RESULT__VCSEL_START = 0x0FAE,
  1126. SHADOW_RESULT__INTERRUPT_STATUS = 0x0FB0,
  1127. SHADOW_RESULT__RANGE_STATUS = 0x0FB1,
  1128. SHADOW_RESULT__REPORT_STATUS = 0x0FB2,
  1129. SHADOW_RESULT__STREAM_COUNT = 0x0FB3,
  1130. SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x0FB4,
  1131. SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x0FB4,
  1132. SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x0FB5,
  1133. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0 = 0x0FB6,
  1134. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI = 0x0FB6,
  1135. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO = 0x0FB7,
  1136. SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0 = 0x0FB8,
  1137. SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI = 0x0FB8,
  1138. SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO = 0x0FB9,
  1139. SHADOW_RESULT__SIGMA_SD0 = 0x0FBA,
  1140. SHADOW_RESULT__SIGMA_SD0_HI = 0x0FBA,
  1141. SHADOW_RESULT__SIGMA_SD0_LO = 0x0FBB,
  1142. SHADOW_RESULT__PHASE_SD0 = 0x0FBC,
  1143. SHADOW_RESULT__PHASE_SD0_HI = 0x0FBC,
  1144. SHADOW_RESULT__PHASE_SD0_LO = 0x0FBD,
  1145. SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0 = 0x0FBE,
  1146. SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI = 0x0FBE,
  1147. SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO = 0x0FBF,
  1148. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0 = 0x0FC0,
  1149. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI = 0x0FC0,
  1150. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO = 0x0FC1,
  1151. SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x0FC2,
  1152. SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x0FC2,
  1153. SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x0FC3,
  1154. SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0 = 0x0FC4,
  1155. SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI = 0x0FC4,
  1156. SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO = 0x0FC5,
  1157. SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0 = 0x0FC6,
  1158. SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI = 0x0FC6,
  1159. SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO = 0x0FC7,
  1160. SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1 = 0x0FC8,
  1161. SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI = 0x0FC8,
  1162. SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO = 0x0FC9,
  1163. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1 = 0x0FCA,
  1164. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI = 0x0FCA,
  1165. SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO = 0x0FCB,
  1166. SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1 = 0x0FCC,
  1167. SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI = 0x0FCC,
  1168. SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO = 0x0FCD,
  1169. SHADOW_RESULT__SIGMA_SD1 = 0x0FCE,
  1170. SHADOW_RESULT__SIGMA_SD1_HI = 0x0FCE,
  1171. SHADOW_RESULT__SIGMA_SD1_LO = 0x0FCF,
  1172. SHADOW_RESULT__PHASE_SD1 = 0x0FD0,
  1173. SHADOW_RESULT__PHASE_SD1_HI = 0x0FD0,
  1174. SHADOW_RESULT__PHASE_SD1_LO = 0x0FD1,
  1175. SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1 = 0x0FD2,
  1176. SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI = 0x0FD2,
  1177. SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO = 0x0FD3,
  1178. SHADOW_RESULT__SPARE_0_SD1 = 0x0FD4,
  1179. SHADOW_RESULT__SPARE_0_SD1_HI = 0x0FD4,
  1180. SHADOW_RESULT__SPARE_0_SD1_LO = 0x0FD5,
  1181. SHADOW_RESULT__SPARE_1_SD1 = 0x0FD6,
  1182. SHADOW_RESULT__SPARE_1_SD1_HI = 0x0FD6,
  1183. SHADOW_RESULT__SPARE_1_SD1_LO = 0x0FD7,
  1184. SHADOW_RESULT__SPARE_2_SD1 = 0x0FD8,
  1185. SHADOW_RESULT__SPARE_2_SD1_HI = 0x0FD8,
  1186. SHADOW_RESULT__SPARE_2_SD1_LO = 0x0FD9,
  1187. SHADOW_RESULT__SPARE_3_SD1 = 0x0FDA,
  1188. SHADOW_RESULT__THRESH_INFO = 0x0FDB,
  1189. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0 = 0x0FDC,
  1190. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3 = 0x0FDC,
  1191. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2 = 0x0FDD,
  1192. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1 = 0x0FDE,
  1193. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0 = 0x0FDF,
  1194. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0 = 0x0FE0,
  1195. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3 = 0x0FE0,
  1196. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2 = 0x0FE1,
  1197. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1 = 0x0FE2,
  1198. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0 = 0x0FE3,
  1199. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0 = 0x0FE4,
  1200. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3 = 0x0FE4,
  1201. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2 = 0x0FE5,
  1202. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1 = 0x0FE6,
  1203. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0 = 0x0FE7,
  1204. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0 = 0x0FE8,
  1205. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3 = 0x0FE8,
  1206. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2 = 0x0FE9,
  1207. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1 = 0x0FEA,
  1208. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0 = 0x0FEB,
  1209. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1 = 0x0FEC,
  1210. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3 = 0x0FEC,
  1211. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2 = 0x0FED,
  1212. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1 = 0x0FEE,
  1213. SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0 = 0x0FEF,
  1214. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1 = 0x0FF0,
  1215. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3 = 0x0FF0,
  1216. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2 = 0x0FF1,
  1217. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1 = 0x0FF2,
  1218. SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0 = 0x0FF3,
  1219. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1 = 0x0FF4,
  1220. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3 = 0x0FF4,
  1221. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2 = 0x0FF5,
  1222. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1 = 0x0FF6,
  1223. SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0 = 0x0FF7,
  1224. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1 = 0x0FF8,
  1225. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3 = 0x0FF8,
  1226. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2 = 0x0FF9,
  1227. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1 = 0x0FFA,
  1228. SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0 = 0x0FFB,
  1229. SHADOW_RESULT_CORE__SPARE_0 = 0x0FFC,
  1230. SHADOW_PHASECAL_RESULT__REFERENCE_PHASE_HI = 0x0FFE,
  1231. SHADOW_PHASECAL_RESULT__REFERENCE_PHASE_LO = 0x0FFF,
  1232. };
  1233. // constructor
  1234. AP_RangeFinder_VL53L1X(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, AP_HAL::OwnPtr<AP_HAL::I2CDevice> dev);
  1235. bool init();
  1236. void timer();
  1237. // check sensor ID
  1238. bool check_id(void);
  1239. // get a reading
  1240. bool get_reading(uint16_t &reading_cm);
  1241. AP_HAL::OwnPtr<AP_HAL::I2CDevice> dev;
  1242. // value used in measurement timing budget calculations
  1243. // assumes PresetMode is LOWPOWER_AUTONOMOUS
  1244. //
  1245. // vhv = LOWPOWER_AUTO_VHV_LOOP_DURATION_US + LOWPOWERAUTO_VHV_LOOP_BOUND
  1246. // (tuning parm default) * LOWPOWER_AUTO_VHV_LOOP_DURATION_US
  1247. // = 245 + 3 * 245 = 980
  1248. // TimingGuard = LOWPOWER_AUTO_OVERHEAD_BEFORE_A_RANGING +
  1249. // LOWPOWER_AUTO_OVERHEAD_BETWEEN_A_B_RANGING + vhv
  1250. // = 1448 + 2100 + 980 = 4528
  1251. static const uint32_t TimingGuard = 4528;
  1252. // value in DSS_CONFIG__TARGET_TOTAL_RATE_MCPS register,
  1253. // used in DSS calculations
  1254. static const uint16_t TargetRate = 0x0A00;
  1255. enum DistanceMode { Short, Medium, Long, Unknown };
  1256. uint16_t fast_osc_frequency;
  1257. uint16_t osc_calibrate_val;
  1258. uint32_t sum_mm;
  1259. uint32_t counter;
  1260. bool calibrated;
  1261. bool read_register(uint16_t reg, uint8_t &value) WARN_IF_UNUSED;
  1262. bool read_register16(uint16_t reg, uint16_t &value) WARN_IF_UNUSED;
  1263. bool write_register(uint16_t reg, uint8_t value) WARN_IF_UNUSED;
  1264. bool write_register16(uint16_t reg, uint16_t value) WARN_IF_UNUSED;
  1265. bool write_register32(uint16_t reg, uint32_t value) WARN_IF_UNUSED;
  1266. bool dataReady(void);
  1267. bool setDistanceMode(DistanceMode distance_mode) WARN_IF_UNUSED;
  1268. bool setMeasurementTimingBudget(uint32_t budget_us) WARN_IF_UNUSED;
  1269. bool getMeasurementTimingBudget(uint32_t &budget) WARN_IF_UNUSED;
  1270. bool startContinuous(uint32_t period_ms) WARN_IF_UNUSED;
  1271. uint32_t decodeTimeout(uint16_t reg_val);
  1272. uint16_t encodeTimeout(uint32_t timeout_mclks);
  1273. uint32_t timeoutMclksToMicroseconds(uint32_t timeout_mclks, uint32_t macro_period_us);
  1274. uint32_t timeoutMicrosecondsToMclks(uint32_t timeout_us, uint32_t macro_period_us);
  1275. uint32_t calcMacroPeriod(uint8_t vcsel_period);
  1276. bool setupManualCalibration(void);
  1277. };