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.

DS90UB929-Q1EVM: No HDMI connection between PC and Video board

Part Number: DS90UB929-Q1EVM
Other Parts Discussed in Thread: ALP, USB2ANY

The video board when connected to HDMI of a PC doesn't get detected in Windows.

The same video board connected to another PC HDMI is detected in Windows as an additional display.

We have so far observed 3 PCs having reliable HDMI connection with video boards, whereas 4 PCs which doesn't get HDMI connection.

All the 7 Video boards have exactly same hardware configuration(Jumper and mode strap settings). These boards almost always work the 3 PCs, and does NOT work with 4 PCs.

  • Here is the content of script used to intialize ALP registers: 

    # Script to load EDID using built-in ALP routines

    # Load EDID with 1080p 2-channel EDID
    TXN_1080p_2ch = [
    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x05, 0xD7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xFF, 0x22, 0x01, 0x03, 0x80, 0x32, 0x1F, 0x78, 0x07, 0xEE, 0x95, 0xA3, 0x54, 0x4C, 0x99, 0x26,
    0x0F, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xB1, 0x0F, 0xB4, 0x84, 0x30, 0x20, 0x4C, 0x20, 0x74, 0x0C,
    0x43, 0x0C, 0x38, 0x6C, 0x42, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x17, 0xF0, 0x0F,
    0xFF, 0x04, 0x00, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x39,
    0x34, 0x34, 0x78, 0x35, 0x34, 0x34, 0x20, 0x43, 0x56, 0x54, 0x0A, 0x20, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x22,
    0x02, 0x03, 0x18, 0x40, 0x23, 0x09, 0x06, 0x07, 0x67, 0x03, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x08,
    0x67, 0xD8, 0x5D, 0xC4, 0x01, 0x08, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03]

    # Write to EDID (start offset, data, length)
    board.EDID_Write(0x0, TXN_1080p_2ch, 256)

    # Readback EDID
    read_edid = board.EDID_Read(0x0, 256)
    print "EDID readback:"
    print read_edid

  • - All PCs have installed ALP v1.57.0010.

    - In last few days, some PCs get notification to install an older version of USB2ANY Firmware. We performed this installation on a PC, but it didn't resolve the HDMI issue.

  • Register dump from a not working board.

  • [REGISTERS]
    Device = ALP Nano 1 - DS90UB929, Connector 1
    Comments = ""
    Date = 04/15/2024
    Time = 16:06:14
    Reg = 0,0x0000,0x18
    Reg = 0,0x0001,0x00
    Reg = 0,0x0003,0xDA
    Reg = 0,0x0004,0x80
    Reg = 0,0x0005,0x00
    Reg = 0,0x0006,0x58
    Reg = 0,0x0007,0x00
    Reg = 0,0x0008,0x00
    Reg = 0,0x0009,0x00
    Reg = 0,0x000A,0xB2
    Reg = 0,0x000B,0x00
    Reg = 0,0x000C,0x13
    Reg = 0,0x000D,0x20
    Reg = 0,0x000E,0x00
    Reg = 0,0x000F,0x00
    Reg = 0,0x0010,0x00
    Reg = 0,0x0011,0x00
    Reg = 0,0x0012,0x00
    Reg = 0,0x0013,0x88
    Reg = 0,0x0014,0x00
    Reg = 0,0x0015,0x01
    Reg = 0,0x0016,0xFE
    Reg = 0,0x0017,0x1E
    Reg = 0,0x0018,0x7F
    Reg = 0,0x0019,0x7F
    Reg = 0,0x001A,0x01
    Reg = 0,0x001B,0x00
    Reg = 0,0x001C,0x00
    Reg = 0,0x001D,0x00
    Reg = 0,0x001E,0x01
    Reg = 0,0x001F,0xFA
    Reg = 0,0x0020,0x03
    Reg = 0,0x0021,0x00
    Reg = 0,0x0022,0x25
    Reg = 0,0x0023,0x00
    Reg = 0,0x0024,0x00
    Reg = 0,0x0025,0x00
    Reg = 0,0x0026,0x00
    Reg = 0,0x0027,0x00
    Reg = 0,0x0028,0x01
    Reg = 0,0x0029,0x20
    Reg = 0,0x002A,0x20
    Reg = 0,0x002B,0xE8
    Reg = 0,0x002C,0x00
    Reg = 0,0x0030,0x00
    Reg = 0,0x0031,0x00
    Reg = 0,0x0032,0x00
    Reg = 0,0x0033,0x00
    Reg = 0,0x0034,0x00
    Reg = 0,0x0035,0x00
    Reg = 0,0x0036,0x00
    Reg = 0,0x0037,0x00
    Reg = 0,0x0038,0x00
    Reg = 0,0x0039,0x00
    Reg = 0,0x003A,0x00
    Reg = 0,0x003B,0x00
    Reg = 0,0x003C,0x00
    Reg = 0,0x003D,0x00
    Reg = 0,0x003E,0x00
    Reg = 0,0x003F,0x00
    Reg = 0,0x0040,0x14
    Reg = 0,0x0041,0x5C
    Reg = 0,0x0042,0x00
    Reg = 0,0x0043,0x00
    Reg = 0,0x0044,0x80
    Reg = 0,0x0045,0x00
    Reg = 0,0x0046,0x00
    Reg = 0,0x0047,0x00
    Reg = 0,0x0048,0x00
    Reg = 0,0x0049,0x00
    Reg = 0,0x004A,0x00
    Reg = 0,0x004B,0x00
    Reg = 0,0x004C,0x00
    Reg = 0,0x004D,0x00
    Reg = 0,0x004E,0x00
    Reg = 0,0x004F,0x00
    Reg = 0,0x0050,0x97
    Reg = 0,0x0051,0xA1
    Reg = 0,0x0052,0x1E
    Reg = 0,0x0053,0x00
    Reg = 0,0x0054,0x28
    Reg = 0,0x0055,0x0C
    Reg = 0,0x0056,0x15
    Reg = 0,0x0057,0x00
    Reg = 0,0x0058,0x00
    Reg = 0,0x0059,0x00
    Reg = 0,0x005A,0x92
    Reg = 0,0x005B,0x20
    Reg = 0,0x005C,0x02
    Reg = 0,0x005D,0x06
    Reg = 0,0x005E,0x44
    Reg = 0,0x005F,0x00
    Reg = 0,0x0060,0x22
    Reg = 0,0x0061,0x02
    Reg = 0,0x0062,0x00
    Reg = 0,0x0064,0x10
    Reg = 0,0x0065,0x00
    Reg = 0,0x0066,0x00
    Reg = 0,0x0067,0x00
    Reg = 0,0x0068,0x00
    Reg = 0,0x0069,0x00
    Reg = 0,0x006A,0x00
    Reg = 0,0x006B,0x00
    Reg = 0,0x006C,0x00
    Reg = 0,0x0070,0x00
    Reg = 0,0x0071,0x00
    Reg = 0,0x0072,0x00
    Reg = 0,0x0073,0x00
    Reg = 0,0x0074,0x00
    Reg = 0,0x0075,0x00
    Reg = 0,0x0076,0x00
    Reg = 0,0x0077,0x00
    Reg = 0,0x0078,0x00
    Reg = 0,0x0079,0x00
    Reg = 0,0x007A,0x00
    Reg = 0,0x007B,0x00
    Reg = 0,0x007C,0x00
    Reg = 0,0x007D,0x00
    Reg = 0,0x0080,0x00
    Reg = 0,0x0081,0x00
    Reg = 0,0x0082,0x00
    Reg = 0,0x0083,0x00
    Reg = 0,0x0084,0x00
    Reg = 0,0x0090,0x00
    Reg = 0,0x0091,0x00
    Reg = 0,0x0092,0x00
    Reg = 0,0x0093,0x00
    Reg = 0,0x0094,0x00
    Reg = 0,0x0098,0x00
    Reg = 0,0x0099,0x00
    Reg = 0,0x009A,0x00
    Reg = 0,0x009B,0x00
    Reg = 0,0x009C,0x00
    Reg = 0,0x009D,0x00
    Reg = 0,0x009E,0x00
    Reg = 0,0x009F,0x00
    Reg = 0,0x00A0,0x00
    Reg = 0,0x00A1,0x00
    Reg = 0,0x00A2,0x00
    Reg = 0,0x00A3,0x00
    Reg = 0,0x00C0,0x00
    Reg = 0,0x00C1,0x00
    Reg = 0,0x00C2,0xA8
    Reg = 0,0x00C3,0x00
    Reg = 0,0x00C4,0x68
    Reg = 0,0x00C5,0x00
    Reg = 0,0x00C6,0x00
    Reg = 0,0x00C7,0x40
    Reg = 0,0x00C8,0xC0
    Reg = 0,0x00C9,0x00
    Reg = 0,0x00CA,0x00
    Reg = 0,0x00CB,0x00
    Reg = 0,0x00CC,0x00
    Reg = 0,0x00CE,0xFF
    Reg = 0,0x00D0,0x00
    Reg = 0,0x00D1,0x00
    Reg = 0,0x00D2,0x00
    Reg = 0,0x00D3,0x00
    Reg = 0,0x00E0,0x00
    Reg = 0,0x00E1,0x00
    Reg = 0,0x00E2,0xA8
    Reg = 0,0x00E3,0x00
    Reg = 0,0x00E4,0x68
    Reg = 0,0x00E5,0x38
    Reg = 0,0x00E6,0x00
    Reg = 0,0x00E7,0x00
    Reg = 0,0x00F0,0x5F
    Reg = 0,0x00F1,0x55
    Reg = 0,0x00F2,0x42
    Reg = 0,0x00F3,0x39
    Reg = 0,0x00F4,0x32
    Reg = 0,0x00F5,0x39
    Reg = 0,0x00F6,0x00
    Reg = 0,0x00F8,0x00
    Reg = 0,0x00F9,0x00

  • Hi Manoj,

    Could you confirm if you connected the serializer to the deserializer? Which deserializer are you using? Otherwise, without a Deserializer connection, you would need to set register 0x5C bit[6] high - (board.WriteI2C(serAddr,0x5C,0x42)) to force link detection without a Deserializer connection present. This is how the 929 HDMI state machine works.

    Best,

    Josh

  • Hello Josh, 

    Yes, there is always serializer to deserializer connection. We are using the following Deserializer. .

  • Hi Manoj,

    Reading the EDID you shared, the timing descriptor shows as below and it seems the customized timing, but it's not 1080p that is from the TXN_1080p_2ch you mentioned.

    We've seen that some GPUs don't support custom timing. I think this can be proven by your statement that only Nvidia can detect among the graphics sources and no other graphics sources. I recommend seeing if other graphics sources can detect HDMI connection with default resolution (no changes)

    Best,

    Josh

  • Hi Josh,

    On the working PCs, the HDMI is detected on the Videoboard even before we do EDID customization.

    On NOT working PCs, the HDMI is not detected, with or without EDID customization. 

    On all the 7 PCs we have tried so far, all Videoboards are tested with default resolution. 3 PCs work with Videoboards, 4 don't work. 

    Can we setup a short meeting today to clarify ? Because this matter is extremely urgent as it is blocking our DV tests. 

    Appreciate your quick reply.

    Thanks, Manoj

  • Hi Manoj,

    1.

    Reg = 0,0x0013,0x88

    Please check the MODE_SEL strap is the desired setting since the value indicates all low for display ID select, external controller override, cable type, and remote EDID load.

    2.

    Reg = 0,0x005A,0x92
    Reg = 0,0x005F,0x00

    These indicate the HDMI receiver is not detecting a valid signal and no TMDS clock detected.

    3.

    Are you able to isolate away from the HDMI input and use internal PCLK/CLK generation instead of external clock?

    Ideally, we should first start with DES PATGEN, verify the target timing and no system level display-side issues, then work back towards SER side by first doing SER PATGEN internal CLK, then SER PATGEN external CLK, then finally HDMI end to end. If it is not working with external, please note that you need to check the source as PCLK, jitter, etc. as external timing is from HDMI source.

    • 928 PATGEN
    • 929 PATGEN
      1. Internal
      2. Internal w/ Ext. clock
      3. External
    • HDMI - 929 - 928

    Best,

    Josh

  • Hi Josh,

    1. Here is the picture of board, the mode straps are as desired, please confirm 

    2. Here are the register logs before and after executing our HDMI timing script, on the PC which is not working correctly.

    We execute this script to adapt the timing and resolution for our TFT. Expected values are ca.40MHz and 948x544, but the default is 74MHz and 1280x720

    Before script execution: [REGISTERS]
    Device = ALP Nano 1 - DS90UB929, Connector 1
    Comments = "before script"
    Date = 04/18/2024
    Time = 13:05:40
    Reg = 0,0x0000,0x18
    Reg = 0,0x0001,0x00
    Reg = 0,0x0003,0xDA
    Reg = 0,0x0004,0x80
    Reg = 0,0x0005,0x00
    Reg = 0,0x0006,0x58
    Reg = 0,0x0007,0x00
    Reg = 0,0x0008,0x00
    Reg = 0,0x0009,0x00
    Reg = 0,0x000A,0x4B
    Reg = 0,0x000B,0x00
    Reg = 0,0x000C,0x07
    Reg = 0,0x000D,0x20
    Reg = 0,0x000E,0x00
    Reg = 0,0x000F,0x00
    Reg = 0,0x0010,0x00
    Reg = 0,0x0011,0x00
    Reg = 0,0x0012,0x00
    Reg = 0,0x0013,0x88
    Reg = 0,0x0014,0x00
    Reg = 0,0x0015,0x01
    Reg = 0,0x0016,0xFE
    Reg = 0,0x0017,0x1E
    Reg = 0,0x0018,0x7F
    Reg = 0,0x0019,0x7F
    Reg = 0,0x001A,0x01
    Reg = 0,0x001B,0x00
    Reg = 0,0x001C,0x00
    Reg = 0,0x001D,0x00
    Reg = 0,0x001E,0x01
    Reg = 0,0x001F,0xF7
    Reg = 0,0x0020,0x03
    Reg = 0,0x0021,0x00
    Reg = 0,0x0022,0x25
    Reg = 0,0x0023,0x00
    Reg = 0,0x0024,0x00
    Reg = 0,0x0025,0x00
    Reg = 0,0x0026,0x00
    Reg = 0,0x0027,0x00
    Reg = 0,0x0028,0x01
    Reg = 0,0x0029,0x20
    Reg = 0,0x002A,0x20
    Reg = 0,0x002B,0xE0
    Reg = 0,0x002C,0x00
    Reg = 0,0x0030,0x00
    Reg = 0,0x0031,0x00
    Reg = 0,0x0032,0x00
    Reg = 0,0x0033,0x00
    Reg = 0,0x0034,0x00
    Reg = 0,0x0035,0x00
    Reg = 0,0x0036,0x00
    Reg = 0,0x0037,0x00
    Reg = 0,0x0038,0x00
    Reg = 0,0x0039,0x00
    Reg = 0,0x003A,0x00
    Reg = 0,0x003B,0x00
    Reg = 0,0x003C,0x00
    Reg = 0,0x003D,0x00
    Reg = 0,0x003E,0x00
    Reg = 0,0x003F,0x00
    Reg = 0,0x0040,0x14
    Reg = 0,0x0041,0x5C
    Reg = 0,0x0042,0x00
    Reg = 0,0x0043,0x00
    Reg = 0,0x0044,0x80
    Reg = 0,0x0045,0x00
    Reg = 0,0x0046,0x00
    Reg = 0,0x0047,0x00
    Reg = 0,0x0048,0x00
    Reg = 0,0x0049,0x00
    Reg = 0,0x004A,0x00
    Reg = 0,0x004B,0x00
    Reg = 0,0x004C,0x00
    Reg = 0,0x004D,0x00
    Reg = 0,0x004E,0x00
    Reg = 0,0x004F,0x00
    Reg = 0,0x0050,0x97
    Reg = 0,0x0051,0xA1
    Reg = 0,0x0052,0x1E
    Reg = 0,0x0053,0x00
    Reg = 0,0x0054,0x28
    Reg = 0,0x0055,0x0C
    Reg = 0,0x0056,0x00
    Reg = 0,0x0057,0x00
    Reg = 0,0x0058,0x00
    Reg = 0,0x0059,0x00
    Reg = 0,0x005A,0xDD
    Reg = 0,0x005B,0x20
    Reg = 0,0x005C,0x02
    Reg = 0,0x005D,0x06
    Reg = 0,0x005E,0x44
    Reg = 0,0x005F,0x4A
    Reg = 0,0x0060,0x22
    Reg = 0,0x0061,0x02
    Reg = 0,0x0062,0x00
    Reg = 0,0x0064,0x10
    Reg = 0,0x0065,0x00
    Reg = 0,0x0066,0x00
    Reg = 0,0x0067,0x00
    Reg = 0,0x0068,0x00
    Reg = 0,0x0069,0x00
    Reg = 0,0x006A,0x00
    Reg = 0,0x006B,0x00
    Reg = 0,0x006C,0x00
    Reg = 0,0x0070,0x00
    Reg = 0,0x0071,0x00
    Reg = 0,0x0072,0x00
    Reg = 0,0x0073,0x00
    Reg = 0,0x0074,0x00
    Reg = 0,0x0075,0x00
    Reg = 0,0x0076,0x00
    Reg = 0,0x0077,0x00
    Reg = 0,0x0078,0x00
    Reg = 0,0x0079,0x00
    Reg = 0,0x007A,0x00
    Reg = 0,0x007B,0x00
    Reg = 0,0x007C,0x00
    Reg = 0,0x007D,0x00
    Reg = 0,0x0080,0x00
    Reg = 0,0x0081,0x00
    Reg = 0,0x0082,0x00
    Reg = 0,0x0083,0x00
    Reg = 0,0x0084,0x00
    Reg = 0,0x0090,0x00
    Reg = 0,0x0091,0x00
    Reg = 0,0x0092,0x00
    Reg = 0,0x0093,0x00
    Reg = 0,0x0094,0x00
    Reg = 0,0x0098,0x00
    Reg = 0,0x0099,0x00
    Reg = 0,0x009A,0x00
    Reg = 0,0x009B,0x00
    Reg = 0,0x009C,0x00
    Reg = 0,0x009D,0x00
    Reg = 0,0x009E,0x00
    Reg = 0,0x009F,0x00
    Reg = 0,0x00A0,0x00
    Reg = 0,0x00A1,0x00
    Reg = 0,0x00A2,0x00
    Reg = 0,0x00A3,0x00
    Reg = 0,0x00C0,0x00
    Reg = 0,0x00C1,0x00
    Reg = 0,0x00C2,0xA8
    Reg = 0,0x00C3,0x00
    Reg = 0,0x00C4,0x68
    Reg = 0,0x00C5,0x00
    Reg = 0,0x00C6,0x00
    Reg = 0,0x00C7,0x40
    Reg = 0,0x00C8,0xC0
    Reg = 0,0x00C9,0x00
    Reg = 0,0x00CA,0x00
    Reg = 0,0x00CB,0x00
    Reg = 0,0x00CC,0x00
    Reg = 0,0x00CE,0xFF
    Reg = 0,0x00D0,0x00
    Reg = 0,0x00D1,0x00
    Reg = 0,0x00D2,0x00
    Reg = 0,0x00D3,0x00
    Reg = 0,0x00E0,0x00
    Reg = 0,0x00E1,0x00
    Reg = 0,0x00E2,0xA8
    Reg = 0,0x00E3,0x00
    Reg = 0,0x00E4,0x68
    Reg = 0,0x00E5,0x38
    Reg = 0,0x00E6,0x00
    Reg = 0,0x00E7,0x00
    Reg = 0,0x00F0,0x5F
    Reg = 0,0x00F1,0x55
    Reg = 0,0x00F2,0x42
    Reg = 0,0x00F3,0x39
    Reg = 0,0x00F4,0x32
    Reg = 0,0x00F5,0x39
    Reg = 0,0x00F6,0x00
    Reg = 0,0x00F8,0x00
    Reg = 0,0x00F9,0x00

    After script execution: 

    [REGISTERS]
    Device = ALP Nano 1 - DS90UB929, Connector 1
    Comments = "after script"
    Date = 04/18/2024
    Time = 13:04:59
    Reg = 0,0x0000,0x18
    Reg = 0,0x0001,0x00
    Reg = 0,0x0003,0xDA
    Reg = 0,0x0004,0x80
    Reg = 0,0x0005,0x00
    Reg = 0,0x0006,0x58
    Reg = 0,0x0007,0xA0
    Reg = 0,0x0008,0xB0
    Reg = 0,0x0009,0x00
    Reg = 0,0x000A,0xDC
    Reg = 0,0x000B,0x00
    Reg = 0,0x000C,0x13
    Reg = 0,0x000D,0x20
    Reg = 0,0x000E,0x00
    Reg = 0,0x000F,0x00
    Reg = 0,0x0010,0x00
    Reg = 0,0x0011,0x00
    Reg = 0,0x0012,0x00
    Reg = 0,0x0013,0x88
    Reg = 0,0x0014,0x00
    Reg = 0,0x0015,0x01
    Reg = 0,0x0016,0xFE
    Reg = 0,0x0017,0x1E
    Reg = 0,0x0018,0x7F
    Reg = 0,0x0019,0x7F
    Reg = 0,0x001A,0x01
    Reg = 0,0x001B,0x00
    Reg = 0,0x001C,0x00
    Reg = 0,0x001D,0x00
    Reg = 0,0x001E,0x01
    Reg = 0,0x001F,0xF5
    Reg = 0,0x0020,0x03
    Reg = 0,0x0021,0x00
    Reg = 0,0x0022,0x25
    Reg = 0,0x0023,0x00
    Reg = 0,0x0024,0x00
    Reg = 0,0x0025,0x00
    Reg = 0,0x0026,0x00
    Reg = 0,0x0027,0x00
    Reg = 0,0x0028,0x01
    Reg = 0,0x0029,0x20
    Reg = 0,0x002A,0x20
    Reg = 0,0x002B,0xE8
    Reg = 0,0x002C,0x00
    Reg = 0,0x0030,0x00
    Reg = 0,0x0031,0x00
    Reg = 0,0x0032,0x00
    Reg = 0,0x0033,0x00
    Reg = 0,0x0034,0x00
    Reg = 0,0x0035,0x00
    Reg = 0,0x0036,0x00
    Reg = 0,0x0037,0x00
    Reg = 0,0x0038,0x00
    Reg = 0,0x0039,0x00
    Reg = 0,0x003A,0x00
    Reg = 0,0x003B,0x00
    Reg = 0,0x003C,0x00
    Reg = 0,0x003D,0x00
    Reg = 0,0x003E,0x00
    Reg = 0,0x003F,0x00
    Reg = 0,0x0040,0x14
    Reg = 0,0x0041,0x5C
    Reg = 0,0x0042,0x00
    Reg = 0,0x0043,0x00
    Reg = 0,0x0044,0x80
    Reg = 0,0x0045,0x00
    Reg = 0,0x0046,0x00
    Reg = 0,0x0047,0x00
    Reg = 0,0x0048,0x01
    Reg = 0,0x0049,0x68
    Reg = 0,0x004A,0x01
    Reg = 0,0x004B,0xD0
    Reg = 0,0x004C,0x02
    Reg = 0,0x004D,0x00
    Reg = 0,0x004E,0x00
    Reg = 0,0x004F,0x00
    Reg = 0,0x0050,0x97
    Reg = 0,0x0051,0xA1
    Reg = 0,0x0052,0x1E
    Reg = 0,0x0053,0x00
    Reg = 0,0x0054,0x28
    Reg = 0,0x0055,0x0C
    Reg = 0,0x0056,0x00
    Reg = 0,0x0057,0x00
    Reg = 0,0x0058,0x00
    Reg = 0,0x0059,0x00
    Reg = 0,0x005A,0x92
    Reg = 0,0x005B,0x20
    Reg = 0,0x005C,0x02
    Reg = 0,0x005D,0x06
    Reg = 0,0x005E,0x44
    Reg = 0,0x005F,0x00
    Reg = 0,0x0060,0x22
    Reg = 0,0x0061,0x02
    Reg = 0,0x0062,0x00
    Reg = 0,0x0064,0x10
    Reg = 0,0x0065,0x0C
    Reg = 0,0x0066,0x0D
    Reg = 0,0x0067,0x16
    Reg = 0,0x0068,0x30
    Reg = 0,0x0069,0x0B
    Reg = 0,0x006A,0x00
    Reg = 0,0x006B,0x00
    Reg = 0,0x006C,0x00
    Reg = 0,0x0070,0x00
    Reg = 0,0x0071,0x00
    Reg = 0,0x0072,0x00
    Reg = 0,0x0073,0x00
    Reg = 0,0x0074,0x00
    Reg = 0,0x0075,0x00
    Reg = 0,0x0076,0x00
    Reg = 0,0x0077,0x00
    Reg = 0,0x0078,0x00
    Reg = 0,0x0079,0x00
    Reg = 0,0x007A,0x00
    Reg = 0,0x007B,0x00
    Reg = 0,0x007C,0x00
    Reg = 0,0x007D,0x00
    Reg = 0,0x0080,0x00
    Reg = 0,0x0081,0x00
    Reg = 0,0x0082,0x00
    Reg = 0,0x0083,0x00
    Reg = 0,0x0084,0x00
    Reg = 0,0x0090,0x00
    Reg = 0,0x0091,0x00
    Reg = 0,0x0092,0x00
    Reg = 0,0x0093,0x00
    Reg = 0,0x0094,0x00
    Reg = 0,0x0098,0x00
    Reg = 0,0x0099,0x00
    Reg = 0,0x009A,0x00
    Reg = 0,0x009B,0x00
    Reg = 0,0x009C,0x00
    Reg = 0,0x009D,0x00
    Reg = 0,0x009E,0x00
    Reg = 0,0x009F,0x00
    Reg = 0,0x00A0,0x00
    Reg = 0,0x00A1,0x00
    Reg = 0,0x00A2,0x00
    Reg = 0,0x00A3,0x00
    Reg = 0,0x00C0,0x00
    Reg = 0,0x00C1,0x00
    Reg = 0,0x00C2,0xA8
    Reg = 0,0x00C3,0x00
    Reg = 0,0x00C4,0x68
    Reg = 0,0x00C5,0x00
    Reg = 0,0x00C6,0x00
    Reg = 0,0x00C7,0x40
    Reg = 0,0x00C8,0xC0
    Reg = 0,0x00C9,0x00
    Reg = 0,0x00CA,0x00
    Reg = 0,0x00CB,0x00
    Reg = 0,0x00CC,0x00
    Reg = 0,0x00CE,0xFF
    Reg = 0,0x00D0,0x00
    Reg = 0,0x00D1,0x00
    Reg = 0,0x00D2,0x00
    Reg = 0,0x00D3,0x00
    Reg = 0,0x00E0,0x00
    Reg = 0,0x00E1,0x00
    Reg = 0,0x00E2,0xA8
    Reg = 0,0x00E3,0x00
    Reg = 0,0x00E4,0x68
    Reg = 0,0x00E5,0x38
    Reg = 0,0x00E6,0x00
    Reg = 0,0x00E7,0x00
    Reg = 0,0x00F0,0x5F
    Reg = 0,0x00F1,0x55
    Reg = 0,0x00F2,0x42
    Reg = 0,0x00F3,0x39
    Reg = 0,0x00F4,0x32
    Reg = 0,0x00F5,0x39
    Reg = 0,0x00F6,0x00
    Reg = 0,0x00F8,0x00
    Reg = 0,0x00F9,0x00

    Before exeucting the script, HDMI connection was working and displayed on TFT, but with incorrect resolution. Video source: Yes

    But after script exeution, HDMI connection is not working again(see register dump above). Video source: no

     

    4. On the PC which is working with HDMI, here are the Register dump before executing the script:

    [REGISTERS]
    Device = ALP Nano 1 - DS90UB929, Connector 1
    Comments = ""
    Date = 04/18/2024
    Time = 13:36:16
    Reg = 0,0x0000,0x18
    Reg = 0,0x0001,0x00
    Reg = 0,0x0003,0xDA
    Reg = 0,0x0004,0x80
    Reg = 0,0x0005,0x00
    Reg = 0,0x0006,0x58
    Reg = 0,0x0007,0x00
    Reg = 0,0x0008,0x00
    Reg = 0,0x0009,0x00
    Reg = 0,0x000A,0x52
    Reg = 0,0x000B,0x00
    Reg = 0,0x000C,0x07
    Reg = 0,0x000D,0x20
    Reg = 0,0x000E,0x00
    Reg = 0,0x000F,0x00
    Reg = 0,0x0010,0x00
    Reg = 0,0x0011,0x00
    Reg = 0,0x0012,0x00
    Reg = 0,0x0013,0x88
    Reg = 0,0x0014,0x00
    Reg = 0,0x0015,0x01
    Reg = 0,0x0016,0xFE
    Reg = 0,0x0017,0x1E
    Reg = 0,0x0018,0x7F
    Reg = 0,0x0019,0x7F
    Reg = 0,0x001A,0x01
    Reg = 0,0x001B,0x00
    Reg = 0,0x001C,0x00
    Reg = 0,0x001D,0x00
    Reg = 0,0x001E,0x01
    Reg = 0,0x001F,0xF5
    Reg = 0,0x0020,0x03
    Reg = 0,0x0021,0x00
    Reg = 0,0x0022,0x25
    Reg = 0,0x0023,0x00
    Reg = 0,0x0024,0x00
    Reg = 0,0x0025,0x00
    Reg = 0,0x0026,0x00
    Reg = 0,0x0027,0x00
    Reg = 0,0x0028,0x01
    Reg = 0,0x0029,0x20
    Reg = 0,0x002A,0x20
    Reg = 0,0x002B,0xE0
    Reg = 0,0x002C,0x00
    Reg = 0,0x0030,0x00
    Reg = 0,0x0031,0x00
    Reg = 0,0x0032,0x00
    Reg = 0,0x0033,0x00
    Reg = 0,0x0034,0x00
    Reg = 0,0x0035,0x00
    Reg = 0,0x0036,0x00
    Reg = 0,0x0037,0x00
    Reg = 0,0x0038,0x00
    Reg = 0,0x0039,0x00
    Reg = 0,0x003A,0x00
    Reg = 0,0x003B,0x00
    Reg = 0,0x003C,0x00
    Reg = 0,0x003D,0x00
    Reg = 0,0x003E,0x00
    Reg = 0,0x003F,0x00
    Reg = 0,0x0040,0x14
    Reg = 0,0x0041,0x5C
    Reg = 0,0x0042,0x00
    Reg = 0,0x0043,0x00
    Reg = 0,0x0044,0x80
    Reg = 0,0x0045,0x00
    Reg = 0,0x0046,0x00
    Reg = 0,0x0047,0x00
    Reg = 0,0x0048,0x00
    Reg = 0,0x0049,0x00
    Reg = 0,0x004A,0x00
    Reg = 0,0x004B,0x00
    Reg = 0,0x004C,0x00
    Reg = 0,0x004D,0x00
    Reg = 0,0x004E,0x00
    Reg = 0,0x004F,0x00
    Reg = 0,0x0050,0x97
    Reg = 0,0x0051,0xA1
    Reg = 0,0x0052,0x1E
    Reg = 0,0x0053,0x00
    Reg = 0,0x0054,0x28
    Reg = 0,0x0055,0x0C
    Reg = 0,0x0056,0x00
    Reg = 0,0x0057,0x00
    Reg = 0,0x0058,0x00
    Reg = 0,0x0059,0x00
    Reg = 0,0x005A,0xDD
    Reg = 0,0x005B,0x20
    Reg = 0,0x005C,0x02
    Reg = 0,0x005D,0x06
    Reg = 0,0x005E,0x44
    Reg = 0,0x005F,0x4A
    Reg = 0,0x0060,0x22
    Reg = 0,0x0061,0x02
    Reg = 0,0x0062,0x00
    Reg = 0,0x0064,0x10
    Reg = 0,0x0065,0x00
    Reg = 0,0x0066,0x00
    Reg = 0,0x0067,0x00
    Reg = 0,0x0068,0x00
    Reg = 0,0x0069,0x00
    Reg = 0,0x006A,0x00
    Reg = 0,0x006B,0x00
    Reg = 0,0x006C,0x00
    Reg = 0,0x0070,0x00
    Reg = 0,0x0071,0x00
    Reg = 0,0x0072,0x00
    Reg = 0,0x0073,0x00
    Reg = 0,0x0074,0x00
    Reg = 0,0x0075,0x00
    Reg = 0,0x0076,0x00
    Reg = 0,0x0077,0x00
    Reg = 0,0x0078,0x00
    Reg = 0,0x0079,0x00
    Reg = 0,0x007A,0x00
    Reg = 0,0x007B,0x00
    Reg = 0,0x007C,0x00
    Reg = 0,0x007D,0x00
    Reg = 0,0x0080,0x00
    Reg = 0,0x0081,0x00
    Reg = 0,0x0082,0x00
    Reg = 0,0x0083,0x00
    Reg = 0,0x0084,0x00
    Reg = 0,0x0090,0x00
    Reg = 0,0x0091,0x00
    Reg = 0,0x0092,0x00
    Reg = 0,0x0093,0x00
    Reg = 0,0x0094,0x00
    Reg = 0,0x0098,0x00
    Reg = 0,0x0099,0x00
    Reg = 0,0x009A,0x00
    Reg = 0,0x009B,0x00
    Reg = 0,0x009C,0x00
    Reg = 0,0x009D,0x00
    Reg = 0,0x009E,0x00
    Reg = 0,0x009F,0x00
    Reg = 0,0x00A0,0x00
    Reg = 0,0x00A1,0x00
    Reg = 0,0x00A2,0x00
    Reg = 0,0x00A3,0x00
    Reg = 0,0x00C0,0x00
    Reg = 0,0x00C1,0x00
    Reg = 0,0x00C2,0xA8
    Reg = 0,0x00C3,0x00
    Reg = 0,0x00C4,0x68
    Reg = 0,0x00C5,0x00
    Reg = 0,0x00C6,0x00
    Reg = 0,0x00C7,0x40
    Reg = 0,0x00C8,0xC0
    Reg = 0,0x00C9,0x00
    Reg = 0,0x00CA,0x00
    Reg = 0,0x00CB,0x00
    Reg = 0,0x00CC,0x00
    Reg = 0,0x00CE,0xFF
    Reg = 0,0x00D0,0x00
    Reg = 0,0x00D1,0x00
    Reg = 0,0x00D2,0x00
    Reg = 0,0x00D3,0x00
    Reg = 0,0x00E0,0x00
    Reg = 0,0x00E1,0x00
    Reg = 0,0x00E2,0xA8
    Reg = 0,0x00E3,0x00
    Reg = 0,0x00E4,0x68
    Reg = 0,0x00E5,0x38
    Reg = 0,0x00E6,0x00
    Reg = 0,0x00E7,0x00
    Reg = 0,0x00F0,0x5F
    Reg = 0,0x00F1,0x55
    Reg = 0,0x00F2,0x42
    Reg = 0,0x00F3,0x39
    Reg = 0,0x00F4,0x32
    Reg = 0,0x00F5,0x39
    Reg = 0,0x00F6,0x00
    Reg = 0,0x00F8,0x00
    Reg = 0,0x00F9,0x00

    After executing the script:

    [REGISTERS]
    Device = ALP Nano 1 - DS90UB929, Connector 1
    Comments = ""
    Date = 04/18/2024
    Time = 13:41:06
    Reg = 0,0x0000,0x18
    Reg = 0,0x0001,0x00
    Reg = 0,0x0003,0xDA
    Reg = 0,0x0004,0x80
    Reg = 0,0x0005,0x00
    Reg = 0,0x0006,0x58
    Reg = 0,0x0007,0x00
    Reg = 0,0x0008,0x00
    Reg = 0,0x0009,0x00
    Reg = 0,0x000A,0x5E
    Reg = 0,0x000B,0x00
    Reg = 0,0x000C,0x07
    Reg = 0,0x000D,0x20
    Reg = 0,0x000E,0x00
    Reg = 0,0x000F,0x00
    Reg = 0,0x0010,0x00
    Reg = 0,0x0011,0x00
    Reg = 0,0x0012,0x00
    Reg = 0,0x0013,0x88
    Reg = 0,0x0014,0x00
    Reg = 0,0x0015,0x01
    Reg = 0,0x0016,0xFE
    Reg = 0,0x0017,0x1E
    Reg = 0,0x0018,0x7F
    Reg = 0,0x0019,0x7F
    Reg = 0,0x001A,0x01
    Reg = 0,0x001B,0x00
    Reg = 0,0x001C,0x00
    Reg = 0,0x001D,0x00
    Reg = 0,0x001E,0x01
    Reg = 0,0x001F,0xFA
    Reg = 0,0x0020,0x03
    Reg = 0,0x0021,0x00
    Reg = 0,0x0022,0x25
    Reg = 0,0x0023,0x00
    Reg = 0,0x0024,0x00
    Reg = 0,0x0025,0x00
    Reg = 0,0x0026,0x00
    Reg = 0,0x0027,0x00
    Reg = 0,0x0028,0x01
    Reg = 0,0x0029,0x20
    Reg = 0,0x002A,0x20
    Reg = 0,0x002B,0xE8
    Reg = 0,0x002C,0x00
    Reg = 0,0x0030,0x00
    Reg = 0,0x0031,0x00
    Reg = 0,0x0032,0x00
    Reg = 0,0x0033,0x00
    Reg = 0,0x0034,0x00
    Reg = 0,0x0035,0x00
    Reg = 0,0x0036,0x00
    Reg = 0,0x0037,0x00
    Reg = 0,0x0038,0x00
    Reg = 0,0x0039,0x00
    Reg = 0,0x003A,0x00
    Reg = 0,0x003B,0x00
    Reg = 0,0x003C,0x00
    Reg = 0,0x003D,0x00
    Reg = 0,0x003E,0x00
    Reg = 0,0x003F,0x00
    Reg = 0,0x0040,0x14
    Reg = 0,0x0041,0x5C
    Reg = 0,0x0042,0x00
    Reg = 0,0x0043,0x00
    Reg = 0,0x0044,0x80
    Reg = 0,0x0045,0x00
    Reg = 0,0x0046,0x00
    Reg = 0,0x0047,0x00
    Reg = 0,0x0048,0x01
    Reg = 0,0x0049,0x68
    Reg = 0,0x004A,0x01
    Reg = 0,0x004B,0x20
    Reg = 0,0x004C,0x02
    Reg = 0,0x004D,0x00
    Reg = 0,0x004E,0x00
    Reg = 0,0x004F,0x00
    Reg = 0,0x0050,0x97
    Reg = 0,0x0051,0xA1
    Reg = 0,0x0052,0x1E
    Reg = 0,0x0053,0x00
    Reg = 0,0x0054,0x28
    Reg = 0,0x0055,0x0C
    Reg = 0,0x0056,0x00
    Reg = 0,0x0057,0x00
    Reg = 0,0x0058,0x00
    Reg = 0,0x0059,0x00
    Reg = 0,0x005A,0xDD
    Reg = 0,0x005B,0x20
    Reg = 0,0x005C,0x02
    Reg = 0,0x005D,0x06
    Reg = 0,0x005E,0x44
    Reg = 0,0x005F,0x28
    Reg = 0,0x0060,0x22
    Reg = 0,0x0061,0x02
    Reg = 0,0x0062,0x00
    Reg = 0,0x0064,0x10
    Reg = 0,0x0065,0x00
    Reg = 0,0x0066,0x00
    Reg = 0,0x0067,0x00
    Reg = 0,0x0068,0x00
    Reg = 0,0x0069,0x00
    Reg = 0,0x006A,0x00
    Reg = 0,0x006B,0x00
    Reg = 0,0x006C,0x00
    Reg = 0,0x0070,0x00
    Reg = 0,0x0071,0x00
    Reg = 0,0x0072,0x00
    Reg = 0,0x0073,0x00
    Reg = 0,0x0074,0x00
    Reg = 0,0x0075,0x00
    Reg = 0,0x0076,0x00
    Reg = 0,0x0077,0x00
    Reg = 0,0x0078,0x00
    Reg = 0,0x0079,0x00
    Reg = 0,0x007A,0x00
    Reg = 0,0x007B,0x00
    Reg = 0,0x007C,0x00
    Reg = 0,0x007D,0x00
    Reg = 0,0x0080,0x00
    Reg = 0,0x0081,0x00
    Reg = 0,0x0082,0x00
    Reg = 0,0x0083,0x00
    Reg = 0,0x0084,0x00
    Reg = 0,0x0090,0x00
    Reg = 0,0x0091,0x00
    Reg = 0,0x0092,0x00
    Reg = 0,0x0093,0x00
    Reg = 0,0x0094,0x00
    Reg = 0,0x0098,0x00
    Reg = 0,0x0099,0x00
    Reg = 0,0x009A,0x00
    Reg = 0,0x009B,0x00
    Reg = 0,0x009C,0x00
    Reg = 0,0x009D,0x00
    Reg = 0,0x009E,0x00
    Reg = 0,0x009F,0x00
    Reg = 0,0x00A0,0x00
    Reg = 0,0x00A1,0x00
    Reg = 0,0x00A2,0x00
    Reg = 0,0x00A3,0x00
    Reg = 0,0x00C0,0x00
    Reg = 0,0x00C1,0x00
    Reg = 0,0x00C2,0xA8
    Reg = 0,0x00C3,0x00
    Reg = 0,0x00C4,0x68
    Reg = 0,0x00C5,0x38
    Reg = 0,0x00C6,0x00
    Reg = 0,0x00C7,0x00
    Reg = 0,0x00C8,0xC0
    Reg = 0,0x00C9,0x00
    Reg = 0,0x00CA,0x00
    Reg = 0,0x00CB,0x00
    Reg = 0,0x00CC,0x00
    Reg = 0,0x00CE,0xFF
    Reg = 0,0x00D0,0x00
    Reg = 0,0x00D1,0x00
    Reg = 0,0x00D2,0x00
    Reg = 0,0x00D3,0x00
    Reg = 0,0x00E0,0x00
    Reg = 0,0x00E1,0x00
    Reg = 0,0x00E2,0xA8
    Reg = 0,0x00E3,0x00
    Reg = 0,0x00E4,0x68
    Reg = 0,0x00E5,0x38
    Reg = 0,0x00E6,0x00
    Reg = 0,0x00E7,0x00
    Reg = 0,0x00F0,0x5F
    Reg = 0,0x00F1,0x55
    Reg = 0,0x00F2,0x42
    Reg = 0,0x00F3,0x39
    Reg = 0,0x00F4,0x32
    Reg = 0,0x00F5,0x39
    Reg = 0,0x00F6,0x00
    Reg = 0,0x00F8,0x00
    Reg = 0,0x00F9,0x00

    We notice that the register values are different after executing the script in working and not working PCs.

  • Hi Manoj,

    It might be because HPD is pulled low as the source doesn't assert HPD signal to 929. Note that the HPD pin is asserted by the sink to let the source know that it is ready to receive the HDMI signal. The source initiates the connection by first providing the +5V power signal through the HDMI interface. The sink holds HPD low until it is ready to receive signals from the source, at which point it will release HPD to be pulled up to +5V.

    You can force HPD high on the 929 with the following commands:

    Assert HPD:
    a. 0x48 = 0x01
    b. 0x49 = 0x00
    c. 0x4A = 0x00
    d. 0x4B = 0x01
    e. 0x4C = 0x00
    f. 0x4D = 0x00
    g. 0x4E = 0x01

    De-assert HPD with the following commands:
    a. 0x48 = 0x01
    b. 0x49 = 0x00
    c. 0x4A = 0x00
    d. 0x4B = 0x01
    e. 0x4C = 0x00
    f. 0x4D = 0x00
    g. 0x4E = 0x00

    Best,

    Josh

  • Hi, 

    What exactly is your proposal, to Assert or to De-assert HPD , and whether to incorporate any of these commands it in our EDID script? 

    Please provide step by step instruction.

    Meantime, I performed the Assert HPD commands, but HDMI Freq is Not stable in ALP.

    Regards

    Manoj

  • Hi Manoj,

    Please see the E2E thread regarding the steps: Link

    Note that the steps would be the same for 929 even if the thread is related to 949.

    Best,

    Josh

  • Hi Josh,

    Performed the Assert HPD. Then the script to initialize the timing(refer the reply on this thred on 14.04.2024). The image coming out of Videoboard HDMI is cropped portion of PC display.

    So the difference we observe by HPD assertion is a cropped display.

    Without HPD assertion, there was no display at all.

    Regards

    Manoj

  • Hi Manoj,

    Josh is out of office. I will be back with you shortly.

    Best,

    Jack

  • Hi Manoj,

    At power-up, the internal SRAM EDID is populated with the default EDID. If you have a custom EDID to load into the internal SRAM of the UB929, it needs to be loaded before HPD goes high. This can be done through either manually setting HPD low, loading the EDID, and setting HPD high or by strapping the device into EXT_CTL mode. EXT_CTL prevents the internal state machines from completing the HDMI configuration which allows the user to program their custom EDID. Once the EDID is programmed, the UB929 can be set back to internal HDMI control by writing to register 0x54[7].

    Without HPD assertion, there was no display at all.

    If HPD is not active, then the HDMI link will not function. HPD will be set automatically in the UB929 if the downstream link is established. There are some other causes for why HPD might not be active.

    • RX_5V detect is false
    • Downstream HPD event
    • Reset audio FIFO

    We notice that the register values are different after executing the script in working and not working PCs.

    Which registers are different?

    Best,

    Jack

  • Hi Jack,

    The following register contents are different between an OK-PC and Not-OK-PC after connecting the HDMI to PC and executing the scripts to Assert HPD. and initialize the timing in ALP:

    Why is it different between PCs, but with the same Videoboards ?

    Regards

    Manoj

  • Hi Manoj,

    Thank you for highlighting the register differences. The main issue is that there is no valid TMDS signal detected by the 929. Register 0x5A (FPD3_STS) states that there is no HDMI PLL lock or a stable frequency present for the "Not OK PC". If this only happens on specific PCs, then I am suspecting that the hardware could be causing link issues.

    Register 0x5C (FPD3_CTL2) has options to force HDMI clock detection and frequency stability thresholds. Try using this register to see if this can lock to the HDMI clock.

    Best,

    Jack

  • Hi Jack,
    After comparing the registers after powering on the Board, before and after loading the script, we found that the values of some of the registers were also modified which were not intended to be. This was caused by the script generated by AW EDID Editor.
    So we included in the script only the changes we wanted(timing and resolution modification).
    The new script was tested in different computers. The HDMI is stable and the image is looking ok.

    Regards Manoj