s3c2440 LCD控制器设置及代码详解_第1页
s3c2440 LCD控制器设置及代码详解_第2页
s3c2440 LCD控制器设置及代码详解_第3页
s3c2440 LCD控制器设置及代码详解_第4页
s3c2440 LCD控制器设置及代码详解_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. LCD工工作的硬件需需求: 要使一块块LCD正常常的显示文字字或图像,不不仅需要LCCD驱动器,而而且还需要相相应的LCDD控制器。在在通常情况下下,生产厂商商把LCD驱驱动器会以CCOF/COOG的 形式式与LCD玻玻璃基板制作作在一起,而而LCD控制制器则是由外外部的电路来来实现,现在在很多的MCCU内部都集集成了LCDD控制器,如如S3C24410/24440等。通通 过LCDD控制器就可可以产生LCCD驱动器所所需要的控制制信号来控制制STN/TTFT屏了。2. S3C22440内部部LCD控制制器结构图:我们根据数据手手册来描述一一下这个集成成在S3C22440内部部的LCD控

2、控制器:a:LCD控制制器由REGGBANK、LLCDCDMMA、TIMMEGEN、VVIDPRCCS寄存器组组成;b:REGBAANK由177个可编程的的寄存器组和和一块2566*16的调调色板内存组组成,它们用用来配置LCCD控制器的的;c:LCDCDDMA是一个个专用的DMMA,它能自自动地把在侦侦内存中的视视频数据传送送到LCD驱驱动器,通过过使用这个DDMA通道,视视频数据在不不需要CPUU的干预的情情况下显示在在LCD屏上上;d:VIDPRRCS接收来来自LCDCCDMA的数数据,将数据据转换为合适适的数据格式式,比如说44/8位单扫扫,4位双扫扫显示模式,然然后通过数据据端口VD

3、23:0传送视频数数据到LCDD驱动器;e:TIMEGGEN由可编编程的逻辑组组成,他生成成LCD驱动动器需要的控控制信号,比比如VSYNNC、HSYYNC、VCCLK和LEEND等等,而而这些控制 信号又与RREGBANNK寄存器组组中的LCDDCON1/2/3/44/5的配置置密切相关,通通过不同的配配置,TIMMEGEN就就能产生这些些信号的不同同形态,从而而支 持不同同的LCD驱驱动器(即不不同的STNN/TFT屏屏)。3. 常见TFFT屏工作时时序分析:LCD提供的外外部接口信号号: VSYNC/VVFRAMEE/STV:垂直同步信信号(TFTT)/帧同步步信号(STTN)/SEEC

4、 TFTT信号;HSSYNC/VVLINE/CPV:水水平同步信号号(TFT)/行同步脉脉冲信号(SSTN)/SSEC TFFT信号;VVCLK/LLCD_HCCLK:象素素时钟信号(TFT/SSTN)/SSEC TFFT信号;VVD23:0:LCCD像素数据据输出端口(TFT/SSTN/SEEC TFTT);VDEEN/VM/TP:数据据使能信号(TFT)/LCD驱动动交流偏置信信号(STNN)/SECC TFT 信号;LEEND/STTH:行结束束信号(TFFT)/SEEC TFTT信号;LCCD_LPCCOE:SEEC TFTT OE信号号;LCD_LPCREEV:SECC TFT RE

5、V信号号;LCD_LPCREEVB:SEEC TFTT REVBB信号。所有显示器显示示图像的原理理都是从上到到下,从左到到右的。这是是什么意思呢呢?这么说吧吧,一副图像像可以看做是是一个矩形,由由很多排列整整齐的点一行行一行组成,这这些点称之为为像素。那么么这幅图在LLCD上的显显示原理就是是: A:显示指针从从矩形左上角角的第一行第第一个点开始始,一个点一一个点的在LLCD上显示示,在上面的的时序图上用用时间线表示示就为VCLLK,我们称称之为像素时时钟信号;BB:当显示指指针一直显示示到矩形的右右边就结束这这一行,那么么这一行的动动作在上面的的时序图中就就称之为1 Line;C:接下来显

6、显示指针又回回到矩形的左左边从第二行行开始显示,注注意,显示指指针在从第一一行的右边回回到第二行的的左边是需要要一定的时间间的,我们称称之为行切换换;D:如此类推推,显示指针针就这样一行行一行的显示示至矩形的右右下角才把一一副图显示完完成。因此,这这一行一行的的显示在时间间线上看,就就是时序图上上的HSYNNC;E:然 而,LLCD的显示示并不是对一一副图像快速速的显示一下下,为了持续续和稳定的在在LCD上显显示,就需要要切换到另一一幅图上(另另一幅图可以以和上一副图图一样或者不不一样,目 的只是为了了将图像持续续的显示在LLCD上)。那那么这一副一一副的图像就就称之为帧,在在时序图上就就表示

7、为1 Framee,因此从时时序图上可以以看出1 LLine只是是1 Fraame中的一一行;F:同样的,在在帧与帧切换换之间也是需需要一定的时时间的,我们们称之为帧切切换,那么LLCD整个显显示的过程在在时间线上看看,就可表示示为时序图上上的VSYNNC。上面时序图上各各时钟延时参参数的含义如如下:(这些些参数的值,LLCD产生厂厂商会提供相相应的数据手手册) VBPD(veerticaal bacck porrch):表表示在一帧图图像开始时,垂垂直同步信号号以后的无效效的行数,对对应驱动中的的upperr_marggin;VFFBD(veerticaal froont poorch):表

8、示在一帧帧图像结束后后,垂直同步步信号以前的的无效的行数数,对应驱动动中的lowwer_maargin;VSPW(vertiical ssync ppulse widthh):表示垂垂直同步脉冲冲的宽度,用用行数计算,对对应驱动中的的vsyncc_len;HBPD(horizzontall backk porcch):表示示从水平同步步信号开始到到一行的有效效数据开始之之间的VCLLK的个数,对对应驱动中的的left_margiin;HFPPD(horrizonttal frront pporth):表示一行行的有效数据据结束到下一一个水平同步步信号开始之之间的VCLLK的个数,对对应驱动中的

9、的rightt_marggin;HSSPW(hoorizonntal ssync ppulse widthh):表示水水平同步信号号的宽度,用用VCLK计计算,对应驱驱动中的hssync_llen;对于以上这些些参数的值将将分别保存到到REGBAANK寄存器器组中的LCCDCON11/2/3/4/5寄存存器中:(对对寄存器的操操作请查看SS3c24440数据手册册LCD部分分) LCDCON11:17- 8位CLLKVAL 6- 55位扫描模式式(对于STTN屏:4位位单/双扫、88位单扫) 4- 11位色位模式式(1BPPP、8BPPP、16BPPP等)LCCDCON22:31 - 24位V

10、VBPD 223 - 114位LINNEVAL 13 - 6位VFPPD 5 - 0位VSSPWLCDDCON3:25 - 19位HBBPD 188 - 8位位HOZVAAL 7 - 0位HFFPDLCDDCON4: 7 - 0位HSPPWLCDCCON5:4. 帧缓冲冲(FrammeBufffer): 帧缓冲是是Linuxx为显示设备备提供的一个个接口,它把把一些显示设设备描述成一一个缓冲区,允允许应用程序序通过 FrrameBuuffer定定义好的接口口访问这些图图形设备,从从而不用去关关心具体的硬硬件细节。对对于帧缓冲设设备而言,只只要在显示缓缓冲区与显示示点对应的区区域写入颜色色 值,

11、对应应的颜色就会会自动的在屏屏幕上显示。下下面来看一下下在不同色位位模式下缓冲冲区与显示点点的对应关系系:下面看看24440testt里面的lccd.c文件件static void PutPiixel(UU32 x,U32 yy,U16 c) if(xSCRR_XSIZZE & ySCRR_YSIZZE) LCD_BUFFEER(y)(x) = cc;很容易发现TFFT LCDD上显示单个个像素的函数数实际上很简简洁看来似乎乎只需要LCCD_BUFFFER(y)(x) = c这一句句话下面就来来分析下,是是如何通过这这一句话来实实现在LCDD上显示单个个像素的先分分析下LCDD_Initt()

12、即LCCD初始化函函数 rLCDCONN1 = (LCD_PPIXCLOOCK 8) | (3 5) | (112 =00 )MMODE77 = 00PNRMODEE6:5 = 111 TFT LCD ppanel BPPMODEE4:1 = 11100 16bbpp foor TFTTENVID00 = 00 DissablerLCDCONN2 = (LCD_UUPPER_MARGIIN 24) | (LCCD_HEIIGHT - 1) 14) | (LLCD_LOOWER_MMARGINN 66) | (LCD_VVSYNC_LEN 0);LCDCON22 0 x4dd0000004VBP

13、D = 1VBPDD(verttical back porchh):表示在在一帧图像开开始时,垂直直同步信号以以后的无效的的行数,对应应驱动中的uupper_margiinLINVAL = 2400 1LLINVALL:LCD屏屏的垂直大小小VFPD = 5VFPDD(verttical frontt porcch):表示示在一帧图像像结束后,垂垂直同步信号号以前的无效效的行数,对对应驱动中的的lowerr_margginVSPW = 1VSPWW(verttical sync pulsee widtth):表示示垂直同步脉脉冲的宽度,用用行数计算,对对应驱动中的的vsyncc_lenrLCD

14、CONN3 = (LCD_RRIGHT_MARGIIN 19) | (LCCD_WIDDTH - 1) 8) | (LLCD_LEEFT_MAARGIN 0);LCDCON33 0 x4dd0000008HBPD = 36HBPD(hoorizonntal bback pporch):表示从水水平同步信号号开始到一行行的有效数据据开始之间的的VCLK的的个数,对应应驱动中的lleft_mmarginnHOZVAL = 3200 1HOZVAL:LCD屏的的水平大小HFPD = 19HFPD(hoorizonntal ffront porthh):表示一一行的有效数数据结束到下下一个水平同同步信

15、号开始始之间的VCCLK的个数数,对应驱动动中的rigght_maarginrLCDCONN4 = (13 8) | (LCCD_HSYYNC_LEEN 0);LCDCON44 0 x4dd000000cMVAL = 13HSPW = 5HSPW(hoorizonntal ssync ppulse widthh):表示水水平同步信号号的宽度,用用VCLK计计算,对应驱驱动中的hssync_llen# deefine LCD_CCON5 (1111) | (1 9) | (1 8) | (1 3) | (11 00)rLCCDCON55 = LCD_CON5;LCDCON55 0 x4dd000

16、0110HWSWP = 1 Swwap EnnablePWREN = 1 Ennable PWRENN signnalINVVFRAAME = 1 VFFRAME/VSYNCC pulsse pollarityy Inveerted 选择择负极性脉冲冲INVVLINNE = 11 VLLINE/HHSYNC pulsee polaarity Inverrted 选择择负极性脉冲冲FRM565 = 1 5:6:5 FFormattrLCDINTTMSK |= 3;INT_FrSSyn = 1 LCCD fraame syynchroonizedd inteerruptt MaskkedINT_F

17、iCCnt = 1 LCCD FIFFO intterruppt MasskedrTCONSEEL &= (7);rTCONSEEL &= (1 22) 1) 1);rLCDSADDDR3 = LCD_WIDTHH;LCDSADDDR1 0 xx4d0000014 帧帧缓冲起始寄寄存器1LCDBANKK29:221 = (U32)LCD_BBUFFERR 222These bbits iindicaate A30:222 of the bbank llocatiion foor thee videeo bufffer iin thee systtem meemory. LCDBBANK vva

18、lue cannoot be changged evven whhen mooving the vview pport. LCD fframe buffeer shoould bbe witthin aaligneed 4MBB regiion, wwhich ensurres thhat LCCDBANKK valuue willl nott be cchangeed wheen movving tthe viiew poort. SSo, caare shhould be taaken tto usee the mallooc() FFunctiion系统内内存地址A30:222处的Baa

19、nk位置为为图像缓冲。LLCDBANNK的值在视视图移动的值值在视图移动动时不能改变变,LCD帧帧缓冲应该在在4MB区域域对齐,保证证LCDBAANK的值在在移动视图时时不会改变。LCDBASEEU20:0 = (U322)LCD_BUFFEER 1)&0 xx1ffffffFor duaal-scaan LCDD : Thhese bbits iindicaate A21:1 of tthe sttart aaddresss of the uupper addreess coounterr, whiich iss for the uupper framee memoory off duall

20、 scann LCD or thhe fraame meemory of siingle scan LCD.FFor siingle-scan LCD : Thesse bitts inddicatee A211:1 oof thee starrt adddress of thhe LCDD framme bufffer.双双扫描:表明明高地址计数数器的起始地地址A211:1,用用于LCD双双扫描的上部部帧内存或者者单扫描的帧帧内存单扫描描:表明LCCD帧缓冲的的起始地址AA21:11LCDSADDDR2 0 xx4d0000018帧缓缓冲起始寄存存器2LCDBASEEL20:0 = (LCD

21、D_ADDRR + LCCD_WIDDTH * LCD_HHEIGHTT * 2) 11)& 0 xx1ffffff = (LCD_AADDR 1 + LCD_WIDTHH * LCCD_HEIIGHT)& 0 x1ffffffFor duaal-scaan LCDD: Theese biits inndicatte A221:1 of thhe staart adddresss of tthe loower aaddresss couunter, whicch is used for tthe loower fframe memorry of dual scan LCD.FFor siingle scan LCD: These

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论