From Texas Instruments Wiki
Jump to: navigation, search

VGA Adapters for OMAP-L137 EVM


As the OMAP-L137 EVM exposes the parallel LCD interface using an expansion connector a small interface board was required to convert the signals. Using a TFP410 DVI Transmitter it is quite easy to generate a DVI or HDMI suitable video interface. In our case we selected an HDMI connector. We can now connect LCD screens using HDMI to DVI cables or TVs with HDMI interface. Of course we can not transmit any audio data.

The adaptor is no available from Digkey (article nr. 906-1000-ND). Please see their web site for details.

LCD Panel Adapter

A second adapter was developed to connect an AUO 10.4 Inch Color TFT-LCD. The adapter does not contain any active logic. It just provides connectors that match the cabling required for the panel. It also has a supply connector and a variable resistor to control backlight intensity of the panel. As such an adapter has to be customized for the panel in use anyway we will not publish any schematics here.

Modifications for LCD driver to support VGA mode

Board setup changes

In order to provide enough memory I/O bandwidth for the LCD controller a modification to the bus master priorities was required. The default is a very low priority for the LCDC as in many systems without a display it might not be used at all. With VGA mode however it is required to set LCDC priority to 0 (highest). In addition the EDMA3 priority was decreased. The LCD interrupt priority was raised slightly too.

Changes are in the file <kernel_tree>/arch/arm/mach-da8xx/board-evm.c and function da8xx_evm_lcdc_init() and array da8xx_evm_default_priorities[].

Obviously such system optimizations might be adapted and tweaked for a specific application if additional critical timings come into play.

The changes in the above files are supported by additional register #define in <kernel_tree>/include/asm-arm/arch-davinci/hardware.h.

LCD driver mod

The LCD driver in <kernel_tree>/drivers/video/da8xx/ was extended to support multiple configurations. See the supplied ZIP including the driver sources and the Kconfig file for the Linux driver/video tree. The driver is configured using 'make menuconfig' and selecting appropriate options for the graphics drivers. The PSP default configuration does not build the display driver at all. A 'diff' file for a .config including the display driver versus the PSP default is attached.

Separate header files are available for each of the three configurations implemented:

Device Header file Resolution
QVGA Panel sharp_color.h 320x240
AUO VGA Panel auo_tftlcd.h 640x480 @ 52Hz
Generic VGA-DVI dvi_vga.h 640x480 @ 60Hz

Individual display timings are configured using definitions and structure setup appropriately. These may serve as examples for other panels and modes.

Modified driver sources (only valid for MontaVista based kernel)

Disclaimer: as this modified driver is not part of the PSP so far it is not fully system tested. Use at your own risk.

Application changes

In some applications using the frame buffer driver it was found that the display did not get updated as expected. It turned out that the frame buffer address returned from a mmap() function did not start with the pixel data. However it had the start of the palette buffer that is allocated by the driver in front of the pixel data. So programs were writing into the palette area causing wrong colors or blinking display. As a workaround we modified the return buffer by adding 32 bytes of palette offset before writing to the frame buffer. This was required for frame buffer test programs downloaded from the web as well as QT(tm) Embedded. The issue could not be observed with the XServer binaries that come with the MontaVista filesystem of the OMAP-L1 SDK/PSP.