This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB941AS-Q1: LINK_DETECT bit in register GENERAL_STS Register (Address = 0xC) is only detecting loss when cable from port 1 is disconnected

Part Number: DS90UB941AS-Q1

Hi,

I am with an issue regarding the LINK_DETECT bit in register GENERAL_STS Register (Address = 0xC). I have 2 displays connected in the IC, one in the port 0 and another in the port 1. I need to detect when one cable from the monitors is disconnected. But the LINK_DETECT register( bit 0) is only detecting when the display in port 1 is disconnected, it is not detecting when the display in port 0 is disconnected.

Are there another register I need to look or configure to enable detect of loss in port 0?

  • Hello Marcelo,

    Have you tried enabling the secondary I2C port functionality for independent FPD mode? Set 0x1E[2] = 1 to enable a secondary I2C address which corresponds with FPD port 1-specific registers. Then you should be able to use the secondary I2C address to check the status of port 0/1 independently. Alternatively, you could try reading back LOCK status from the remote deserializers using I2C passthrough to the addresses of the different DES.  

    Best Regards,

    Casey 

  • Hi Casey,

    Yes, the secondary I2C port is always been activated when is necessary to read the port 01. The algorithm is the following:

    -------------------

    if port 0:

       write_I2C(0x1E, 0x01) // Register, Value  // enable port 0

    if port 1:

       write_I2C(0x1E, 0x04) // Register, Value   // enable secondary I2C

       write_I2C(0x1E, 0x02) // Register, Value  // enable port 1

    -------------------

    And for port 1, the register is working, it is not working for port 0.

    It is possible to real all the registers from port 0 and 1 correctly. The issue is that the link detect is not being triggered when the cable is disconnected in port 0. The register and the interruption GPIO is not triggering. But It is triggering for port 1.

    The behavior is the following:

    Display 1:  connected                      Display 2:  connected
    LINK_DETECT port 0 remains 1.
    LINK_DETECT port 1 remains 1.

    Display 1:  disconnected                  Display 2:  connected
    LINK_DETECT port 0 remains 1.
    LINK_DETECT port 1 remains 1.
        
    Display 1:  connected                       Display 2:  disconnected
    LINK_DETECT port 0 remains 0.
    LINK_DETECT port 1 remains 0.
        
    Display 1:  disconnected                  Display 2:  disconnected
    LINK_DETECT port 0 remains 0.
    LINK_DETECT port 1 remains 0.

  • Marcelo,

    I would recommend using register 0xC4[5] RX_LOCK_DET as the indication for what you are trying to do instead of LINK_DETECT. I just tried that on my setup and it is able to properly detect the status of both port 0 and port 1 independently. That is a more robust indication of the link anyways 

    Best Regards,

    Casey