The appeal of adding a full colour TFT LCD display to your embedded design is obvious. What’s less obvious is how to implement it.
TFT LCD display modules today come in a wide variety of interfaces, including RGB, LVDS, SPI, and Parallel MCU. Each interface places different demands on your system’s host processor and memory resources – and your design-in time.
For the most resource-constrained systems, directly driven modules can optimize system resources and allow fine control over display characteristics, while for the developer new to TFT displays, intelligent LCD modules exist which present an easy to use object-oriented API, making it easy to get started right away.
The most basic display module interface is RGB. These modules have no integrated LCD controller and must be driven directly through an interface consisting of a 24-bit parallel bus controlling RGB colour values, as well as timing signals including HSYNC and VSYNC.
RGB is a low-level interface that provides direct and complete control over display characteristics, but requires significant system resources and processing power. To drive a display with an RGB interface, a frame buffer is needed to keep the display refreshed in order to maintain the image. Frame buffers take up a significant amount of memory. With each pixel taking up to 24 bits (depending on colour depth), even a small 320×240 resolution display uses as much as 230kB.
If the display is driven directly by the MCU, a high-speed processor is required. To maintain the image, the display must be refreshed from the frame buffer at a refresh rate, usually from 30Hz to 60Hz. The memory bandwidth required to update even modestly sized displays at these rates is quite large, and unavailable to the system for other use.
To mitigate these issues, TFT LCD modules with RGB interfaces should usually not be driven directly by a general purpose MCU, but by an LCD controller, either discrete, or integrated into the MCU. The LCD controller houses its own memory for the frame buffer and interfaces with the display on a dedicated bus.
Low-Voltage Differential Signalling (LVDS) is a fast, serial interface that uses differential signalling for fast speeds and EMI resistance. Because of its EMI resistance, LVDS is suitable for systems where the display is located a distance from the graphics controller, such as notebook computers.
LVDS achieves EMI resistance as it drives mirror-image voltages through a twisted-pair cable. Since the cable contains a balanced, differential signal, induced EMI appears across both conductors. This makes noise signals self-cancelling.
As a serial interface, LVDS reduces pin count on the module side compared to RGB interfaces, allowing for smaller, thinner display connectors. With an LVDS display module, each colour is transmitted by two pins, instead of up to 8, as with RGB. Along with the EMI resistance, this allows for smaller, more robust cables and connectors.
Compared to RGB, LVDS requires more board level components to convert display signals from an MCU or LCD controller to the proper format for differential signalling, but it is more EMI resistant, and suitable for applications where the graphics controller and display are located separately.
Display modules with a parallel MCU interface offer a more user-friendly approach to TFT display development. In this case the display itself has an integrated LCD controller.
Using a parallel MCU interface such as i80 for Riverdi modules with the SSD1963 controller, the host processor can send image data asynchronously to the display module. The display module has its own 1215kB of frame buffer memory to maintain an image up to 864 x 480 at 24-bit colour depth, without requiring regular updates from the host processor.
Figure 1: Riverdi’s uxTouch LCD TFT displays
In addition, the SSD1963 controller featured on Riverdi displays has low level commands to simplify common display tasks, as well as built-in graphics transformations including scrolling, windowing, and rotation.
Using a display module with built-in LCD controller greatly simplifies display development, freeing designers from having to worry about the details of timing requirements and pixel-level updates with every screen refresh. In addition, since the LCD controller has its own frame buffer memory and dedicated bus to the display, it greatly reduces requirements on the host system’s processor and memory resources.
Intelligent LCD Controller
Perhaps the easiest way to integrate a full colour TFT display module today is through Riverdi’s intelligent display modules. These displays feature an integrated FTDI FT8xx series graphics engine. The EVE engine, as it is known, has a low pin count SPI interface to the host MCU and has a high-level API which allows users to draw complex user interfaces using an object-oriented approach.
Instead of requiring pixel-level direction on the part of the designer, the EVE engine has graphical objects which can be configured as needed to form images and interfaces. Users can easily create graphics primitives such as lines, circles, rectangles, and can just as easily create sophisticated graphical objects such as graphs, text, sliders, dials, windows, buttons and more. Each of the objects can be configured in terms of colour, size, position, and more.
The FT8xx chips feature an integrated resistive touch controller or interface for capacitive touch screen controllers.. The touch and graphical engine is integrated allowing interface objects such as dials, sliders, and buttons can be associated with touch events in an object-oriented way, simplifying touch detection without having to scan for pixel values. Along with an integrated audio controller with polyphonic tones, sophisticated user interfaces can be created quickly and easily.