{"id":494,"date":"2014-03-01T15:26:24","date_gmt":"2014-03-01T21:26:24","guid":{"rendered":"http:\/\/mikesmods.com\/mm-wp\/?p=494"},"modified":"2015-03-09T19:43:09","modified_gmt":"2015-03-10T00:43:09","slug":"weekend-reverse-engineer-passive-displayport-adapter","status":"publish","type":"post","link":"http:\/\/mikesmods.com\/mm-wp\/?p=494","title":{"rendered":"Weekend Reverse-Engineer: Passive DisplayPort Adapter"},"content":{"rendered":"<p>Displayport adapter dongles are ubiquitous, now that DisplayPort is becoming more and more prevalent in desktop video cards.\u00a0 I probably have at least a half-dozen of them, connected to machines or stuck in junk drawers.\u00a0 You plug them in, and they work.\u00a0 Simple.<\/p>\n<p>You are probably aware that there are two different adapter families, passive and active.\u00a0 The former is cheaper but is limited in the number of adapter that can be used on a single GPU; the latter is more expensive but has no such limitation.\u00a0 So there must be something different going on inside.\u00a0 But does &#8220;passive&#8221; mean here what it means in traditional electronics, that the conversion requires no transistors or ICs or other &#8220;active&#8221; components?\u00a0 (For a formal definition of passive vs active, see this\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Passivity_%28engineering%29#Incremental_passivity\">Wikipedia article<\/a>)<\/p>\n<p>Before we answer that question, let&#8217;s back up a bit.\u00a0 Backward compatibility is an important factor in the success or failure of many new technologies.\u00a0 In the case of DisplayPort, if it was meant to displace DVI and HDMI on the desktop platform as its creators intended, it would need to support legacy equipment.\u00a0 The problem was that DisplayPort is a very different platform than DVI.\u00a0 Whereas moving from DVI to HDMI is fairly painless since both schemes use the same signaling standard, DisplayPort more closely resembles PCI Express than DVI.\u00a0 So &#8220;something&#8221; has to go in the middle, to convert from one standard to the other.\u00a0 And in the most basic form, this is what an active adapter does &#8211; it takes in native DisplayPort signals, decodes them, and converts them to DVI\/etc.\u00a0 But that signal processing is complex, and adds cost to the system, which impedes adoption for some markets.\u00a0 For more cost-conscious applications, an alternate scheme was created &#8211; Dual-Mode DisplayPort.<\/p>\n<p>In Dual-Mode DisplayPort, or DP++, the DisplayPort source (typically, a GPU) can be requested to output raw TMDS data, instead of normal DisplayPort data packets.\u00a0 The data that comes out of the GPU looks electrically like DisplayPort, but the data is in DVI format.\u00a0 A DVI monitor can&#8217;t directly use the electrical signaling format of DisplayPort, so a low-cost level shifter is required in the middle.\u00a0 You may now realize that we&#8217;ve answered our original question &#8211; in fact, a passive DisplayPort to DVI adapter does require active circuitry.\u00a0 In this case, Passive refers to the fact that the video data is not mangled in any way, whereas active adapters decode and then re-transmit the video stream.\u00a0 DP++ enables very low-cost adapters because the logic is simple, with all the heavy lifting being integrated (cheaply) into the GPU.<\/p>\n<p>So enough talk.\u00a0 Now that we know what&#8217;s going on, let&#8217;s take a look at a passive DisplayPort adapter:<\/p>\n<div id=\"attachment_504\" style=\"width: 210px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/mikesmods.com\/mm-wp\/wp-content\/uploads\/2014\/03\/Passive_DP_Adapter_PCB.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-504\" class=\"size-medium wp-image-504\" alt=\"A passive DisplayPort to DVI adapter, with its casing and potting removed.  I've removed and re-installed components for testing prior to taking this photo.\" src=\"http:\/\/mikesmods.com\/mm-wp\/wp-content\/uploads\/2014\/03\/Passive_DP_Adapter_PCB-200x300.jpg\" width=\"200\" height=\"300\" srcset=\"http:\/\/mikesmods.com\/mm-wp\/wp-content\/uploads\/2014\/03\/Passive_DP_Adapter_PCB-200x300.jpg 200w, http:\/\/mikesmods.com\/mm-wp\/wp-content\/uploads\/2014\/03\/Passive_DP_Adapter_PCB-682x1024.jpg 682w, http:\/\/mikesmods.com\/mm-wp\/wp-content\/uploads\/2014\/03\/Passive_DP_Adapter_PCB-624x936.jpg 624w, http:\/\/mikesmods.com\/mm-wp\/wp-content\/uploads\/2014\/03\/Passive_DP_Adapter_PCB.jpg 1000w\" sizes=\"(max-width: 200px) 100vw, 200px\" \/><\/a><p id=\"caption-attachment-504\" class=\"wp-caption-text\">A passive DisplayPort to DVI adapter, with its casing and potting removed. I&#8217;ve removed and re-installed some components for testing prior to taking this photo.<\/p><\/div>\n<p>As you can see, there is one large IC on top, which predictably handles most of the functionality of the adapter &#8211; this is the previously-mentioned DisplayPort-to-TMDS level shifter.\u00a0 These parts are available from a number of manufacturers &#8211; there are options from <a href=\"http:\/\/www.ti.com\/lit\/ds\/symlink\/sn75dp139.pdf\" target=\"_blank\">TI<\/a>, <a href=\"http:\/\/datasheets.maximintegrated.com\/en\/ds\/MAX9406.pdf\" target=\"_blank\">Maxim<\/a>, <a href=\"http:\/\/www.nxp.com\/documents\/data_sheet\/PTN3361B.pdf\" target=\"_blank\">NXP<\/a>, and many others.\u00a0 This unit happens to use a Pericom <a href=\"http:\/\/www.pericom.com\/assets\/Datasheets\/PI3VDP411LS.pdf\" target=\"_blank\">PI3VDP411LS<\/a>.\u00a0 The competition and the high volumes of these parts have had a favorable effect on the price; the &#8216;411 can be had from several distributors for less than $1.50 in qty 1.<\/p>\n<p>The rest of the components are primarily support components for the main level shifter IC.\u00a0 There is a <a href=\"http:\/\/www.saiertong.com\/files856985665897965\/productpdf\/2014-1-17\/183612173.pdf\" target=\"_blank\">10A45<\/a> charge pump to generate 5V for the attached monitor (per DVI spec) from the 3.3V available from the DisplayPort, and there is a 2N3904 transistor to switch the level shifter on when a signal is received on the HPD pin.\u00a0 The rest are passives, mostly resistors and capacitors and one or two ferrite beads or little inductors for noise suppression.\u00a0 I&#8217;ve transcribed the design into a schematic, which you can download here:<\/p>\n<ul>\n<li><a href=\"http:\/\/mikesmods.com\/mm-wp\/wp-content\/uploads\/2014\/03\/Commercial_DP2DVI_Adapter.pdf\">Commercial DP2DVI Dongle Schematic (52K PDF)<\/a><\/li>\n<\/ul>\n<p>It&#8217;s missing a few values, mainly because I was too lazy to pull all the components off the board to measure them and I couldn&#8217;t satisfactorily do it in-circuit.\u00a0 Most of the unmarked capacitors are going to be 0.1uF or 0.01uF decoupling capacitors for the level shifter.<\/p>\n<p>I don&#8217;t have an active converter to tear down as well to show the differences.\u00a0 What I can say is that the internals will look similar, but they will operate very differently.\u00a0 As noted above, the complexity involved in decoding and re-transmitting the signals in an active adapter is very different than the simple level shift operation of the passive adapter.\u00a0 Regardless, it will probably be implemented as a single IC, albeit possibly a larger one with more support components.<\/p>\n<p>I suppose that&#8217;s enough rambling on this topic.\u00a0 Hopefully this all makes sense!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Displayport adapter dongles are ubiquitous, now that DisplayPort is becoming more and more prevalent in desktop video cards.\u00a0 I probably have at least a half-dozen of them, connected to machines or stuck in junk drawers.\u00a0 You plug them in, and they work.\u00a0 Simple. You are probably aware that there are two different adapter families, passive [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=\/wp\/v2\/posts\/494"}],"collection":[{"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=494"}],"version-history":[{"count":13,"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=\/wp\/v2\/posts\/494\/revisions"}],"predecessor-version":[{"id":581,"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=\/wp\/v2\/posts\/494\/revisions\/581"}],"wp:attachment":[{"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=494"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mikesmods.com\/mm-wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}