SNLS589B September 2016 – July 2018 DS90UB960-Q1
The Bidirectional control channel provides a mechanism to read or write I2C registers in remote devices over the FPD-Link III interface. The I2C Master located at the Deserializer must support I2C clock stretching. Accesses to serializer or remote slave devices over the Bidirectional Control Channel will result in clock stretching to allow for response time across the link. The DS90UB960-Q1 acts as an I2C slave 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 DS90UB960-Q1 will stretch the I2C clock while waiting for the remote response. To communicate with a remote slave device, the Rx Port which is intended for messaging also must be selected in register 0x4C (Table 93). The I2C address of the currently selected RX Port serializer will be populated in register 0x5B of the DS90UB960-Q1. The BCC_CONFIG register 0x58 (Table 105) also must have bit 6, I2C_PASS_THROUGH set to one. If enabled, local I2C transactions with valid address decode will then be forwarded through the Bidirectional Control Channel to the remote I2C bus. When I2C PASS THROUGH is set, the deserializer will only propagate messages that it recognizes, such as the registered serializer alias address (SER ALIAS), or any registered remote slave alias attached to the serializer I2C bus (SLAVE ALIAS) assigned to the specific Rx Port. Setting PASS THROUGH ALL and AUTO ACK are less common use cases and primarily used for debugging I2C messaging as they will respectively pass all addresses regardless of valid I2C address (PASS_THROUGH_ALL) and acknowledge all I2C commands without waiting for a response from serializer (AUTO_ACK).