cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L0X and RP Pico W

carlosdelfino
Senior

I'm trying to port the VL53L0X library for use with the RP Pico W for academic reasons, but I can't map the calls between the VL53L0X SDK and the RP Pico W SDK.

For example, the function

int32_t VL53L0X_read_multi(uint8_t address, uint8_t index, uint8_t *pdata, int32_t count)

would theoretically need to be adjusted to call the function

int i2c_read_blocking(i2c_inst_t *i2c, uint8_t addr, uint8_t *dst, size_t len, bool nostop)


Attempt to read specified number of bytes from address, blocking.

Am I right? Or should it be another way?
Thanks

2 REPLIES 2
Zhiyuan.Han
ST Employee

Hi

Your understanding is correct, inside VL53L0X some API I2C read/write function need read more than 4 registers at same time, so it need read_multi and wirte_multi function. 

You can find below information form the datasheet, below reg can be used to test the I2C reading function. 

 

ZhiyuanHan_0-1752571889166.png

 

 

Br

Zhiyuan.Han


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
carlosdelfino
Senior

I'm having trouble mapping the functions to the RP2040's I2C. I think the example I got isn't the best fit, and the VL53L1CB_SimpleRanging example I got from CubeMX doesn't compile. It's not for the VL53L0, but it would be a good reference. I found another code on the other computer, and I'll cite it tomorrow, but it's completely different from this one. I'm still having trouble adjusting the file for the platform.