cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L0X Register Map

Vivek Sen
Associate
Posted on February 17, 2017 at 20:28

I've been trying to use the VL53L0X TOF sensor to get ranging data but I'm having trouble finding what all the registers do? I tried looking through the datasheet and API specs but nothing seemed to clearly tell me what each register is defined as. I'm coding this on a PIC24 and I don't want to use the turn-key solution provided because I don't want it to be reliant on WIN32. I'm just trying to simply set up the I2C so that it communicates with the sensor properly. If someone could tell me what registers I will need to properly get the ranging data? Or if there's a register map? Thanks. 

2 REPLIES 2
Soren Karlsen
Associate II
Posted on February 22, 2017 at 11:20

Hi, I am confused about this too and have the same problem, but I think the problem has also been described in this thread:

https://community.st.com/0D50X00009XkeHcSAJ

Especially answer no. 3 is good.

If its not what you are asking about please let me know.

Best Regards

Søren karlsen

sahan sykam
Associate
Posted on June 29, 2018 at 09:01

may help you, got from arduino website 

register addresses from API vl53l0x_device.h (ordered as listed there)

enum

regAddr

{

SYSRANGE_START =

0x00

,

SYSTEM_THRESH_HIGH =

0x0C

,

SYSTEM_THRESH_LOW =

0x0E

,

SYSTEM_SEQUENCE_CONFIG =

0x01

,

SYSTEM_RANGE_CONFIG =

0x09

,

SYSTEM_INTERMEASUREMENT_PERIOD =

0x04

,

SYSTEM_INTERRUPT_CONFIG_GPIO =

0x0A

,

GPIO_HV_MUX_ACTIVE_HIGH =

0x84

,

SYSTEM_INTERRUPT_CLEAR =

0x0B

,

RESULT_INTERRUPT_STATUS =

0x13

,

RESULT_RANGE_STATUS =

0x14

,

RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN =

0xBC

,

RESULT_CORE_RANGING_TOTAL_EVENTS_RTN =

0xC0

,

RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF =

0xD0

,

RESULT_CORE_RANGING_TOTAL_EVENTS_REF =

0xD4

,

RESULT_PEAK_SIGNAL_RATE_REF =

0xB6

,

ALGO_PART_TO_PART_RANGE_OFFSET_MM =

0x28

,

I2C_SLAVE_DEVICE_ADDRESS =

0x8A

,

MSRC_CONFIG_CONTROL =

0x60

,

PRE_RANGE_CONFIG_MIN_SNR =

0x27

,

PRE_RANGE_CONFIG_VALID_PHASE_LOW =

0x56

,

PRE_RANGE_CONFIG_VALID_PHASE_HIGH =

0x57

,

PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT =

0x64

,

FINAL_RANGE_CONFIG_MIN_SNR =

0x67

,

FINAL_RANGE_CONFIG_VALID_PHASE_LOW =

0x47

,

FINAL_RANGE_CONFIG_VALID_PHASE_HIGH =

0x48

,

FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT =

0x44

,

PRE_RANGE_CONFIG_SIGMA_THRESH_HI =

0x61

,

PRE_RANGE_CONFIG_SIGMA_THRESH_LO =

0x62

,

PRE_RANGE_CONFIG_VCSEL_PERIOD =

0x50

,

PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI =

0x51

,

PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO =

0x52

,

SYSTEM_HISTOGRAM_BIN =

0x81

,

HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT =

0x33

,

HISTOGRAM_CONFIG_READOUT_CTRL =

0x55

,

FINAL_RANGE_CONFIG_VCSEL_PERIOD =

0x70

,

FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI =

0x71

,

FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO =

0x72

,

CROSSTALK_COMPENSATION_PEAK_RATE_MCPS =

0x20

,

MSRC_CONFIG_TIMEOUT_MACROP =

0x46

,

SOFT_RESET_GO2_SOFT_RESET_N =

0xBF

,

IDENTIFICATION_MODEL_ID =

0xC0

,

IDENTIFICATION_REVISION_ID =

0xC2

,

OSC_CALIBRATE_VAL =

0xF8

,

GLOBAL_CONFIG_VCSEL_WIDTH =

0x32

,

GLOBAL_CONFIG_SPAD_ENABLES_REF_0 =

0xB0

,

GLOBAL_CONFIG_SPAD_ENABLES_REF_1 =

0xB1

,

GLOBAL_CONFIG_SPAD_ENABLES_REF_2 =

0xB2

,

GLOBAL_CONFIG_SPAD_ENABLES_REF_3 =

0xB3

,

GLOBAL_CONFIG_SPAD_ENABLES_REF_4 =

0xB4

,

GLOBAL_CONFIG_SPAD_ENABLES_REF_5 =

0xB5

,

GLOBAL_CONFIG_REF_EN_START_SELECT =

0xB6

,

DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD =

0x4E

,

DYNAMIC_SPAD_REF_EN_START_OFFSET =

0x4F

,

POWER_MANAGEMENT_GO1_POWER_FORCE =

0x80

,

VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV =

0x89

,

ALGO_PHASECAL_LIM =

0x30

,

ALGO_PHASECAL_CONFIG_TIMEOUT =

0x30

,

};