SNLA267A March   2019  – June 2019 DS90UB953-Q1 , DS90UB954-Q1 , DS90UB960-Q1

 

  1.   How to Design a FPD-Link III System Using DS90UB953-Q1 and DS90UB954-Q1
    1.     Trademarks
    2. 1 Overview
      1. 1.1 System Level Functionality
    3. 2 Basic Design Rules
      1. 2.1 IDX and MODE Pin Verification
        1. 2.1.1 REF Clock, CLK IN, AON and Frequency Selection
          1. 2.1.1.1 Synchronous Mode
          2. 2.1.1.2 Non-Synchronous CLK_IN Mode
          3. 2.1.1.3 Non-Synchronous AON Mode
          4. 2.1.1.4 CSI Throughput
          5. 2.1.1.5 Clocking and Frequency Selection Example
      2. 2.2 Successful I2C Communication With 953 and 954
        1. 2.2.1 Aliasing
        2. 2.2.2 Port Selection on 954
      3. 2.3 I2C Passthrough Verification
      4. 2.4 Basic Diagnostic and Error Registers
    4. 3 Designing the Link Between SER and DES
      1. 3.1 Back Channel Configuration
      2. 3.2 BIST
        1. 3.2.1 BIST Configuration and Status
        2. 3.2.2 BIST Procedure
        3. 3.2.3 List of Registers Used in BIST Script
      3. 3.3 AEQ
      4. 3.4 CML Out
    5. 4 Designing Link Between SER and Image Sensor
      1. 4.1 Sensor Initialization Using SER GPIOs
      2. 4.2 CLKOUT
    6. 5 Designing Link Between DES and ISP
      1. 5.1 Frame Sync
        1. 5.1.1 Using SER GPIOs From the DES
        2. 5.1.2 Internal and External Frame Sync Configuration
        3. 5.1.3 Tables for Using GPIOs and Frame Sync
      2. 5.2 Port Forwarding
      3. 5.3 Pattern Generation
        1. 5.3.1 Accessing Indirect Registers
        2. 5.3.2 Pattern Generation From DES to ISP and SER to DES
    7. 6 Hardware Design
      1. 6.1 Basic I2C Connectors
        1. 6.1.1 I2C Pullups for SDA and SCL
      2. 6.2 AC Capacitor on FPD3 Link
      3. 6.3 Capacitance Used in Loop Filter
      4. 6.4 Critical Signal Routing
      5. 6.5 Time Domain Reflection
      6. 6.6 Return Loss and Insertion Loss
      7. 6.7 Power-over-Coax (PoC)
      8. 6.8 Voltage and Temperature Sensing
    8. 7 Appendix
      1. 7.1 Scripts
        1. 7.1.1  BIST Script
        2. 7.1.2  Example Sensor Initialization Script
        3. 7.1.3  CSI Enable and Port Forwarding Script
        4. 7.1.4  Enabling CMLOUT FPD3 RX Port 0 on 954
        5. 7.1.5  Remote Enabled SER GPIO Toggle Script
        6. 7.1.6  Local SER GPIO Toggle Script
        7. 7.1.7  Internal FrameSync on 953 GPIO1
        8. 7.1.8  External FrameSync on 953 GPIO0
        9. 7.1.9  SER GPIOs as Inputs and Output to DES GPIO
        10. 7.1.10 Pattern Generation on the 953 Script
        11. 7.1.11 Pattern Generation on the 954 Script
        12. 7.1.12 Monitor Errors for Predetermined Time Script
        13. 7.1.13 954 and 953 CSI Register Check Script
        14. 7.1.14 Time Till Lock Script on 953
      2. 7.2 Acknowledgments
  2.   Revision History

Successful I2C 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 I2C communication. Communicating locally does not require transactions across the bidirectional control channel (BCC), which means I2C 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 I2C 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 I2C 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.