I recently brought one Open-Q 2100 SOM which uses Snapdragon 2100 as the processor. Using this SOM I tried to connect with OVP921 through i2c bus 5 which has a device address of 0x04 and 0x05. OVP921 is using SCCB instead of i2c but they are almost similar in the protocol and both SOM and OVP921 have the same 1.8V as the I/O pin voltage rating. When we tried to communicate with OVP921 after sending the device address of the slave, that is 0x04, i2c communication become stopped by a stop signal with an error NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x4 MSTR_STS:0x0d1300c8 OPER:0x00000010.
As we checked the waveform of the i2c communication we got to know that the slave device, that is OVP921, makes ACK by pulling down the SDA to low at the 9th clock of SCL. Even though it is making ACK at the 9th clock SOM is detecting them as NACK. We connected the same OVP921 to an Arduino UNO through a 1.8v to 3.3v bidirectional voltage level shifter and the Arduino makes proper communication with OVP921 without any error. Other i2c device like ADV7533 are detecting by the SOM. I am attaching the waveform of the communication of SOM with OVP921. Could you please help me to sort out the issue.
The device address of OVP921 is 0x04 or 0x05(7bits 0x04 or 0x05,8bits 0x08 or 0x0A), Does these addresses are reserved by Qualcomm processors? And is that the reason for Qualcomm processor unable to communicate with OVP921?