Other Parts Discussed in Thread: DS90UB953-Q1EVM, , ALP
I am working with the DS90UB953/954 Serializer/Deserializer EVM boards and a CMOS image sensor that needs to communicate over i2c with a USB dongle. My setup consists of the following:
USB Dongle -- i2c connection---> DS90UB954-Q1EVM Deser ---> FPD LINK (Coax connection) --> DS90UB953-Q1EVM Ser -- i2c connection ---> CMOS Image sensor
The USB dongle (on the same local i2c bus as the Deser) needs to be able to read and write to the image sensor, located on the other i2c bus (with the serializer) across the FPD link
Right now, I have the i2c writes working, the USB dongle can write commands to the image sensor (using a slave alias ID of 0x18 to write to a physical address of 0x18 on the other side) and the image sensor ACKs these write commands. So the i2c passthrough is at least working on the back channel. I had to change the SDA and SCL high times on the serializer side so that it is slightly faster than the deserializer side in order to stop i2c packets from getting dropped on the SER side.
However, the USB Dongle also needs to read register data from the image sensor using an i2c read. When the USB Dongle attempts a read, the image sensor responds and attempts to send register data across the forward channel back to the dongle, but the data is never retransmitted back on the deser i2c bus. Instead, the deser just stretches the SCLK line for the amount of time specified in the BCC_WATCHDOG register (0x07).
Is there a setting I possibly missed that will enable the bidirectional communication to work with i2c across the back and forward channels?