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.

DS90UB949-Q1: ALP software : Implementation of "Assert Hot Plug"

Part Number: DS90UB949-Q1
Other Parts Discussed in Thread: ALP

Dear Team,

I am trying to write one script file to configure Serializer(DS90UB0949) and remote deserializer(DS90UB0948) using I2C interface.  How to implement "Assert Hot Plug" functionality. I have not found any valid information from serializer data sheet.  While debugging ALP code, I found below information.

# Assert Hot Plug
def assert_hot_plug(s):
s.APB_Write(s.HDMI_SETUP_CTRL, s.HOT_PLUG_DETECT)
s.hot_plug_asserted = True

where 

s.HDMI_SETUP_CTRL = 0x0000; # HDMI Setup Ctl Reg
s.HOT_PLUG_DETECT = 0x01000001; # Assert Hot plug detect

Whether above code can be re-written just like as follows  using board.WriteI2C API?

#Assert HPD
# Select HDMI APB interface.
board.WriteI2C(UB0949, 0x48, 0x01)
board.WriteI2C(UB0949, 0x49, 0x00)
board.WriteI2C(UB0949, 0x4A, 0x00)


board.WriteI2C(UB0949, 0x4B, 0x01)
board.WriteI2C(UB0949, 0x4C, 0x00)
board.WriteI2C(UB0949, 0x4D, 0x00)
board.WriteI2C(UB0949, 0x4E, 0x01)

Could you please give the expansion or definition of APB_Write ? What is actally happenning via I2C interface when APB_Write is called?

Regards,

Chintha

  • Hello Chintha,

    >>>Whether above code can be re-written just like as follows  using board.WriteI2C API?

    Your translation to board.WriteI2C is correct

    >>>>Could you please give the expansion or definition of APB_Write ? What is actally happenning via I2C interface when APB_Write is called?

    Basically APB_Write mechanism (registers 0x48 - 0x4E) allows you to access from I2C bus HDMI interface, EDID SRAM (see register 0x48 APB_SELECT field) of the device. For HDMI APB writes, data should be written in order starting with APD_DATA0 (0x4B). After APB_DATA3 has been written, APB interface will complete the write of the 32-bits of data to the HDMI Receive control register. For HDMI APB reads, following setting of the APB-READ bit in the APB_CTL register (0x48), the APB_DATA registers will contain the data from the HDMI Receive Controller register.

    Thanks,

    Vishy

  • Hi Vishy,

    Thank you Very much for your reply.

    I have two more queries regarding Serializer configuration for HDMI input.

    1. Currently I am trying to write one I2C driver running on host to configure serializer as well as de-serializer registers to drive HDMI input coming from Host to 1280x768p resolution display. My test setup is attached      with this email for your reference.

        How can we access remote (de-serializer) device from HOST?

        I can see only serializer device address using "i2cdetect" command in host.  Able to access Remote registers via ALP tool.

    2. We have one more display with 1920x720p resolution. Whether serializer supports this resolution HDMI input ? I have written EDID with 1920x720p resolution to internal SRAM. While testing this display with ALP      tool, active video is not detecting properly, It changes continuously.  Link was not ready. 

    Regards,

    Chintha

  • Chintha,

    >>>How can we access remote (de-serializer) device from HOST?

    If 949 and 948 are locked, then you will in the DES_ID register the deserializer device id for the selected port. In the host code, you have to use this deser_id as the device id and access the remote deserializer registers. If using ALP, you are able to remote registers accessed correctly, then disconnect ALP and from host code, using the deser_id do a remote read and check if you able to read remote deser id registers (0xF0 - 0xF5).

    Note our serdes devices have builtin BCC (Bidirectional control channel) for i2c remote access to work. 

    We have one more display with 1920x720p resolution. Whether serializer supports this resolution HDMI input ?

    Yes, as long as the total resolution (with blanking overhead) x FrameRate can be met with the pixel clock you are using. Have you tested with 1280x768 that you show above and is that working? 

  • Chintha,

    Please look at this pattern generator app note

    http://www.ti.com/lit/an/snla132d/snla132d.pdf

    Pattern generator can be very helpful in system debugging.

    Thanks,

    Vishy