Summary of edid Design for DVI and HDMI

Source: Internet
Author: User

I recently came into contact with the DVI high-definition digital interface and started to feel nothing, because it only serves simple applications and does not involve deep encoding research. However, I have always felt a little mysterious about the storage of its edid data. After studying it for a while, I will summarize some precautions, which is also a small experience, in fact, this is nothing technical, as long as the data is written in the prescribed protocol format is OK.

First of all, there is usually no problem with the hardware. I have been skeptical at the beginning, and the results prove that it is basically unnecessary. Generally, 24c02 is used as the storage of edid data. The connection is also very simple. You can ground the three addresses. The reason for choosing 24c02 is that it can store 256 bytes of data, which is just in line with the needs of normal HDMI. Of course, if it is a DVI device, it only needs 128 bytes of capacity. However, this does not guarantee support for some extended protocols in the future.

After the hardware is ready, it is about how to write data. In fact, this is not a problem. Just follow the common operation method and write it through the IIC bus operation method. The main problem is what data to rewrite. After reading many related articles, I finally figured out a problem. For hdm I devices, the first 128byte OF THE ED ID must be in line with the edid1.3 data structure, and the second 128byte must be in line with the EIA/CEA-861B CEA ed ID time series extended data structure.

The specific meanings of these bytes are easy to find. It must be noted that the versions of the two bytes 0x12 and 0x13 store the Ed ID. For example, the values of 0x12 and 0x13 are respectively "01h" "03h", indicating that the current version is 113. And the number of extended data at the 0x7e address. If it is a common DVI device, it does not need to be extended (in the current situation, it may need to be extended in the future ). Enter 0x00. If the HDMI device needs to expand a data block (128 bytes), it needs to be written as 0x01. The checksum of the last digit is to add up the number of the 128 characters (excluding carry) to zero. This is very important. At first, I did not pay attention to this problem. I randomly found someone else's template data and wrote it into it. I couldn't make it. Then I verified it myself and found that the verification value was incorrect. After the change, I immediately OK.

For the HDMI device, you need to expand the data of 128 bytes. There are also many details about the specific situation, but also pay attention to the final check value. The following lists a set of edid data that I have debugged:

Unsigned charcode_edid [256] = {0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0c, 0xa1, 0 x, 0 x, 0 x, 0 x, 0 x, 0x00,
0x00, 0x0f, 0x01,0x03,0x80, 0x50, 0x2d, 0x78, 0x0a, 0x0d, 0xc9, 0xa0, 0x57,0x47,0x98,0x27,

0x48, 0x4c, 0x20, 0 x, 0 x, 0 x, 0 x, 0 x, 0 x, 0 x, 0 x, 0 x, 0 X,

0x01,0x01,0x01,0x01,0x01,0x01,0x01, 0x1d, 0x80, 0x18, 0x71, 0x1c, 0x16,0x20,0x58, 0x2c,

0x25, 0 x, 0x20, 0xc2, 0 x, 0 x, 0x00, 0x9e, 0x8c, 0x0a, 0xd0, 0x8a, 0x20, 0xe0, 0x2d, 0x10,

0x10, 0x3e, 0 x, 0 x, 0x58, 0xc2, 0 x, 0 x, 0 x, 0x00, 0xfc, 0 x, 0x48,

0x44, 0x4d, 0x49,0x44,0x54,0x56, 0x0a, 0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00, 0xfd,

0x00, 0x3b, 0x3d, 0x0f, 0x2e, 0x08,0x00, 0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x01, 0xac, // DVI edid

0x03, 0x1a, 0x47,0 x, 0x07, // HDMI

0 x, 0 x, 0 x, 0 x, 0 x, 0x01, 0 x, 0 x, 0 x, 0x01, 0x1d, 0 x, 0 x, 0x51, 0xd0,

0x1e, 0x20, 0x6e, 0x28,0x55,0x00,0x20, 0xc2, 0x31,0x00,0x00, 0x1e, 0x8c, 0x0a, 0xa0, 0x14,

0x51, 0xf0, 0x16, 0 x, 0x26, 0x7c, 0 x, 0 x, 0x58, 0xc2, 0 x, 0 x, 0 x, 0x98, 0x8c, 0x0a,

0xd0, 0x20, 0xe0, 0x2d, 0x10, 0x10, 0x3e, 0 x, 0 x, 0x20, 0xc2, 0 x, 0 x, 0 x, 0 x, 0x18,

0x8c, 0x0a, 0xa0, 0x14,0x51, 0xf0, 0x16,0x00,0x26, 0x7c, 0x43,0x00,0x20, 0xc2, 0x31,0x00,

0x00,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80

};

 

Finally, I would like to thank my friend Kun Ming for reminding me to sum up my experiences and record them.

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.