S3C2440 LCD控制器描述

来源:互联网 发布:金融lse本科知乎 编辑:程序博客网 时间:2024/05/01 17:00

S3C2440 LCD控制器描述

ARM嵌入式 2010-06-04 11:35:19 阅读81 评论0   字号: 订阅

系统结构框图

S3C2410 TFT LCD显示原理分析 - meteora - METEORA s BLOG

 LCD控制器系统框图:

S3C2440 LCD控制器描述(原创) - dd412 - dd412的博客

 REGBANK有17个可编程寄存器和256×16的调色板存储器,用来设定LCD控制器。LCDCDMA是一个专用DMA,自动从帧存储器传输视频数据到LCD控制器,用这个特殊的DMA,视频数据可不经过CPU干涉就显示在屏幕上。VIDPRCS接受从LCDCDMA来的视频数据并在将其改变到合适数据格式后经VD[23:0]将之送到LCD驱动器,如4/8单扫描或4双扫描显示模式。TIMEGEN由可编程逻辑组成,以支持不同LCD驱动器的接口时序和速率的不同要求。TIMEGEN产生VFRAME、VLINE、VCLK、VM信号等。

数据流描述如下:FIFO存储器位于LCDCDMA。当FIFO空或部分空时,LCDCDMA要求从基于突发传输模式的帧存储器中取来数据,存入要显示的图像数据,而这个帧存储器是LCD控制器在RAM中开辟的一片缓冲区。当这个传输请求被存储控制器中的总线仲裁器接收到后,从系统存储器到内部FIFO就会成功传输4个字。FIFO的总大小是28个字,其中低位FIFOL是12个字,高位FIFOH是16个字。S3C2410有两个FIFO来支持双扫描显示模式。在单扫描模式下,只使用一个FIFO(FIFOH)。

输出信号分析

 VFRAME/VSYNC:LCD控制器和LCD驱动器之间的帧同步信号。该信号告诉LCD屏新一帧开始了。LCD控制器在一帧显示完成后立即插入一个VFRAME信号,开始新一帧的显示。

VLINE/HSYNC:LCD控制器和LCD驱动器之间的行同步脉冲信号。该信号用于LCD驱动器将水平线(行)移位寄存器的内容传送给LCD屏显示。LCD控制器在整行数据移人LCD驱动器后,插入一个VLINE信号。

VCLK:LCD控制器和LCD驱动器之间的像素时钟信号。LCD控制在VCLK的上升沿处送出数据,LCD驱动器在VCLK的下降沿处采样。

VM/VDEN:LCD驱动器的AC信号。VM信号被LCD驱动器用于改变行和列的电压极性,从而控制像素点的显示。VM信号能够和每帧同步,也能够和可变数据的VLINE信号同步。

VD[23:0]:LCD像素数据输出端口。

LCD_PWREN:LCD使能信号。如果外接的LCD有开/关等类似管脚的话,可以与这个信号连接。这个信号的输出值受ENVID控制,即LCDCON1的第0位。

时序分析

     需要注意的是:在帧的领域里,我们所说的周期单位是一行;而在行的时候,我们所说的周期单位是VCLK时钟周期。以240*320的屏为例,一个VCLK周期传输一组VD信号,从而给一个像素着色。要点亮一行,那么要有240个VCLK周期将240个pixel的VD值输出,而且这240个周期内 VDEN应该一直是有效的。现在我们的思路从点扩展到了行,理想情况下,两行之间不需要间隔,也就是说这一行结束马上传输下一行的第一个pixel的 VD。但是这样做并不好,因为一个点的偏差会造成满盘皆输。因此我们引入了行同步HSYNC信号,也就是说在传输完一行的数据后,先歇一会儿,等待若干个时钟(我们称之为后插入等待周期);然后我们送一个行同步信号,当然这个信号的有效周期数我们也能控制(我们称之为同步周期);之后呢,我们在等一会,让 LCD驱动电路准备好接收,我们在把一行的数据发下去(这个等待时间我们称之为前插入等待周期)。下图为证:

S3C2410 TFT LCD显示原理分析 - meteora - METEORA s BLOG

 

    从图中我们可以看到:HSPW+1、HBPD+1、HFPD+1就是我们分别定义了同步周期、前插入等待周期、后插入等待周期。而HOZVAL+1则是一行的有效象素数目。这些都可以在寄存器里面进行设置。说完行与行之间的显示,我们就可以扩展到帧与帧之间的显示。我们很容易想到,在帧的领域里面也应该是类似于行的结构,同样包含了同步周期、前插入等待周期、后插入等待周期。上图为证:

经过上述的分析,我们可以把TFT LCD的接口归纳到8个参数上:HSPW、HBPD、HFPD、HOZVAL、VSPW、VBPD、VFPD、LINEVAL。另外,通过上述分析,我们可以看到,显示一帧图像总共需要的VCLK周期为:(HSPW+HBPD+HFPD+HOZVAL+4)*(VSPW+VBPD+VFPD+ LINEVAL+4),VCLK是可调的,因此通过选择适当的分频比保证帧率在60Hz左右就可保证液晶的正常工作了。

LCD可编程寄存器

1.LCDCON1

LINECNT:行计数器的状态位。只读,不用配置。

CLKVAL:确定VCLK频率的参数。公式为VCLK=HCLK/[(CLKVAL+1)×2],单位为Hz。笔者所用的硬件系统HCLK=100 MHz,640×480的显示屏需要VCLK=20 MHz,故需配置CLKVAL=1。

MMODE:确定VM的改变速度。在此选择MMODE=O,为每帧变化模式。PNRMODE:确定扫描方式。选择PNRMODE=0x3,为TFT LCD面板扫描模式。BPPMODE:确定BPP(每像素位数)模式。在此选择BPPMODE=0xC,为TFT 16位模式。ENVID:数据输出和逻辑信号使能控制位。选择ENVID=1,为允许数据输出和逻辑控制。

2、LCDCON2

VBPD:确定帧同步信号和帧数据传输前的一段延迟时间,是帧数据传输前延迟时间和行同步时钟间隔宽度的比值。

LINEVAL:确定显示的垂直方向尺寸。公式:LINEVAL=YSIZE-1=479。

VFPD:确定帧数据传输完成后到下一帧同步信号到来的一段延迟时间,是帧数据传输后延迟时间和行同步时钟间隔宽度的比值。

VSPW:确定帧同步时钟脉冲宽度,是帧同步信号时钟宽度和行同步时钟间隔宽度的比值。

3、 LCDCON3

HBPD:确定行同步信号和行数据传输前的一段延迟时间,描述行数据传输前延迟时间内VCLK脉冲个数。

HOZAL:确定显示的水平方向尺寸。公式HOZAL=XSIZE-1。

HFPD:确定行数据传输完成后到下一行同步信号到来的一段延迟时间,描述行数据传输后延迟时间内VCLK脉冲个数。

4、 LCDCON4寄存器

HSPW:确定行同步时钟脉冲宽度。描述行同步脉冲宽度时间内VCLK脉冲个数。

5、LCDCON5寄存器

VSTATUS:垂直方向状态。只读,不用配置。

HSTATUS:水平方向状态。只读,不用配置。

BPP24BL:确定显示数据存储格式。此处配置BPP24BL=0x0,为小端模式存放。

FRM565:确定16位数据输出格式。此处配置FRM565=0x1,为5:6:5格式输出。

INVVCLK:确定VCLK脉冲有效边沿极性。如INVVCLK=0xl,VCLK上升沿到来时数据传输开始。

INVVLlNE:确定HSYNC脉冲的极性。

INVVFRAME:确定VSYNC脉冲的极性。

INVVD:确定数据输出的脉冲极性。

INVVDEN:确定VDEN信号极性。

INVPWREN:确定PWREN信号极性。

INVLEND:确定LEND信号极性。

PWREN:PWREN信号输出允许。

ENLEND:LEND输出信号允许。

BSWP:字节交换控制位。如配置BSWP=0x0,禁止字节交换。

HWSWP:半字交换控制位。如配置HWSWP=0xl,使能半字节交换。

原创粉丝点击