Electrical – How to connect a frame buffer to an LCD monitor through DisplayPort or DVI in an integrated system

connectordisplaygraphicsledmicrocontroller

I would first like to state that I am primarily a software engineer. While I have spent 14ish hours researching this so far, I apologize in advance if I miss a core concept or use incorrect terminology. Feel free to correct me if I do!

I am currently working on an electrical generator that is run by an integrated main micro controller. Right now I am displaying the user interface with a simple display module over a serial connection, but it will eventually need to be able to connect to a commercial LCD monitor.

Most modern monitors have HDMI, DVI, and DisplayPort inputs. HDMI requires a royalty for it's use in a commercial project, so it's not an option.

Going forward I am working under a 4 component model.

Main micro —> Frame Buffer —> Display Controller —> Monitor

I will have a main micro that writes 24bit RGB values to a frame buffer. The display controller will then pull a frame of those values, process them, and send them to the display.

Writing the values from the micro to the buffer will be no problem. It's from that point I am not sure how to proceed. When googling for display controllers online, I can find none that will output to DisplayPort or DVI on their own. Most of them have 24 outputs for each color bit as well as a few other important things for an LCD screen such as horizontal and vertical sync and a clock output. Page 731 on (http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf) is a good example.

No where on the internet have I been able to find a way to put that sort of output on a DisplayPort or DVI wire so that it can connect to a normal display. I've found such little information that I fear I might be missing something very fundamental about one of these concepts.

Is there something I am missing, is this just not possible for some reason, or am I simply not searching the right terms?

At the end of the day, I really just need to get a frame of RGB values from a chunk of RAM onto a normal 720p monitor, so if anyone knows a better way to go about this then I would be happy to hear those suggestions as well.

Best Answer

Displayport/DVI/HDMI are pretty much variations on a theme (That theme being very fast LVDS signalling, think Gb/s on each pair), and if the micro does not have a suitable port directly, the usual answer is a small FPGA with some DDR to hold the frame buffer interfaced to the micro over some suitable interface. This is a pain in the arse if you do not do FPGAs as while it may look like programming, it is really not.

I would suggest that the smart approach for this sort of thing is to cheat, put an ethernet port on your machine and use a tablet/laptop/phone with a web browser as the interface for anything that you cannot run from a local SPI driven display. Something with a web browser is probably more readily available then a monitor, and you want ethernet anyway so you can do SNMP for status and control. Web development types are ten a penny compared to VHDL folks for video interfaces, and your micro probably already has a IP stack/web server/SNMP server ported to it.