Driving Graphic LCDs with an FPGA


I'm specifically talking about LCD screens with drivers but no controller, which means that they must be constantly refreshed by control circuitry. Having built-in drivers means that you don't have to provide circuitry to switch the weird voltages that the actual elements need. These screens are available from surplus electronics places and, for a (much) higher price, new from the usual suppliers.

These displays require almost the same signals as a VGA monitor, with a few differences:

  • LCD screens require a dot clock for the column driver (which is a shift register connected to level shifters). A CRT doesn't need this since the pixels are scanned by continuously moving the electron beam.
  • The interface is entirely digital, usually some form of TTL. Pixel data is sent in parallel, usually one pixel at a time. CRTs use an analog input because that's easier (the signal usually goes from the VGA connector to the drive amplifiers, maybe with a switch for OSD in the path).
  • You must supply power to the LCD screen, which often includes a negative voltage. Some screens have the negative supply built-in, and only require +5V or +3.3V.

LCD screens are raster-scan just like CRTs, but the scan rate can be completely different and is dependent on the size of the screen.