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-Q1: Unable to get custom EDID to work.

Part Number: DS90UB929-Q1

I have a created a custom EDID that appears to have the right checksums (per the status register) .  But the it continues to use the default.

I tried clearing the SRAM, but when I read it, I get this:

Read internal SRAM
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,
0x20: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,
0x60: 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x53, 0x0e, 0x49, 0x09, 0x01, 0x00, 0x00, 0x00,
0x70: 0x1c, 0x18, 0x01, 0x03, 0x80, 0x34, 0x20, 0x78, 0x0a, 0xec, 0x18, 0xa3, 0x54, 0x46, 0x98, 0x25,
0x80: 0x0f, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x90: 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d, 0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x50,
0xa0: 0x55, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b, 0x3d, 0x62,
0xb0: 0x64, 0x08, 0x00, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x54,
0xc0: 0x49, 0x2d, 0x44, 0x53, 0x39, 0x30, 0x55, 0x78, 0x39, 0x34, 0x39, 0x0a, 0x00, 0x00, 0x00, 0x10,
0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x57,
0xe0: 0x02, 0x03, 0x15, 0x40, 0x41, 0x84, 0x23, 0x09, 0x7f, 0x05, 0x83, 0x01, 0x00, 0x00, 0x66, 0x03,
0xf0: 0x0c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

Then I read it for the HDMI space:

Read HDMI interface
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,
0x20: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,
0x60: 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x53, 0x0e, 0x49, 0x09, 0x01, 0x00, 0x00, 0x00,
0x70: 0x1c, 0x18, 0x01, 0x03, 0x80, 0x34, 0x20, 0x78, 0x0a, 0xec, 0x18, 0xa3, 0x54, 0x46, 0x98, 0x25,
0x80: 0x0f, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x90: 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d, 0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x50,
0xa0: 0x55, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b, 0x3d, 0x62,
0xb0: 0x64, 0x08, 0x00, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x54,
0xc0: 0x49, 0x2d, 0x44, 0x53, 0x39, 0x30, 0x55, 0x78, 0x39, 0x34, 0x39, 0x0a, 0x00, 0x00, 0x00, 0x10,
0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x57,
0xe0: 0x02, 0x03, 0x15, 0x40, 0x41, 0x84, 0x23, 0x09, 0x7f, 0x05, 0x83, 0x01, 0x00, 0x00, 0x66, 0x03,
0xf0: 0x0c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

I then wrote my own.  I had to change the offset to get it to show up in the same addresses as what was read previously:

Write EDID data to 929
Read internal SRAM
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,
0x20: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,
0x60: 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x53, 0x0e, 0x49, 0x09, 0x01, 0x00, 0x00, 0x00,
0x70: 0x01, 0x1d, 0x01, 0x03, 0x80, 0x34, 0x20, 0x78, 0x1a, 0xec, 0x18, 0xa3, 0x54, 0x46, 0x98, 0x25,
0x80: 0x0f, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x90: 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x90, 0x1a, 0x80, 0xa0, 0x70, 0x38, 0x10, 0x40, 0x30, 0x20,
0xa0: 0x35, 0x00, 0x40, 0x44, 0x21, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0xb0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
0xc0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xec,
0xe0: 0x02, 0x03, 0x12, 0x00, 0x41, 0xca, 0x23, 0x09, 0x7f, 0x05, 0x83, 0x01, 0x00, 0x00, 0x63, 0x03,
0xf0: 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

Then I dumped the registers:

Read registers
0x00: 0x18, 0x00, 0x00, 0xd2, 0x80, 0x00, 0x58, 0x00, 0x00, 0x00, 0x31, 0x3a, 0x03, 0x20, 0x00, 0x00,
0x10: 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0xfe, 0x1e, 0x7f, 0x7f, 0x01, 0x00, 0xc0, 0x01, 0x01, 0x00,
0x20: 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x20, 0xe0, 0x00, 0x00, 0xa5, 0x5a,
0x30: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40: 0x14, 0x55, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0d, 0xa0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50: 0x17, 0xa1, 0x1e, 0x00, 0x20, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x92, 0xa0, 0x02, 0x06, 0x44, 0x00,
0x60: 0x22, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x70: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x90: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xa0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xb0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0: 0x00, 0x00, 0xa8, 0x00, 0x28, 0x00, 0x00, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xe0: 0x00, 0x00, 0xa8, 0x00, 0x28, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf0: 0x5f, 0x55, 0x42, 0x39, 0x32, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

I am using a micro to program these registers.

Any reason the device is not using my EDID values?

  • Something strange going on here. What commands are you using to access the APB? I'm not sure why you are seeing an offset of the data start.

    -Casey
  • I copied code from another forum post.

    Here is the first code fragment for the first read.

    // Bridge Config
    i2c_buff[0] = 0x4F;
    i2c_buff[1] = 0x06;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);

    i2c_buff[0] = 0x54;
    i2c_buff[1] = 0x20; // Local audio
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);

    i2c_buff[0] = 0x48;
    i2c_buff[1] = 0x0d;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);

    i2c_buff[0] = 0x49;
    i2c_buff[1] = 0x00;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);

    i2c_buff[0] = 0x4a;
    i2c_buff[1] = 0x00;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);

    printf("Read internal SRAM\r\n");
    index2 = 0;
    for (index = 0; index < 256; index++)
    {
    i2c_buff[0] = 0x48;
    i2c_buff[1] = 0x0f;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);
    do
    {
    i2c_buff[0] = 0x48;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 1, 500);
    HAL_I2C_Master_Receive(&hi2c2, DS929_Addr, i2c_buff, 1, 500);
    } while ((i2c_buff[0] & 0x02) != 0);
    i2c_buff[0] = 0x4b;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 1, 500);
    HAL_I2C_Master_Receive(&hi2c2, DS929_Addr, i2c_buff, 1, 500);
    if (index2 == 0)
    printf("0x%02x: ",index);
    printf("0x%02x, ",i2c_buff[0]);
    if (index2 == 15)
    {
    index2 = 0;
    printf("\r\n");
    }
    else
    index2++;

    }

  • Hey Michael,

    I really don't know what's going on with the code but can you please try something simple as a test?

    Write 0x48 = 0x09 to select the EDID SRAM and enable the APB interface
    Write 0x4A = 0x00
    Write 0x49 = 0x08

    Write 0x48 = 0x0B to cause a read strobe

    Read 0x4B and it should return 0x53 which is the 9th byte in the SRAM. I'm really trying to figure out why you are seeing an offset.

    Best Regards,
    Casey
  • I did read 0x53 after those commands.  I set up to per the solution on this forum post:

    https://e2e.ti.com/support/interface/f/138/t/679210?tisearch=e2e-sitesearch&keymatch=ds90ub929%20edid

    After looking at it closer, I don't understand why the 0x4A register is not written to and why you would start set the 0x49 register to 0xa0, that seems to be in the middle of the data.

    register Address (0x4F) = data (0x00)
    register Address (0x54) = data (0x00)
    register Address (0x48) = data (0x0D)
    register Address (0x49) = data (0xA0)

    /*write EDID*/

    for(i=0;i<EDID_SIZE;i++)

    {

    register Address (0x4B) = EDID_buf[i]

    }

  • I changed up my code to not use the auto increment:

    i2c_buff[0] = 0x48;
    i2c_buff[1] = 0x09;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);

    i2c_buff[0] = 0x4a;
    i2c_buff[1] = 0x00;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);


    // Serializer configuration

    // Write EDID data
    printf("Write EDID data to 929\r\n");
    for (index2 = 0; index2 < 256; index2++)
    {
    i2c_buff[0] = 0x49;
    i2c_buff[1] = index2;
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);

    i2c_buff[0] = 0x4b;
    i2c_buff[1] = edid[index2];
    HAL_I2C_Master_Transmit(&hi2c2, DS929_Addr, i2c_buff, 2, 500);
    }

    Which appears to write my EDID data correctly:

    Read internal SRAM
    0x00: 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x53, 0x0e, 0x49, 0x09, 0x01, 0x00, 0x00, 0x00,
    0x10: 0x1c, 0x18, 0x01, 0x03, 0x80, 0x34, 0x20, 0x78, 0x0a, 0xec, 0x18, 0xa3, 0x54, 0x46, 0x98, 0x25,
    0x20: 0x0f, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
    0x30: 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d, 0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x50,
    0x40: 0x55, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b, 0x3d, 0x62,
    0x50: 0x64, 0x08, 0x00, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x54,
    0x60: 0x49, 0x2d, 0x44, 0x53, 0x39, 0x30, 0x55, 0x78, 0x39, 0x34, 0x39, 0x0a, 0x00, 0x00, 0x00, 0x10,
    0x70: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x57,
    0x80: 0x02, 0x03, 0x15, 0x40, 0x41, 0x84, 0x23, 0x09, 0x7f, 0x05, 0x83, 0x01, 0x00, 0x00, 0x66, 0x03,
    0x90: 0x0c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xa0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xb0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xc0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xe0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xf0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,
    Write EDID data to 929
    Read internal SRAM
    0x00: 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x53, 0x0e, 0x49, 0x09, 0x01, 0x00, 0x00, 0x00,
    0x10: 0x01, 0x1d, 0x01, 0x03, 0x80, 0x34, 0x20, 0x78, 0x1a, 0xec, 0x18, 0xa3, 0x54, 0x46, 0x98, 0x25,
    0x20: 0x0f, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
    0x30: 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x90, 0x1a, 0x80, 0xa0, 0x70, 0x38, 0x10, 0x40, 0x30, 0x20,
    0x40: 0x35, 0x00, 0x40, 0x44, 0x21, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
    0x50: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
    0x60: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
    0x70: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xec,
    0x80: 0x02, 0x03, 0x12, 0x00, 0x41, 0xca, 0x23, 0x09, 0x7f, 0x05, 0x83, 0x01, 0x00, 0x00, 0x63, 0x03,
    0x90: 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xa0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xb0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xc0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xe0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xf0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,

    But it does not appear to be using it. Is there some other register I need to set ?

    Read registers
    0x00: 0x18, 0x00, 0x00, 0xd2, 0x80, 0x00, 0x58, 0x00, 0x00, 0x00, 0x2f, 0x39, 0x13, 0x20, 0x00, 0x00,
    0x10: 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0xfe, 0x1e, 0x7f, 0x7f, 0x01, 0x00, 0xc0, 0x01, 0x01, 0x00,
    0x20: 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x20, 0xe0, 0x00, 0x00, 0xa5, 0x5a,
    0x30: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x40: 0x14, 0x55, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x09, 0xff, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00,
    0x50: 0x17, 0xa1, 0x1e, 0x00, 0x20, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x92, 0xa0, 0x02, 0x06, 0x44, 0x00,
    0x60: 0x22, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x70: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x80: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x90: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xa0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xb0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xc0: 0x00, 0x00, 0xa8, 0x00, 0x38, 0x00, 0x00, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
    0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xe0: 0x00, 0x00, 0xa8, 0x00, 0x28, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xf0: 0x5f, 0x55, 0x42, 0x39, 0x32, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  • I am getting further. My main issue is the actual EDID data. One issue I am seeing is that on multiple instances it looks like my writes to RAM are being overwritten later with the default data. What could cause this?
  • Hello Michael,

    How are you determining that? It doesn't sound normal. What hardware are you using for this test? A TI EVM? Is the 929 connected to any DES? I'm not sure what you mean about the EDID being writen correctly but not used.

    Best Regards,
    Casey
  • I have my own board with a 929 driving a 928. I am plugging it into my PC and looking for the display to appear on my PC.

    I am also dumping the EDID SRAM every 5 seconds. On many occations, the RAM values change back to the default.
  • Hello Michael,

    It sounds like the 929 might be resetting. Is the board losing power in the process of what you are doing? Or are you triggering a digital reset at any point during your code? Or is it possible that you are toggling the PDB pin on the device?

    Also, what are the MODE strappings for your board?

    Best Regards,
    Casey
  • Mode 1 is set for 0 1 0 (107K, 51.1 K)
    Mode 0 is set for 0 0 0 (open, 40.2 K)

    As far as I can tell, the changes to the SRAM occurs at the same time as when my other two monitors flash. Could the PC be causing the values to reset? My board power is pretty stable and I have not seen the lock indicator drop out between the 929 and the 928. My controller is not intentionally strobing the reset pin.
  • Michael,

    The modes seem correct. What is this monitor flash? Can you experiment around with programming another register unrelated to EDID on 929 and see if it also resets when this happens? Also, can you check if lock is stable at the 928 side?

    Best Regards,
    Casey
  • I verified this is not a power issue.

    Read internal SRAM
    0x00: 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x53, 0x0e, 0x49, 0x09, 0x00, 0x00, 0x00, 0x00,
    0x10: 0x01, 0x1d, 0x01, 0x03, 0x80, 0x3a, 0x21, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x20: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
    0x30: 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xa9, 0x1a, 0x80, 0xa0, 0x70, 0x38, 0x10, 0x40, 0x30, 0x20,
    0x40: 0x35, 0x00, 0x40, 0x44, 0x21, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
    0x50: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
    0x60: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
    0x70: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe6,
    0x80: 0x02, 0x01, 0x04, 0x00, 0xa9, 0x1a, 0x80, 0xa0, 0x70, 0x38, 0x1d, 0x40, 0x30, 0x20, 0x35, 0x00,
    0x90: 0x40, 0x44, 0x21, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xa0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xb0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xc0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xe0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xf0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc,
    Read internal SRAM
    0x00: 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x53, 0x0e, 0x49, 0x09, 0x01, 0x00, 0x00, 0x00,
    0x10: 0x1c, 0x18, 0x01, 0x03, 0x80, 0x34, 0x20, 0x78, 0x0a, 0xec, 0x18, 0xa3, 0x54, 0x46, 0x98, 0x25,
    0x20: 0x0f, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
    0x30: 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d, 0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x50,
    0x40: 0x55, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b, 0x3d, 0x62,
    0x50: 0x64, 0x08, 0x00, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x54,
    0x60: 0x49, 0x2d, 0x44, 0x53, 0x39, 0x30, 0x55, 0x78, 0x39, 0x34, 0x39, 0x0a, 0x00, 0x00, 0x00, 0x10,
    0x70: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x57,
    0x80: 0x02, 0x03, 0x15, 0x40, 0x41, 0x84, 0x23, 0x09, 0x7f, 0x05, 0x83, 0x01, 0x00, 0x00, 0x66, 0x03,
    0x90: 0x0c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xa0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xb0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xc0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xd0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xe0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xf0: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,

    From one 5 second period to the next, the RAM changes, without the circuit rebooting
  • Michael,

    This is very unusual and I'm not sure what could be causing this. I would suggest verifying behavior using the TI EVMs for the devices first to isolate hardware/software.

    Best Regards,
    Casey