2019-06-21 02:29 AM
Dear members,
I am currently trying to interface Arduino Atmega 328p with VL6180X via I2C Bus. I have prepared basic code for reading Range value in single shot and continuous mode, it is working file. Now I changed I2C SCL to 100 KHz, 50 KHz, 20 KHz , sensor seems to be working file. I have connected DSO Oscilloscope and checked the I2C data frames, everything seems to be fine.
Now due to project requirement I must use I2C SCL = 10 KHz only. With this freq, the data value always remains to either 0 or 255, and the RESULT__RANGE_STATUS registe r(0x04D) has value 0x01. I tried disabling sysrange__early_convergence_enable from register SYSRANGE__RANGE_CHECK_ENABLES (0x02D), still no help.
Surprisingly I can read device ID (IDENTIFICATION__MODEL_ID) at this frequency, which confirms that there is no any issue on I2C side. I suspect there is some issue on writing register value or some timing parameter on sensor side.
Does anyone has tried to use this sensor at 10 KHz.
2019-06-21 02:29 AM
Hi,
We had observed and confirmed in the past that the Vl6180X can not support I2C speed lower than 20 KHz. We will add this information to the datasheet during the next documentation update.
Best regards,