TFT屏LCD学习心得

1.时钟信号.

LCD一般需要三个时序信号:VSYNC、HSYNC和VCLK。

s3c2440处理LCD的时钟源是HCLK,每个lcd都需要有一个合适的vclk(像素时钟信号,具体查手册得之)。通过寄存器LCDCON1中的CLKVAL可以调整VCLK频率大小,对应关系如下:VCLKHCLK÷[(CLKVAL1)×2]。所以相应操作是先阅读相应《TFT屏手册》得到合适的vclk后再根据芯片HCLK得到CLKVAL的值写入寄存器中。LCD具体需要的其他时钟信号在下面控制寄存器中说明。

2.内存分布:

LCD显示可看成是在内存中先虚拟排列一个矩阵再通过LCDWCDMA拿到VD上,扫描到屏幕上去。

而s3c2440支持1-24BPP。对于本文的16BPP来说,每个像素点用16位来存储颜色显示。对于RGB比为5:6:5的16PBB来说,其内存分布如下图:

由于是32位ARM芯片故数据存储由1个CPU地址(CPU可识别的地址)存储2个像素数据,即4个存储地址对应2个像素数据。如存储地址(000H-003H)存储P1和P2,但CPU识别000H。比如定义一个int变量(4字节),一个存储地址存储一个字节,故此变量要用4个存储地址存放。但是变量地址只有一个就是4个地址中的最低位地址。故BSWP和HWSWP用来控制4个存储地址如何存放2个像素点,VD是如何取数据显示到屏幕,具体控制如上图所示。最后的打印是一行上为P1,P2,P3,P4,P5,P6。

在这里解释一下字,字节,位。一般位是最小单位,一个字节等于8个位,而CPU一次能处理位数则是字。32位CPU一次能处理32位数据,即4个字节(对应4个存储地址),故一个字为4个字节。



其在VD上的显示如图所示。VD是s3c2440显示lcd的数据口,共24位。由于16BPP是16位,故没有用满。

最后如下图显示到屏幕上。


3.LCD的控制寄存器。

LCDCON1寄存器:

 

               LINECNT   :当前行扫描计数器值,标明当前扫描到了多少行。
               CLKVAL :决定VCLK的分频 比(上面已经提到过)。LCD控制器输出的VCLK是直接由系统总线(AHB)
                             的工作频率HCLK(一般为100MHZ)直接分频得到的。做为240*320的TFT屏,应保证得
                             出的VCLK在5~10MHz之间。
                MMODE :VM信号的触发模式(仅对STN屏有效,对TFT屏无意义。)PNRMODE :选择当前的显示模式,
                              对于TFT屏而言,应选择[11],即TFT LCD panel。

                BPPMODE :选择色彩模式,对于真彩显示而言,选择16bpp(64K色)即可满足要求。

                ENVID  使能LCD信号输出
设置时序:

先看时序图:

其中VSYNC是帧同步信号,VSYNC每发出1个脉冲,都意味着新的1屏视频资料开始发送。而HSYNC为行同步 信号,每个HSYNC脉冲都表明新的1行视频资料开始发送。而VDEN则用来标明视频资料的有效,VCLK是用来锁存视频资料的像数时钟。

HSYNC信号先后会有水平同步信号前肩(HFPD)和水平同步信号后肩(HBPD)出现,在VSYNC信号先后会有垂直同步信号前肩(VFPD)和垂直同步信号后肩(VBPD)出现,在这些信号时序内,不会有有效像素信号出现,另外HSYNCVSYNC信号有效时,其电平要保持一定的时间,它们分别叫做水平同步信号脉宽HSPW和垂直同步信号脉宽VSPW,这段时间也不能有像素信号。因此计算行频和场频时,一定要包括这些信号。HBPDHFPDHSPW的单位是一个VCLK的时间,而VSPWVFPDVBPD的单位是扫描一行所用的时间.。

在s3c2440中,所有的这些信号(VSPW、VFPD、VBPD、LINEVAL、HBPD、HFPD、HSPW和HOZVAL)都是实际值减1的结果。这些值是通过寄存器LCDCON2、LCDCON3和LCDCON4来配置,只要把这些值配置成与所要驱动的LCD中相关内容的数据一致即可。例如,我们所要显示的LCD屏大小为320×240,因此HOZVAL=320-1,LINEVAL=240-1。水平同步信号的脉宽、前肩和后肩分别为30、20和38,则HSPW=30-1,HFPD=20-1,HBPD=38-1;垂直同步信号的脉宽、前肩和后肩分别为3、12和15,则VSPW=3-1,VFPD=12-1,VBPD=15-1。


其他设置

在有些情况下,s3c2440的LCD时钟信号的默认极性与所控制的LCD时钟信号的极性相反,这时可以通过寄存器LCDCON5的相关位来改变某些时钟信号的极性。

 LCDCON5寄存器:

             VSTATUS :当前VSYNC信号扫描状态,指明当前VSYNC同步信号处于何种扫描阶段。

                  HSTATUS  当前HSYNC信号扫描状态,指明当前HSYNC同步信号处于何种扫描阶段。
             BPP24BL  设定24bpp显示模式时,视频资料在显示缓冲区中的排列顺序(即低位有效还是高位有效)。
                                        对于16bpp的 64K色显示模式,该设置位无意义。
             FRM565  对于16bpp显示模式,有2中形式,一种是RGB=5:5:5:1,另一种是5:6:5。后一 种模式最为 常用,它的含义是表示64K种色彩的16bit RGB资料中,红色(R)占了5bit,绿色(G)占了 6bit,兰色(B)占了5bit。
             INVVCLK 、INVLINE 、INVFRAME 、INVVD :通过前面提到的‘Figure 15-6’的时序图,我们知 道,CPU的LCD控制器输 出的时序默认是正脉冲,而LCD需要VSYNC(VFRAME)、 VLINE(HSYNC)均为负脉冲,因此 INVLINE 和 INVFRAME 必须设为“1 ”,即选择反相输 出。 INVVDEN , INVPWREN , INVLEND 的功能同前面的类似。
             PWREN  : LCD电源使能控制。在CPU LCD控制器的输出信号中,有一个电源使能管脚LCD_PWREN,用 来做为LCD屏电源的开关信号。
             ENLEND  对普通的TFT屏无效,可以不考虑。

                 INVVDENINVPWRENINVLEND:是否翻转这些信号,一般为正常,不需要翻转。

              BSWP 、HWSWP : 为字节(Byte)或半字(Half-Word)交换使能。由于不同的GUI对
                 FrameBuffer(显示缓冲区)的管理不同,必要时需要通过调整 BSWP 和 HWSWP 来适应GUI。


待续。。。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值