S3C2440A驱动RGB TFT液晶屏的研究方案
S3C2440A驱动RGB TFT液晶屏的研究方案
1 引言
随着科技的进步,TFT LCD作为显示器件在各种嵌入式系统中得到越来越广泛的应用。带触摸屏的TFT LCD模组在系统应用中不仅能为人机界面提供高质量的画面显示,而且能提供更直观、方便的交互性输入。TMT035DNAFWU1是深圳天马微电子股份有限公司生产的8.89 cm(3.5 in)TFT LCD模组,该模组内置了LCD驱动器,集成了四线电阻式触摸屏和背光电路。S3C2440A 是三星公司设计的一款基于ARM920T内核的32位嵌入式RISC(reduced instructions set computer)微处理器,它的最高工作频率可达533 MHz,内部集成了通用的LCD控制器、8通道10位ADC和触摸屏接口,且具备高性能、低功耗的优点,适用于智能手机、便携式媒体播放器、手持导航仪等领域。本文基于S3C2440A嵌入式系统,以TMT035DNAFWU1为显示设备,设计了TFT LCD驱动电路,并完成Linux下驱动显示效果的调试。
2 TFT LCD接口时序
TMT035DNAFWU1的显示分辨率为320×240,采用24位数字RGB接口,可以显示16.7 M颜色。
RGB接口是为TFT LCD模组提供高品质显示而设计的接口,该接口可以高速、低功耗地完成动画显示,其中包含4个重要的控制信号VSYNC、HSYNC、DCLK 和VDEN,分别用于帧、行、像素的数据传输。
图1为TMT035DNAFWU1模组RGB接口时序示意图。
图1 RGB接口时序图
3 S3C2440A LCD控制器介绍
S3C2440A 内置的LCD控制器能将显示在LCD上的数据从系统内部的数据缓冲区通过逻辑单元传送到外部的LCD驱动器中。它可以支持不同分辨率的显示,如:640×480、320×240等,最大可支持24位数据的16.7 M 彩色TFT模块,其控制器框图如图2所示。
图2 S3C2440A LCD控制器框图
3.1 控制总框图
LCD控制器主要由REGBANK、LCDCDMA两大部分组成,用于产生必要的控制信号和传输数据信号,如图2所示。REGBANK有17个可编程寄存器组和256×16的调色板存储器,用来设定LCD控制器。LCDCDMA 是一个专用的DMA(Direct Memory Access),自动从帧存储器传输视频数据到LCD控制器,视频数据可以不经CPU处理直接显示在屏上。TIMEGEN 由可编程逻辑器件组成,产生VFRAME/VSYNC、VLINE/HSYNC、VCLK/DCLK、VM/VDEN信号等,以支持不同的LCD驱动器的接口时序和速率。LPC3600与LCC3600是专用LCD控制器,在此不做详细介绍。
3.2 TFT控制器介绍
通过对REGBANK 寄存器组中的LCDCON1/2/3/4/5进行配置,TIMEGEN产生可编程控制信号来支持不同类型的LCD驱动器。
VSYNC和HSYNC脉冲与LCDCON2/3的HOZVAL和LINEVAL设置相关,HOZVAL和LINEVAL的值由LCD屏的分辨率决定,如下公式:
HOZVAL=(Horizontal display size)-1 (1)
LINEVAL=(Vertical display size)-1 (2)
VCLK的频率取决于LCDCON1中CLKVAL的设置,在LCDCON1中配置,VCLK和CLKVAL的关系如下(CLKVAL的最小值是0):
VCLK(Hz)=HCLK/[(CLKVAL+1)×2] (3)
HCLK为S3C2440A 中PLL时钟发生器产生的时钟信号。
VSYNC的频率即为帧频,它与LCDCON1/2/3/4均有关,计算公式如下:
Frame Rate=1/{[(VSPW+1)+(VBPD+1)+(LINEVAL+1)+(VFPD+1)1×[(HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)]×[2×(CLKVAL+1)/(HCLK)]} (4)
公式(1)~(4)各参数数值的设置方法在§5.2中给出。
4 驱动电路设计
除数据传输信号接口外,TFT LCD模组的驱动电路还包括提供给模组的电源电路、VGL、VGH、VCOM 电压电路等。根据TFT LCD模组的接口和S3C2440A 内嵌的控制器输出管脚,完成LCD显示的控制线路设计。电路接口设计如图3所示。
VCOM 电压信号由TFT LCD模组上SOURCEDRIVER IC输出的POL信号提供。POL信号经过VCOM BUFFER电路,产生VCOM电压信号提供给TFT LCD模组。TFT LCD模组采用行翻转方式驱动,设计的VCOM BUFFER 电路能够完成VCOM电压的交流电压成分和直流电压成分的调节。通过调节VCOM BUFFER电路,使VCOM 中心点电压及其幅值达到应用的要求,有效地消除TFT LCD显示闪烁问题并改善显示质量。
5 Linux下驱动程序软件设计
5.1 帧缓冲设备
帧缓冲为Linux 2.2.XX以上版本内核中的一种驱动程序接口。该接口采用mmap系统调用,将显示设备抽象为帧缓冲区,允许上层应用程序在图形模式下直接对显示缓冲区进行读写和I/O控制操作。帧缓冲设备属于字符设备,采用“文件层-驱动层”的接口方式。
5.2 LCD驱动设计
TFT LCD驱动程序设计的主要工作包括:初始化S3C2440A 的LCD控制器LCDCON1~5,通过写寄存器设置显示模式和颜色数,然后分配LCD显示缓冲区。根据TMT035DNAFWU1接口时序及显示要求,屏幕显示分辨率Horizontal display size=320,Vertical display size=240,VCLK=6.4 MHz,而HCLK=133 MHz,故CLKVAL=9。缓冲区大小为:点阵行数×点阵列数×用于表示一个像素的比特数/8。缓冲区通常分配在大容量的片外SDRAM 中,起始地址保存在LCD控制寄存器中,需要分配的显示缓冲区为150 kB。最后是初始化一个fb_info结构,填充其中的成员变量,并调用fbmem.C里的register_framebuffer(struct fb_info *fb info)将fb_info登记入内核。
- 基于DSP的彩色TFT-LCD数字图像显示技术研究(05-05)
- 基于TPS65105 的TFT-LCD电源设计方案(06-10)
- 正确理解伽玛校正及其重要性(03-17)
- TFT-LCD玻璃基板制造方法(03-13)
- MAX8795A集成运算放大器 TFT-LCD DC-DC转换器(02-16)
- 液晶屏幕体积越小 污染越大(03-26)