JAJSCC4A July 2016 – January 2024 DS90UB964-Q1
PRODUCTION DATA
The bidirectional control channel provides a mechanism to read or write I2C registers in remote devices over the FPD-Link III interface. The I2C Controller located at the Deserializer must support I2C clock stretching. Accesses to serializer or remote target devices over the bidirectional control channel results in clock stretching to allow for response time across the link. The DS90UB964-Q1 acts as an I2C target on the local bus, forwards read and write requests to the remote device, and returns the response from the remote device to the local I2C bus. To allow for the propagation and regeneration of the I2C transaction at the remote device, the DS90UB964-Q1 stretches the I2C clock while waiting for the remote response. The I2C address of the currently selected RX Port serializer is populated in register 0x5B of the DS90UB964-Q1. The BCC_CONFIG register 0x58 also must have bit 6, I2C_PASS_THROUGH set to one. If enabled, local I2C transactions with valid address decode is then forwarded through the bidirectional control channel to the remote I2C bus. When I2C_PASS_THROUGH is set, the deserializer only propagates messages that the deserializer recognizes, such as the registered serializer alias address (SER_ALIAS_ID), or any registered remote target alias attached to the serializer I2C bus (TARGET_ALIAS) assigned to the specific Rx Port. Setting I2C_PASS_THROUGH_ALL and AUTO_ACK_ALL are less common use cases and primarily used for debugging I2C messaging as these settings respectively pass all addresses regardless of valid I2C address (I2C_PASS_THROUGH_ALL) and acknowledge all I2C commands without waiting for a response from serializer (AUTO_ACK_ALL).