Basic Design Rules
www.ti.com
10
SNLA267A–March 2019–Revised June 2019
Submit Documentation Feedback
Copyright © 2019, Texas Instruments Incorporated
How to Design a FPD-Link III System Using DS90UB953-Q1 and
DS90UB954-Q1
Table 6. Mode Clock Settings With Descriptions of fo and f1 (continued)
POSSIBLE RANGE (MHz) DIVIDE
f2 50 to 104 for CLKIN_DIV = 2
f3 48.4 to 51
for CLKIN_DIV = 1, OSCCLK_SEL
= 1
2.2 Successful I
2
C Communication With 953 and 954
1. Read Device ID of derserializer and serializer locally.
• On both the 953 and 954, register 0x00 contains the I2C_DEVICE_ID that is necessary for I
2
C
communication. Communicating locally does not require transactions across the bidirectional
control channel (BCC), which means I
2
C commands are made directly to the device.
• Using the device ID that is established by the IDX pin, use a read command to access the value in
register 0x00. If the correct value is returned then communication to the device was received. If the
value returned was different than expected, see Section 2.1 about verifying the IDX pin. If the
value returned was zero, then communication to the device may not be functioning properly.
• The Python code used in Analog Launch Pad (ALP) for this operation is represented below where
the 954_ID is the 8-bit address assigned by the IDX pin, 0x00 is the address where the read will
occur, and 1 is number of bytes returned after the read command occurs:
board.ReadI2C(954_ID,0x00,1)
2. Verify that the deserializer and serializer are locked.
• The LOCK status serves the purpose of validating the link integrity of the connection between the
SER and DES. When the LOCK status is high, the PLL in the DES is locked and validates the data
and clock recovered from the serial input.
Note that the deserializer and serilaizer may not be locked in the beginning stages of bringing up
the system. As a result, continue to check the basic design rules and verify that they are correct.
• On the 954, the DEVICE_STS can be found in register 0x04. Bit [2] holds the lock status of the
device. In addition to the lock status, the device status holds many status flags regarding the
reference clock, pass, power-up initialization, and check sum configuration. A healthy link between
the SER and DES is indicated by the value 0xCF.
3. Read the Device ID of serializer using the deserializer.
• After using I
2
C locally and verifying a lock between devices, the next step is to send a transaction
over the BCC and verify that it works. A basic way to do this is to read the SER ID using the DES
which is found in register 0x5C on the 954.
• To read the device ID of the SER from the DES, the Alias ID must be used for I
2
C transactions.
Simply reading register 0x00 of the SER Alias ID should return the value set by the IDX pin. For
more information about aliasing, see Section 2.2.1.
2.2.1 Aliasing
Device Alias ID refers to the alternate 7-bit address assigned to either the serializer, deserializer, or
remote slave. The Device Alias can help differentiate devices that have the same Device ID or physical
I
2
C address. TI recommends that the I
2
C master always use the device alias to communicate with a
remote I
2
C slave.
For example, the DS90UB954-Q1 can support two serializers like the DS90UB953-Q1. If both serializers
are 953s that house the same camera, the device IDs and default alias IDs for the corresponding devices
will be the same. As a result, the best practice is to write a unique alias ID to each device. Note that these
conventions only apply when the I
2
C passthrough is enabled. Refer to Section 2.3 on I
2
C passthrough for
more information.
I
2
C addresses are always 7 bits (binary). The majority of the registers on the DS90UB95x-Q1 associated
with I
2
C addresses uses bits [7:1] for the address, and bit 0 is either reserved or used for some other
purpose. Therefore, while loading an address value to a specific register, it is always left-shifted by 1 bit.
For example, 0x50 (101 0000) left-shifted by 1 bit is 0xA0 (1010 0000). This operation can be represented
as, 0x50<<1 which is equal to 0xA0.