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.

DS90UB949A-Q1EVM: How to write EDID into DS90UB949.

Part Number: DS90UB949A-Q1EVM
Other Parts Discussed in Thread: ALP, DS90UB949A-Q1

Hello Sir:
I got the DS90UB949 EVM recently, I want to setup the HDMI to FPDLink3 on this board.

[input/output]
My HDMI source is My PC.
FPD Link 3 output is a display with deserializer. (it works well).
[preparation]
I connect this board with Mini USB , (set J33 to get power with USB , the LED on boad turn on ).
the S1, S2, S3, S6 are also with default setting.

I check HDMI info in the device manager in my windows 10. my windows 10 can recognize the second monitor in the list.
there is no extral EEPROM on the EVM board.

[My target]
I only want to translate HDMI input to the FPD Link3 output. (the output resoluation is 1280x640)

[My Queston ]
Q1: While create new profile from exist profile, there is a tab for EEPROM , What is this EEROM used for? what should input in this part?

Q2: How to write EDID infomation to the EVM board?
Q2.1: there is 4 methods for EDID in user guide, ( I don't have extra EEROM on my board. ) Which one should I select? Can I modify the Internal pre-programed EDID ?
• External local EDID (EEPROM)
• Internal EDID loaded into device memory
• Remote EDID connected to I2C bus at deserializer side
• Internal pre-programmed EDI
Q2.2: How can I write the EDID infomation into baord?
I saw the pdf document (949-929 Read-Write EDID.pdf) to discritp how to read/write EDID, but the EDID infomation is genrated by other tool (e.g. Deltacase-EDID ), how to select the EDID file and wirte inoto board?
there are only " EDID Read"/" EDID Write" on the HDMI tab of ALP .


Q3: the infomation on ALP is list below, Can you help to check if there other problem on my configration?

Infomation tab of ALP : ( althogh it is link with line and usb)
Current Link Status:
Link to Deserializer : No
Link to HDMI source : No

  • 您好,

    为更加有效的解决您的问题,我将您的问题发布在了E2E英文论坛,将由资深的英文论坛工程师为您提供帮助,请等待他们的回复:

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1110351/ds90ub949a-q1evm-how-to-write-edid-into-ds90ub949

  • Hi kang Zhaolong,

    The E2E Forum Engineer  has replied: 

    Please see comments below:

    [My target]
    I only want to translate HDMI input to the FPD Link3 output. (the output resoluation is 1280x640)

    [FA] - In order to get an HDMI signal detection on the side, you need to connect a Deserializer to the DS90UB949A-Q1 Serializer. 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.

    [My Queston ]
    Q1: While create new profile from exist profile, there is a tab for EEPROM , What is this EEROM used for? what should input in this part?

    [FA] - What is the purpose of creating a new profile? In ALP HDMI tab there are a few standard EDIDs including 1080p that can be loaded just by selecting from the drop down menu as an alternative. If you want to support a custom resolution you can check with the panel supplier if they already have an EDID to match the panel and if not, then you can generate an EDID using an EDID editing program such as Deltacast or AW EDID editor, then copy the EDID into the python script below to load into the part.

    Q2: How to write EDID infomation to the EVM board?

    [FA] - Attached is a script which can be run in ALP to load an EDID file into the SRAM. After the EDID is loaded then you would set 0x5C[6] = 1 to trigger HPD to go high and advance the part's state machine if there is no DES connected/detected. 

    # Script to load EDID using built-in ALP routines

    exEDID = [0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
    0x10,0xAC,0x4D,0x40,0x4D,0x4E,0x35,0x30,
    0x29,0x14,0x01,0x04,0xA3,0x2F,0x1E,0x78,
    0x3E,0xEE,0x95,0xA3,0x54,0x4C,0x99,0x26,
    0x0F,0x50,0x54,0xA5,0x4B,0x00,0x71,0x4F,
    0x81,0x80,0xB3,0x00,0x01,0x01,0x01,0x01,
    0x01,0x01,0x01,0x01,0x01,0x01,0x7C,0x2E,
    0x90,0xA0,0x60,0x1A,0x1E,0x40,0x30,0x20,
    0x36,0x00,0xDA,0x28,0x11,0x00,0x00,0x1A,
    0x00,0x00,0x00,0xFF,0x00,0x55,0x38,0x32,
    0x39,0x4B,0x30,0x41,0x36,0x30,0x35,0x4E,
    0x4D,0x0A,0x00,0x00,0x00,0xFC,0x00,0x44,
    0x45,0x4C,0x4C,0x20,0x50,0x32,0x32,0x31,
    0x30,0x0A,0x20,0x20,0x00,0x00,0x00,0xFD,
    0x00,0x38,0x4B,0x1E,0x53,0x10,0x00,0x0A,
    0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x70,
    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,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]


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

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

    If you want to support a custom resolution you can check with the panel supplier if they already have an EDID to match the panel and if not, then you can generate an EDID using an EDID editing program such as Deltacast or AW EDID editor, then copy the EDID into the python script from above to load into the part. 

    Q2.1: there is 4 methods for EDID in user guide, ( I don't have extra EEROM on my board. ) Which one should I select?
    Can I modify the Internal pre-programed EDID ?

    [FA] - Yes, the internal EDID can be overwritten, please see this E2E thread for example script ( https://e2e.ti.com/support/interface-group/interface/f/interface-forum/606928/ds90ub949-q1-how-to-change-the-edid-value)

    Q2.2: How can I write the EDID infomation into baord?
    I saw the pdf document (949-929 Read-Write EDID.pdf) to discritp how to read/write EDID, but the EDID infomation is genrated by other tool (e.g. Deltacase-EDID ), how to select the EDID file and wirte inoto board?
    there are only " EDID Read"/" EDID Write" on the HDMI tab of ALP .

    [FA] - Here is another example of 949 Example script about writing EDID to Internal SRAM from ALP that uses I2C  (e2e.ti.com/.../3990962

    [FA] - Also, please see (Using EDID in FPD-Link Devices) pdf attached. This document explains the Supported EDID Options.

    Q3: the infomation on ALP is list below, Can you help to check if there other problem on my configration?

    [FA] - Your HDMI HPD signal is reading false because you don't have a deserializer connected to the DS90UB949. If want to force HDMI connection without having a Deserializer connected to the 949 you need to you would need to set register 0x5C bit[6] high - (board.WriteI2C(serAddr,0x5C,0x42)) to force link detection

    Using EDID in FPD-Link Devices.pdf

    Regards,

    Amy

  • Hello  Amy :

    thanks for your info.  It has some improvement but not work yet.

    [Board Setting]

    0) write the EDID with your method into board. (please refer to below write progress)

    1) Set register 0x5C bit[6] high.  (Force HDMI ouput without Deserializer );

    2) Assert Hot-Plug in ALP HDMI tab. ( with this setting ,  My PC then can find the secondi monitor in device management list);

    3) Extend my desktop to second monitor in my PC ("Win" + "P", then select extend mode in PC )

    4)  Set output resolution in my display setting page on my PC.  

    5) the MODE_0, MODE_1 and IDx settings on the board are set as default.

    [EDID configuration ]

    # Load EDID with 1080p 2-channel EDID
    TXN_1080p_2ch =[0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x04,0x21,0x00,0x00,0x00,0x00,0x00,0x00,
           0x01,0x00,0x01,0x04,0xA2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
           0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
           0x01,0x00,0x01,0x00,0x01,0x00,0x0E,0x15,0x00,0x36,0x50,0x80,0x22,0x20,0x26,0x0C,
           0xA5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x39,0x2E,0x31,
            0x39,0x69,0x6E,0x63,0x68,0x0A,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x01,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,0xE6]
    
    # Write to EDID (start offset, data, length)
    board.EDID_Write(0x0, TXN_1080p_2ch, 128)
    
    # Readback EDID
    read_edid = board.EDID_Read(0x0, 128)
    print "EDID readback:"
    print read_edid

    [Result and Question]

    1)  The resulte is not work; with below issues:

    a. ALP Inofmation tab,  the deserilizer output is NO.  (even we set the 0x5c bit[6] ) , why ?

    b. you can see my EDID tool, the resolution is 1280x640, (640!!!)  , but my computer only list 3 options (1280x720, 1280x600, 800x600) ? What problem is here?  I write the EDID with script (128 bytes), but there is no 1280x640 in my computer resolution setting list. Is there any wrong in ALP HDMI tab ?

    Please help to check and give some advice. thanks.

    [more question]

    1)  I change the Hot-Plug setting and 0x5C bit[6] , but when I turn off the usb and give 5V power with USB again, the setting disappear, and not saved.

    Can you told me if I configure the setting and how to save the setting while reboot the board again.

    2) I also had a extral EEPROM and flash the EDID file into this ROM, If I want to use this external ROM, what shoud I setting on the board. 

    thanks.

  • Hi kang Zhaolong,

    我已将您的信息回复给E2E工程师;

    看到E2E论坛工程师的后续回复后,若仍存在问题或疑问,您也可以直接在E2E英文论坛追问,以省去我在中间转发的中间环节,这样可以提高沟通效率

  • a. ALP Inofmation tab,  the deserilizer output is NO.  (even we set the 0x5c bit[6] ) , why ?

    Because there is no deserializer connected.

    b. you can see my EDID tool, the resolution is 1280x640, (640!!!)  , but my computer only list 3 options (1280x720, 1280x600, 800x600) ? What problem is here?  I write the EDID with script (128 bytes), but there is no 1280x640 in my computer resolution setting list. Is there any wrong in ALP HDMI tab ?
    2) Assert Hot-Plug in ALP HDMI tab. ( with this setting ,  My PC then can find the secondi monitor in device management list);

    Don't do this step, it shouldn't be needed if you are forcing 0x5C[6]. Is it required for successful detection of HDMI sink?

    1)  I change the Hot-Plug setting and 0x5C bit[6] , but when I turn off the usb and give 5V power with USB again, the setting disappear, and not saved.

    If no DES is attached, only use 0x5C[6]. Is the device resetting/repowered as well?