OMAP3 Display Sub-system Capabilities
This page will be continually updated with more information, formats and methods so please check back often.
Please leave comments if you find it useful, or if you don't find it useful :)
- LCD connectivity
- Adding new DVI resolutions
- UserGuideDisplayDrivers PSP 03.00.00.05
- DSS2 SYSFS Examples
The OMAP3 family of devices contain a versatile and flexible hardware sub-system designed to display the contents of multiple frame buffers on various types of displays.
The parallel CMOS outputs can drive parallel LCD panels, LVDS transmitters for connection to LVDS LCD panels, DVI transmitters, HDMI transmitters, Display Port transmitters, analog RGB encoders, analog HDTV video encoders etc...
The output pixel frequency can be up to 75MHz, supporting various resolutions and frame rates. Below are some examples of the maximum frame rates achievable for various resolutions.
The analog TV output can be configured to directly drive either S-Video or CVBS video in any of the world wide video standards such as PAL, NTSC etc...
Image source formats
The display sub-system can take image data from the frame buffer and convert it from various formats into an RGB format suitable for outputting to either the parallel CMOS outputs or to the analog video encoder (VENC).
The source frame buffers can be in any of the following formats.
|Bits per pixel||Format|
|12||RGB unpacked 16 bit container (x444)|
|12||RGB packed (444)|
|24||RGB unpacked 32 bit container (x888)|
|24||RGB packed (888)|
|16||YUV2 4:2:2 co-sited|
|16||UYVY 4:2:2 co-sited|
Putting them together
There are three processing pipes which can be configured and connected between the frame buffers and the outputs. One pipe is a graphics pipe and the other two are video pipes.
The Graphics pipe is able to process color indexed frame buffers as well as RGB frame buffers but cannot scale the images it processes.
The video pipes cannot process color indexed frame buffers, but can process YUV frame buffers and additionally scale the image data between 1/4x and 4x.
The outputs from the three processing pipes can then be combined to generate a final output. Each pipe can only be used by one output at a time, but any output can use any of the processing pipes.
For example, the LCD output could display video from the video 1 pipe with a graphics OSD overlaid from the graphics pipe. This would leave the video 2 pipe to display a different output on the TV display. Note that it is not possible to have the graphics display add the OSD on both the LCD output and the TV output at the same time.
Note... One output drives the LCD controller and the othe output drives the analog TV out, so whilst it is possible to drive two completely independent displays, one MUST be the analog TV output.
Below are some examples of possible processing pipe and output path configurations...
- The source image does not need to fill the destination output display.
- The source image can be clipped
- The same frame buffer can be used for more than one processing pipe,hence be displayed on both outputs. (This requires 2 pipes to be used though)
- Different parts of the same buffer can be displayed at different positions/scales on each of the outputs.
Where the output images overlap it is possible to blend between them or color key between the two images.
OMAP3 Display Sub-system Connectivity
Having all these great capabilities for generating blended, scaled, rich images does no good unless you can actually see them. Thankfully it is extremely simple to generate various signal formats such as DVI, analog, Display Port etc... for connecting to either captive displays (such as an integrated LCD on a media player) or standard external displays (such as a Display Port monitor connected to a micro PC).
Three basic output types are supported.
- Parallel CMOS
- Serial displays
- Analog TV output
The parallel CMOS outputs can further be divided into RFBI mode and raster mode.
The parallel CMOS port can be used to connect to a multitude of display devices such as DVI, HDMI, LVDS, analog etc...Below are some example connectivity options when in raster mode using the parallel CMOS outputs.
For more information on connecting OMAP 2 & 3 devices to various LCD types through the parallel CMOS interface please continue reading LCD connectivity.
Configuring the software
Once the hardware is connected correctly it is necessary to configure your software correctly in order to provide the LCD panel with the timing and data it requires. In the case of analog video, DVI/HDMI and display port there are standards governed by organizations such as VESA which determine exactly what the timings should be for given resolutions and refresh rates. This timing information should be programmed into your particular operating system's kernel. If you are not using an operating system then it is necessary to configure the hardware yourself and you should refer to the appropriate technical reference manual for exact details.
Most LCD panels of a given resolution will accept a wide range of timings which will overlap with their corresponding VESA timings. For example, an 800x600 LVDS LCD will be able to take the exact same timing information as the corresponding analog or DVI 800x600 video mode.
For more information on adding new video modes and timing information to Linux please check out Adding new DVI resolutions. This methodology can be used for all output configuration including Display Port, analog video and LVDS LCDs, and does not just apply the DVI.
Serial displays are not currently supported but may be added at a later date.
Analog TV output
The analog TV output can be configured for either CVBS video or for better quality S-Video.
CVBS uses the traditional single output connection and is usually the yellow RCA connector on most home AV equipment and TVs.
S-Video uses 2 signals to carry the luma and chroma information each on a separate wire. The connector used for S-Video is actually a 4 pin small round connector. This connector is much less common on A/V equipment and TVs but provides significantly better image quality on a TV.
Component video is not supported through the analog outputs.
Throughout the world there are various variations on the actual signal encoding used for analog video. The most known standards are PAL and NTSC, but even within each of these two primary formats there are subtle variations such as PAL-B, PAL-G, NTSC-J etc... Each country typically only uses one of the standards for their national broadcasts but it is becoming more and more popular for A/V equipment and TVs to accept more than one standard, typically NTSC and PAL. A third format called SECAM is also used in Europe and many parts of Russia but this encoding scheme is fundamentally different to PAL and NTSC, which share similar characteristics.
OMAP devices do not support the SECAM encoding scheme.
Please reference the following application note for further information on the hardware requirements and limitations for using the OMAP3 analog video encoder module.