Part Number: CC2640R2F
Other Parts Discussed in Thread: LAUNCHXL-CC2640R2
Tool/software: TI-RTOS
I'm connecting VL6180X proximity sensor via I2C to LAUNCHXL-CC2640R2. CC2640R2F is the I2C master, VL6180X is the only slave on the I2C bus.
Per VL6180X datasheet, it's VDD = 2.8V , from an LDO (LDO input =3.3V, output = 2.8V). There are SDA and SCL 1.8K pull up resistors to the 2.8V
The CC2640R2F works on VDD = 3.3V (VIH = 0.8 * VDD = 2.64V , so 2.8V should be OK)
While the I2C communication is OK, I sometimes get a "laser safety error" status bit from the VL6180X.
I Measured the VL6180X VDD, got 3.3V when SDA and SCL wires are connected, and 2.8V when SDA and SCL wires are disconnected.
I noticed the 3.3K pull up resistors on the LAUNCHXL-CC2640R2 board, removed them, and now I get 3.1V on the VL6180X VDD. It actually toggling between 2.8V and 3.1V while the I2C communication is running, I guess it depends on the VL6180X activity / consumption states.
I'm using the I2C_init(), I2C_Params_init(), I2C_open(), I2C_transfer() functions, as I found in the i2ctmp007_CC2640R2_LAUNCHXL_tirtos_ccs code example.
I assume that apart from open-drain output stage, the internal pull up resistors are enabled, causing current flow via the VL6180X I/O clamping diodes into the VDD rail.
1. Is my assumption correct?
2. If so, is there a way to disable the internal pull up resistors in I2C?