{"id":47,"date":"2010-06-03T08:50:09","date_gmt":"2010-06-03T06:50:09","guid":{"rendered":"http:\/\/blog.kwikwai.com\/?p=47"},"modified":"2013-04-23T21:25:03","modified_gmt":"2013-04-23T20:25:03","slug":"hdmi-and-cec-a-guided-tour","status":"publish","type":"post","link":"http:\/\/blog.kwikwai.com\/?p=47","title":{"rendered":"HDMI and CEC, a guided tour"},"content":{"rendered":"<p>In a nutshell, an HDMI cable, through its 19 pins, carries:<\/p>\n<ul>\n<li>On pins 1 to 12, <em>audio and video (A\/V)<\/em> using 4 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Transition_Minimized_Differential_Signaling\">TMDS<\/a> channels<\/li>\n<li>On pin 13, the <em>Consumer Electronic Control (CEC)<\/em> serial connection<\/li>\n<li>On pin 14, the <a href=\"http:\/\/www.hdmi.org\/manufacturer\/hdmi_1_4\/hec.aspx\">HDMI Ethernet Channel (HEC)<\/a>, a 100Mbps Ethernet connection<\/li>\n<li>On pins 15 and 16, the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Display_Data_Channel\">Display Data Channel (DDC)<\/a>, an <a href=\"http:\/\/en.wikipedia.org\/wiki\/I\u00c2\u00b2C\">I\u00c2\u00b2C bus<\/a><\/li>\n<li>Stuff (5V power, hot plug detection, grounds, etc.) on remaining pins<\/li>\n<\/ul>\n<p><a href=\"http:\/\/blog.kwikwai.com\/wp-content\/uploads\/2010\/06\/HDMI_overview.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-107\" title=\"HDMI overview\" src=\"http:\/\/blog.kwikwai.com\/wp-content\/uploads\/2010\/06\/HDMI_overview.png\" alt=\"\" width=\"833\" height=\"515\" srcset=\"http:\/\/blog.kwikwai.com\/wp-content\/uploads\/2010\/06\/HDMI_overview.png 833w, http:\/\/blog.kwikwai.com\/wp-content\/uploads\/2010\/06\/HDMI_overview-300x185.png 300w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/a><\/p>\n<h3>Display Data Channel<\/h3>\n<p><a href=\"http:\/\/www.cepro.com\/article\/inside_hdmi_problems_with_the_display_data_channel\/\">Believed by some to be the source of all evil<\/a>, the Display Data Channel is a point to point connection between each device pair which allows the \u00e2\u20ac\u0153HDMI source\u00e2\u20ac\u009d to read the Extended <a href=\"http:\/\/en.wikipedia.org\/wiki\/Extended_display_identification_data\">Extended Display Identification Data<\/a> (E-EDID) describing the capabilities of the \u00e2\u20ac\u0153HDMI sink\u00e2\u20ac\u009d.<\/p>\n<p>In simpler terms, the DVD player (the source) figures out the resolution of the TV (the sink) by \u00e2\u20ac\u0153downloading\u00e2\u20ac\u0153 some information from the TV. DDC is the standard describing the \u00e2\u20ac\u0153download\u00e2\u20ac\u009d protocol and E-EDID the one describing the \u00e2\u20ac\u0153file\u00e2\u20ac\u009d format.<\/p>\n<p>This may all sound new and exciting but in fact the first versions of these standards were published more than 15 years ago by the <a href=\"http:\/\/www.vesa.org\/\">Video Electronics Standards Association (VESA)<\/a>. Plain old analog <a href=\"http:\/\/en.wikipedia.org\/wiki\/VGA_connector\">VGA connectors<\/a> <strong>already<\/strong> carry a DDC channel, which is used by the graphics card to \u00e2\u20ac\u0153auto-configure\u00e2\u20ac\u0153 itself in most cases to the monitor resolution and refresh rate. It is also used by <a href=\"http:\/\/en.wikipedia.org\/wiki\/Digital_Visual_Interface\">DVI<\/a>.<\/p>\n<p>The EDID standard allows for private extensions and one is defined in HDMI (hence the \u00e2\u20ac\u0153Enhanced-EDID\u00e2\u20ac\u009d moniker). The presence of this specific extension is in fact used by HDMI sources to detect if the sink is HDMI or DVI.<\/p>\n<h3>Consumer Electronic Control<\/h3>\n<p><a href=\"http:\/\/blog.kwikwai.com\/wp-content\/uploads\/2010\/06\/DDC_CEC.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-118\" title=\"DDC_CEC\" src=\"http:\/\/blog.kwikwai.com\/wp-content\/uploads\/2010\/06\/DDC_CEC.png\" alt=\"\" width=\"466\" height=\"227\" srcset=\"http:\/\/blog.kwikwai.com\/wp-content\/uploads\/2010\/06\/DDC_CEC.png 466w, http:\/\/blog.kwikwai.com\/wp-content\/uploads\/2010\/06\/DDC_CEC-300x146.png 300w\" sizes=\"auto, (max-width: 466px) 100vw, 466px\" \/><\/a><\/p>\n<p>Contrary to DDC which is point to point, CEC is shared between all devices in the HDMI \u00e2\u20ac\u0153tree\u00e2\u20ac\u009d (so it&#8217;s a bus), and should be interconnected between all inputs and one output of all devices, even those not implementing CEC.<\/p>\n<p>Messages are exchanged over CEC using logical addresses (\u00e2\u20ac\u0153TV\u00e2\u20ac\u009d, \u00e2\u20ac\u0153Player\u00e2\u20ac\u009d, etc.) and physical addresses (obtained from a DDC-based sing and dance).<\/p>\n<h4>Features<\/h4>\n<p>CEC is well suited to home installations. Some very nice features are a single button press away:<\/p>\n<ul>\n<li>System Standby: switches all devices to standby mode.<\/li>\n<li>One Touch Play: allows a device to be played and become the active source.<\/li>\n<li>One Touch Record: start a recording of the source that is being displayed on the TV<\/li>\n<li>System Audio Control : allows the volume of an AV receiver or amplifier to be controlled using the remote control of any device<\/li>\n<\/ul>\n<p>In theory, this should all work seamlessly across devices and brands, in a joyous worldwide universal harmony. In practice, there are discordances, some of them kwikwai can help diagnose and\/or alleviate. More on this in future posts.<\/p>\n<h3>Home automation applications<\/h3>\n<p>In addition to the features above (which an HA system can exploit), the CEC spec defines some additional messages that could prove useful:<\/p>\n<ul>\n<li>Status: query for the power status of a device<\/li>\n<li>Timer Programming: program the timer in recording devices<\/li>\n<li>OSD Display: transfer a text string to the TV for On Screen Display<\/li>\n<\/ul>\n<p>Arguably, some of these are very difficult to provide reliably with infrared&#8230;<\/p>\n<p>Stay tuned for more in future posts!<\/p>\n<p>In the meantime, the reader with time to spare is encouraged to peruse the complete HDMI 1.3a specification, which is available for free on the <a href=\"http:\/\/www.hdmi.org\/\">HDMI website<\/a>, once registered (and the source of the 2 diagrams above). The 1.4 spec is currently restricted to <em>HDMI adopters<\/em>, that is, paying members of the club.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a nutshell, an HDMI cable, through its 19 pins, carries: On pins 1 to 12, audio and video (A\/V) using 4 TMDS channels On pin 13, the Consumer Electronic Control (CEC) serial connection On pin 14, the HDMI Ethernet Channel (HEC), a 100Mbps Ethernet connection On pins 15 and 16, the Display Data Channel [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[9,14,8,4],"class_list":["post-47","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-cec","tag-ddc","tag-hdmi","tag-kwikwai"],"_links":{"self":[{"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=\/wp\/v2\/posts\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=47"}],"version-history":[{"count":81,"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=\/wp\/v2\/posts\/47\/revisions"}],"predecessor-version":[{"id":481,"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=\/wp\/v2\/posts\/47\/revisions\/481"}],"wp:attachment":[{"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=47"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=47"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.kwikwai.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}