Displayport adapter dongles are ubiquitous, now that DisplayPort is becoming more and more prevalent in desktop video cards. I probably have at least a half-dozen of them, connected to machines or stuck in junk drawers. You plug them in, and they work. Simple.
Last week at work, we had a discussion about implementing DisplayPort to DVI conversion in one of our products. I suggested that the conversion might be quite simple – I mean, there exist “passive” DisplayPort to DVI dongles and “active” DisplayPort to DVI dongles. Surely the “active” ones do something to the signal, but “passive” means no active components, right? …right?
Well, it turns out I couldn’t be more wrong. After a reality check by a fellow engineer and a little bit of destructive evaluation, I have now been reeducated in the inner workings of DisplayPort to X conversion. I’ve decided to post my mistake here, in hope that it saves someone else the embarrassment of looking dumb to their coworkers.
“Passive”. This basic word has a particular meaning in the context of electronics. Wikipedia notes that passive components “can’t introduce net energy into the circuit. They also can’t rely on a source of power, except for what is available from the (AC) circuit they are connected to.” This is in opposition to “Active” components, which “rely on a source of energy (usually from the DC circuit [...]) and usually can inject power into a circuit”. Semiconductors are always classified as Active devices; resistors and capacitors are Passive components.
So what is the junior engineer to expect when he sees a device which comes in both “active” and “passive” flavors? Naturally I assumed that the passive adapters were more-or-less a passthrough connector swap. I was well aware of Dual Mode DisplayPort (or DP++), and assumed that the electrical conversion was taken care of on the video card. Even the Wikipedia article is somewhat vague on what actually goes on inside a passive adapter, stating the port “can directly output single-link HDMI and DVI signals using a simple passive adapter that adjusts from the different connector and the lower voltages used by DisplayPort.” Different connector, sure, that makes sense. But the lower voltage part, what to make of that?
Let’s back up a bit and look at the DVI and DisplayPort signaling specifications. Per DVI Specification 1.0, DVI is a ground-referenced differential transmission system. DVI transmitters work on a rail voltage of 3.3V with respect to ground, with logic “High” corresponding to 3.3V, and logic “Low” corresponding to between Vhigh-0.6V to Vhigh-0.4V – or 2.7 to 2.9 V (page 35-36 of spec). While the (+) and (-) components of each differential pair carry opposite logic levels to one another, they are both DC biased to a couple volts above ground.
DisplayPort, on the other hand, is AC-coupled from the source. Although its signal swing is also around 0.4V, it has no DC offset (e.g. it is centered on 0V, instead of DVI’s ~3V). This is typically accomplished using series capacitors on the video card.
It should be clear that an AC-coupled 400mVPP signal cannot be converted to a DC-coupled 400-600mVPP signal riding on a 2.9V offset without something intervening in the middle. Thus, even for a “passive” adapter, active circuitry is required to handle the level-shift.
To investigate exactly how the conversion is done, I took a knife to a commercial passive DisplayPort to DVI adapter. Inside the casing was the board seen above. As you can see, most of the conversion appears to be handled by a single large IC. In fact, this is the case with most (all?) adapters of this kind. When DP++ was released, many of the major silicon manufacturers realized there would be a healthy market for single-chip DisplayPort-to-x level shifter solutions; as such, there are parts that perform this function from TI, Maxim, NXP, and many others. This unit happens to use a Pericom PI3VDP411LS. The competition and the high volumes of these parts have had a favorable effect on the price; the ’411 can be had from several distributors for less than $1.50 in qty 1.
The rest of the components are primarily support components for the main level shifter IC. There is a 10A45 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. The rest are passives, mostly resistors and capacitors and one or two ferrite beads or little inductors for noise suppression. I’ve transcribed the design into a schematic, which you can download here:
It’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’t satisfactorily do it in-circuit. Most of the unmarked capacitors are going to be 0.1uF or 0.01uF decoupling capacitors for the level shifter.
So then, you ask, if all adapters require active components, just what the heck do Active adapters do different? Well, inquisitive reader, that’s a simple answer, but it requires a bit more background information. DVI, as a much older standard, transmits data in a much simpler way than DisplayPort. Single-link DVI has three data pairs and a clock pair. Each of the data pairs transmits the information of one color – red, green or blue. In general (excepting when HDCP is enabled), this data is sent in more-or-less raw form, in an 8b/10b transition minimized differential signaling (TMDS) data stream. Using simple rules to reverse the 8b/10b encoding, this can be translated directly into raw 8-bit color values. Single-link DVI runs at a maximum clock rate of 165MHz, with one 8-bit pixel color transmitted on each pair per clock. This makes the maximum throughput of single-link DVI 3.96Gbps (165M*8*3). (Dual-link DVI raises the clock rate and doubles the number of pairs for greatly increased bandwidth)
DisplayPort, on the other hand, takes a lot of cues from the more contemporary PCI Express. Similar to PCIe, DP can be transported on a variable number of lanes, either 1, 2 or 4 (although unlike PCIe, it has no dedicated clock pair). The data is transmitted in packets, which may contain pixel data but also can carry audio stream data or other types of information. Packets are addressable, which enables the daisy-chaining of devices – each one only listening to packets intended for itself. Any lane may and does carry all types of data, as the packets are assigned sequentially to the lanes. The data is still 8b/10b encoded, but is no longer TMDS. It runs at 1.6 to 5.4 Gbps per lane, with real data throughput of 1.3 to 4.3Gbps per lane; across a 4-lane link, this equates to an aggregate throughput of over 17Gbps.
Clearly the two standards are very different, and normally quite incompatible. In a world with millions of DVI devices, and with competitor HDMI offering backward-compatibility with these devices, DisplayPort would be dead in the water without a simple, inexpensive way to support legacy displays. To address this, VESA (DisplayPort’s standards organization) added “Dual-Mode” operation to the specification, which allow the video device to output DVI-compatible raw pixel data over three of its DP lanes, and a clock signal on the other. Add a simple level-shifter to offset the data and drive it appropriately, and you have a very convincing DVI output. This is the Passive adapter.
An active adapter, on the other hand, does not need the video card to output a special signal. It takes in native DisplayPort and converts the data itself, outputting a completely different signal on the other end. Internally, it receives and decodes the DisplayPort packets, reconstructing the video signal in a format usable by the sink device.
This distinction leads to a couple of trends. First, active adapters tend to be more expensive than passive adapters. This is a simple result of the difference in complexity between the two (see the above comparison of internal structure). Second, due to the limited number of lanes in DisplayPort and the data capable of being carried over them, it is only possible to make ‘single-link’ DVI/HDMI dongles in passive form – dual-link dongles, or those with any other video format as an output (e.g. VGA) are necessarily active. It also sheds light on an oft-lamented problem with passive adapters – that there is generally a limit of two per GPU. Usually the reason given is ‘because there are only two clock generators on the card’. Knowing now that in DP++ mode the card must generate a stable clock pair for each DVI output it is driving, this limitation makes more sense (although why more clock generators are not included is still not clear to me, nor why the otherwise reconfigurable outputs can’t be configured to output a clock at one tenth the pixel clock rate…)
I don’t have an active converter to tear down as well to show the difference, but suffice it to say that the internals will look similar but operate quite differently. These are low-cost devices and typically have a high degree of integration, so they’ll still usually be realized with one main IC. As the diagram above shows, though, the internals work in very different ways.
So there you have it. Passive DisplayPort dongles contain active circuitry, but don’t do anything to the signal other than level-shift it. Active DisplayPort dongles contain different active circuitry which decodes the signal and constructs a new signal on the output. Remember that, and don’t look stupid in conversation like I did!