2024-09-20 05:43 AM
Hi Team,
We are using the VL53L4CX in QCS8550 platform.
Below are queries listed below for clarification.
Query 1:Load Capacitance
I'm using a same I2C for 5 sensors of VL53L4CX.
Is that good to connect or any load capacitance issues will occur
Need to understand the max load capacitance of the sensor
Query 2: Slave Address configuration
As per the User manual, we can able to modify the slave address by controlling the XSHUT pin low
The slave address configuration is one time process or every power cycle i need to do address configuration?
Query 3 : IO Voltage level
From the datasheet, IO level is mentioned either 1V8 or 2V8
I'm using the VCC of the sensor is 2V8 and rest all IOs (SCL,SDA,XSHUT,GPIO) in 1V8 level
Is there any issue in this.
Kindly provide the insights at the earliest.
Thanks
Manikandan R
2024-09-23 07:41 AM
Query 1:Load Capacitance
More devices on an I2C means more capacitance, and so you need stronger pull-ups. The trouble is line-length enters into it as well. Wire-gauge and trace width also affect it. Lots of people have written zillions of articles. It's easy to Google them and you will get a better answer than I can give you. There is nothing special about this sensor. All the articles you find will apply to this as well.
Query 2: Slave Address configuration
There is no persistent memory on the sensor. You need to reconfigure the address at every boot.
Query 3 : IO Voltage level
No issue - just run the code.
There is a:
2024-09-25 06:21 AM - edited 2024-09-25 06:21 AM
Query 1:Load Capacitance
Thanks for the response, but it doesn't address the query I raised. The information about I2C capacitance, pull-up resistors, and line length is general advice, but it’s not relevant to my specific question.
The actual query is to confirm max bus capacitance of the device is 10pF only.
Query 2: Slave Address configuration
As per datasheet, I had found an NVM in the architecture(as per attachment), Could you confirm is it used for different purposes?
Query 3 : IO Voltage level
For our design, we need to operate the SCL,SDA,XSHUT,GPIO1 at 1V8 level
As per your inputs, we can ignore the #ifdef USE_I2C_2V8.
I would request you to confirm that 1V8 will be applicable for all pins(SCL,SDA,GPIO1,XSHUT)
2024-09-25 08:21 AM
There are two power levels. AVDD (3v3) and IOVDD (typically 1V8)
XShut is tied to AVDD - so it needs to be 3v3 and it's a bit subject to noise. Should be clean.
GPIO is 70% of IOVDD when high.
Philips created the I2C bus and NXP bought Philips, so they have some intense information about the bus.
From my experience, tuning an I2C bus to be reliable is an art in itself. There is a chart in the datasheet showing what size pull-up you need, but you need to figure out the load capacitance of your bus for it to be of any use.
In Section 3.1 of the datasheet, it states:
So the load capacitance is indeed less than 10pF.
2024-09-30 10:34 PM
Hi John,
Thanks for the inputs.
Could you address the query 2 raised earlier
Query 2: Slave Address configuration
As per the User manual, we can able to modify the slave address by controlling the XSHUT pin low
The slave address configuration is one time process or every power cycle i need to do address configuration?
we are seeing an NVM in the device architecture in the datasheet.
2024-10-01 07:34 AM
There is no user accessible NVM. There was some NVM but after calibrating and trimming the part we locked it down.
The procedure for changing the address is to drop XSHUT on all the sensors, then bring one up, and issue the address change command. Then bring the next one out of reset and change it's address. Repeat until all the addresses have been changed.
Do not use consecutive addresses. The I2C uses a write address (that should be even) and a read address that is +1.
And you need to do this at every boot.
Technically you do not need to re-address the last one. But if you change them all, you can detect if a sensor ever reboots due to a power drop. It will revert to address 0x29 (Write address 0x52, Read address 0x53)