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.

DS90UH949-Q1EVM: The display cannot show the whole screen, only part of it

Part Number: DS90UH949-Q1EVM
Other Parts Discussed in Thread: ALP

Hi team

I'm trying to display the screen on my computer onto the display. However, the display only shows the upper left corner of my screen. I have tried to change the SRAM and load the EDID from SRAM, but it does not work. But the pattern generator works well.

May I ask what is the reason of that?

Thanks

REG 0x0 = 24
REG 0x1 = 0
REG 0x2 = 0
REG 0x3 = 210
REG 0x4 = 128
REG 0x5 = 0
REG 0x6 = 88
REG 0x7 = 0
REG 0x8 = 0
REG 0x9 = 0
REG 0xa = 75
REG 0xb = 0
REG 0xc = 7
REG 0xd = 32
REG 0xe = 0
REG 0xf = 0
REG 0x10 = 0
REG 0x11 = 0
REG 0x12 = 0
REG 0x13 = 136
REG 0x14 = 0
REG 0x15 = 1
REG 0x16 = 254
REG 0x17 = 30
REG 0x18 = 127
REG 0x19 = 127
REG 0x1a = 1
REG 0x1b = 0
REG 0x1c = 0
REG 0x1d = 0
REG 0x1e = 1
REG 0x1f = 0
REG 0x20 = 0
REG 0x21 = 0
REG 0x22 = 37
REG 0x23 = 0
REG 0x24 = 0
REG 0x25 = 0
REG 0x26 = 0
REG 0x27 = 0
REG 0x28 = 1
REG 0x29 = 32
REG 0x2a = 32
REG 0x2b = 184
REG 0x2c = 0
REG 0x2d = 0
REG 0x2e = 165
REG 0x2f = 90
REG 0x30 = 0
REG 0x31 = 0
REG 0x32 = 0
REG 0x33 = 0
REG 0x34 = 0
REG 0x35 = 0
REG 0x36 = 0
REG 0x37 = 0
REG 0x38 = 0
REG 0x39 = 0
REG 0x3a = 0
REG 0x3b = 0
REG 0x3c = 0
REG 0x3d = 0
REG 0x3e = 0
REG 0x3f = 0
REG 0x40 = 20
REG 0x41 = 85
REG 0x42 = 0
REG 0x43 = 0
REG 0x44 = 128
REG 0x45 = 0
REG 0x46 = 0
REG 0x47 = 0
REG 0x48 = 0
REG 0x49 = 0
REG 0x4a = 0
REG 0x4b = 0
REG 0x4c = 0
REG 0x4d = 0
REG 0x4e = 0
REG 0x4f = 0
REG 0x50 = 151
REG 0x51 = 161
REG 0x52 = 30
REG 0x53 = 0
REG 0x54 = 40
REG 0x55 = 12
REG 0x56 = 63
REG 0x57 = 0
REG 0x58 = 0
REG 0x59 = 0
REG 0x5a = 221
REG 0x5b = 32
REG 0x5c = 2
REG 0x5d = 6
REG 0x5e = 68
REG 0x5f = 76
REG 0x60 = 34
REG 0x61 = 2
REG 0x62 = 0
REG 0x63 = 0
REG 0x64 = 0
REG 0x65 = 4
REG 0x66 = 14
REG 0x67 = 3
REG 0x68 = 0
REG 0x69 = 0
REG 0x6a = 0
REG 0x6b = 0
REG 0x6c = 0
REG 0x6d = 0
REG 0x6e = 0
REG 0x6f = 0
REG 0x70 = 0
REG 0x71 = 0
REG 0x72 = 0
REG 0x73 = 0
REG 0x74 = 0
REG 0x75 = 0
REG 0x76 = 0
REG 0x77 = 0
REG 0x78 = 0
REG 0x79 = 0
REG 0x7a = 0
REG 0x7b = 0
REG 0x7c = 0

  • Hello,

    It may be that the EDID is configured or loaded incorrectly. Can you provide the EDID you are using? Also, what strap modes (MODE_SEL0/MODE_SEL1) do you have configured?

    Regards,

    Ben

  • Hello

    My MODEL_SEL0 and MODEL_SEL1 are all at mode #1 now. 

    The way I'm configuring and loading the EDID is to follow the steps below, first set Reg 0x48 to 0x01, then set the address with Reg 0x49, and next set data with Reg 0x4B respectively. May I ask if there is any step need to be added?

    I'm trying different sample EDIDs with different resolutions,  but there is no difference in the display. 

    Also, I have generated an EDID with AW EDID editor, but the display is still partial.

    EDID = 

       [0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x05, 0xD7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0xFF, 0x21, 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, 0xE6, 0x03, 0xE0, 0xA0, 0x10, 0xF0, 0x14, 0x00, 0x30, 0x20,
        0x3A, 0x00, 0x63, 0xC8, 0x10, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x17, 0xF0, 0x0F,
        0xFF, 0x01, 0x00, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x34,
        0x38, 0x30, 0x78, 0x32, 0x34, 0x30, 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, 0x57,

        0x02, 0x03, 0x18, 0x40, 0x23, 0x09, 0x06, 0x07, 0x67, 0x03, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x03,
        0x67, 0xD8, 0x5D, 0xC4, 0x01, 0x03, 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, 0x0D
       ]

  • Hi,

    The EDID file looks okay, however the resolution is very small. This may actually be a windows issue. In the original picture you posted, is the whole display lit up with the image? If so, then it seems like a windows scaling issue when showing a browser, rather than an issue with the 949. Can you confirm the resolution of the display?

    Regards,

    Ben

  • Hi

    Only a part of the display was lit up, and that part is in the middle of the display. I'm confused because what is showing is the upper left corner of my source screen (PC), but it appears in the middle of my display. The resolution of the display is 480 x RGB x 240 (298 ppi). 

    May I ask what does windows scaling issue means? Is it the problem of my source screen?

    When I use the pattern generator to set the resolution, it can actually fill up the whole display. So I guess maybe I miss some of the EDID load processes? Are there some other registers that I need to set after load the EDID?

    Best

    Zheyuan

  • Hi Zheyuan,

    It looks like this register, along with the APB registers that follow it, are still 0x00 (from your reg dump in the original post):

    Can you confirm that you are properly writing to this register?

    Regards,

    Ben

  • Hello Ben

    I have double checked the EDID configuration, and I find the reason why it is not working is because I restart the board every time I set EDID.

    Now different EDID can result in different effect in display, but it still cannot show full screen. We try to generate 480x240 resolution according to the datasheet of the display, but it just shows about 1/3 of the screen.

    I also tried to modify the resolution of the screen source side, but it does not help.

    May I ask how to make the display make full use of itself and shows full-version of the screen source? Do I need to modify the clock frequency setting on the board?

    Best

    Zheyuan

  • Hi Zheyuan,

    According to your reg dump, register 0x51 bit[0]=1. This disables writing to the EDID SRAM memory. 

    Can you make sure this bit is set to 0?

    If this does not improve the situation, can you provide the script/commands you are using to program the EDID?

    Can you also try doing patgen with external timing and external clock?

    Regards,

    Ben

  • Hello
    Thanks for your reply. Every time I try to set EDID, I first set read-only to zero and set it back to one after I have set EDID. I use the code below to edid EDID.
    I have also tried use LaunchPAD to set EDID, but that also does not work. 
    I have tried patgen with external timing, with 1080p setting, but it still cannot make use of the whole display screen
     
    Thanks
    Best 
    Zheyuan
    ################## EDID code ###################
    import smbus
    import time
    data = 
     [0x000xFF0xFF0xFF0xFF0xFF0xFF0x000x050xD70x000x000x000x000x000x00,
        0xFF0x210x010x030x800x320x1F0x780x070xEE0x950xA30x540x4C0x990x26,
        0x0F0x500x540x000x000x000x010x010x010x010x010x010x010x010x010x01,
        0x010x010x010x010x010x010xE60x030xE00xA00x100xF00x140x000x300x20,
        0x3A0x000x630xC80x100x000x000x1A0x000x000x000xFD0x000x170xF00x0F,
        0xFF0x010x000x0A0x200x200x200x200x200x200x000x000x000xFC0x000x34,
        0x380x300x780x320x340x300x200x430x560x540x0A0x200x000x000x000x00,
        0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x010x57,

        0x020x030x180x400x230x090x060x070x670x030x0C0x000x000x000x000x03,
        0x670xD80x5D0xC40x010x030x800x000x000x000x000x000x000x000x000x00,
        0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00,
        0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00,
        0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00,
        0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00,
        0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00,
        0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x0D
       ]
    # set the EDID to be not readonly
    bus.write_byte_data(DEVICE_ADDR, 0x51, 0b10100000)
    # bus.write_byte_data(DEVICE_ADDR, 0x4F, 0b10)

    bus.write_byte_data(DEVICE_ADDR, 0x48, 0b01101)
    bus.write_byte_data(DEVICE_ADDR, 0x49, 0)

    for i in range(len(data)):
       
        bus.write_byte_data(DEVICE_ADDR, 0x4B, data[i])
        time.sleep(0.003)

    # bus.write_byte_data(DEVICE_ADDR, 0x4F, 0b10)
    # bus.write_byte_data(DEVICE_ADDR, 0x48, 0b00000)

    bus.write_byte_data(DEVICE_ADDR, 0x51, 0b10100001)
  • Hi Zheyuan,

    Can you run this script in ALP to see if there is any improvement?

    # 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,0x53,0x0E,
            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,
            0xA3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
            0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
            0x01,0x01,0x01,0x01,0x02,0x3A,0x80,0x18,0x71,0x38,
            0x2D,0x40,0x58,0x58,0x45,0x00,0x80,0x38,0x74,0x00,
            0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x9A,0x02,0x03,
            0x11,0x40,0x41,0x90,0x23,0x09,0x04,0x04,0x66,0x03,
            0x0C,0x00,0x00,0x00,0x80,0x02,0x3A,0x80,0x18,0x71,
            0x38,0x2D,0x40,0x58,0x58,0x45,0x00,0x80,0x38,0x74,
            0x00,0x00,0x18,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,0xFF,0x8E]
    
    # 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
    
    
    

    Regards,

    Ben