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

下载本文档

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

文档简介

1、版1. LCD工鞍作的硬件需求:斑 要使一块阿LCD正常的显癌示文字或图像,俺不仅需要LCD懊驱动器,而且还半需要相应的LC癌D控制器。在通昂常情况下,生产蔼厂商把LCD驱鞍动器会以COF拌/COG的 形隘式与LCD玻璃澳基板制作在一起俺,而LCD控制般器则是由外部的按电路来实现,现啊在很多的MCU隘内部都集成了L白CD控制器,如隘S3C2410翱/2440等。懊通 过LCD控爸制器就可以产生敖LCD驱动器所盎需要的控制信号芭来控制STN/摆TFT屏了。暗2. S3C2奥440内部LC胺D控制器结构图皑:懊我们根据数据手绊册来描述一下这扳个集成在S3C澳2440内部的八LCD控制器:哎a:LC

2、D控制八器由REGBA佰NK、LCDC肮DMA、TIM般EGEN、VI疤DPRCS寄存颁器组成;扳b:REGBA拌NK由17个可瓣编程的寄存器组败和一块256*般16的调色板内哀存组成,它们用叭来配置LCD控爱制器的;拌c:LCDCD胺MA是一个专用坝的DMA,它能霸自动地把在侦内按存中的视频数据皑传送到LCD驱埃动器,通过使用斑这个DMA通道稗,视频数据在不板需要CPU的干癌预的情况下显示盎在LCD屏上;巴d:VIDPR跋CS接收来自L班CDCDMA的敖数据,将数据转敖换为合适的数据盎格式,比如说4啊/8位单扫,4岸位双扫显示模式啊,然后通过数据斑端口VD23捌:0传送视频瓣数据到LCD驱暗

3、动器;埃e:TIMEG俺EN由可编程的斑逻辑组成,他生坝成LCD驱动器澳需要的控制信号罢,比如VSYN隘C、HSYNC案、VCLK和L败END等等,而傲这些控制 信号隘又与REGBA哎NK寄存器组中拔的LCDCON奥1/2/3/4伴/5的配置密切靶相关,通过不同熬的配置,TIM爱EGEN就能产挨生这些信号的不爱同形态,从而支阿 持不同的LC佰D驱动器(即不暗同的STN/T扮FT屏)。捌3. 常见TF般T屏工作时序分案析:拔LCD提供的外瓣部接口信号: 斑VSYNC/V皑FRAME/S板TV:绊垂直同步信号(白TFT)/帧同傲步信号(STN碍)/SEC T霸FT信号;靶HSYNC/V半LINE/

4、CP扮V:挨水平同步信号(邦TFT)/行同鞍步脉冲信号(S昂TN)/SEC傲 TFT信号;巴VCLK/LC啊D_HCLK:埃象素时钟信号(拔TFT/STN败)/SEC T巴FT信号;败VD23:0凹:败LCD像素数据隘输出端口(TF澳T/STN/S昂EC TFT)艾;拜VDEN/VM埃/TP:百数据使能信号(板TFT)/LC绊D驱动交流偏置案信号(STN)肮/SEC TF耙T 信号;暗LEND/ST败H:岸行结束信号(T哎FT)/SEC颁 TFT信号;佰LCD_LPC艾OE:斑SEC TFT昂 OE信号;霸LCD_LPC唉REV:巴SEC TFT哎 REV信号;啊LCD_LPC蔼REVB:皑S

5、EC TFT斑 REVB信号艾。罢所有显示器显示笆图像的原理都是蔼从上到下,从左靶到右的。这是什捌么意思呢?这么安说吧,一副图像敖可以看做是一个拜矩形,由很多排扮列整齐的点一行安一行组成,这些胺点称之为像素。肮那么这幅图在L邦CD上的显示原芭理就是: 吧A:拌显示指针从矩形摆左上角的第一行翱第一个点开始,扳一个点一个点的拔在LCD上显示搬,在上面的时序八图上用时间线表翱示就为VCLK摆,我们称之为像办素时钟信号;稗B:背当显示指针一直跋显示到矩形的右哀边就结束这一行奥,那么这一行的皑动作在上面的时背序图中就称之为巴1 Line;哀C:隘接下来显示指针白又回到矩形的左癌边从第二行开始霸显示,注意

6、,显岸示指针在从第一半行的右边回到第隘二行的左边是需爸要一定的时间的疤,我们称之为行懊切换;疤D:澳如此类推,显示捌指针就这样一行叭一行的显示至矩拔形的右下角才把哀一副图显示完成扒。因此,这一行肮一行的显示在时伴间线上看,就是霸时序图上的HS罢YNC;巴E:稗然 而,LCD罢的显示并不是对扒一副图像快速的斑显示一下,为了扒持续和稳定的在埃LCD上显示,碍就需要切换到另扒一幅图上(另一碍幅图可以和上一皑副图一样或者不搬一样,目 的只扳是为了将图像持背续的显示在LC皑D上)。那么这邦一副一副的图像氨就称之为帧,在柏时序图上就表示败为1 Fram俺e,因此从时序捌图上可以看出1癌 Line只是爱1

7、Frame翱中的一行;懊F:巴同样的,在帧与捌帧切换之间也是耙需要一定的时间按的,我们称之为伴帧切换,那么L按CD整个显示的哀过程在时间线上翱看,就可表示为伴时序图上的VS隘YNC。拔上面时序图上各跋时钟延时参数的哀含义如下:(这办些参数的值,L安CD产生厂商会挨提供相应的数据啊手册) 伴VBPD(ve凹rtical 扮back po坝rch):懊表示在一帧图像暗开始时,垂直同耙步信号以后的无瓣效的行数,对应罢驱动中的upp柏er_marg板in;罢VFBD(ve邦rtical 笆front p拌orch):霸表示在一帧图像碍结束后,垂直同伴步信号以前的无扒效的行数,对应俺驱动中的low碍er

8、_marg案in;爱VSPW(ve矮rtical 暗sync pu澳lse wid摆th):跋表示垂直同步脉捌冲的宽度,用行熬数计算,对应驱芭动中的vsyn氨c_len;摆HBPD(ho柏rizonta爱l back 氨porch):瓣表示从水平同步版信号开始到一行癌的有效数据开始靶之间的VCLK板的个数,对应驱阿动中的left挨_margin扳;扒HFPD(ho白rizonta吧l front背 porth)啊:唉表示一行的有效安数据结束到下一伴个水平同步信号哀开始之间的VC拔LK的个数,对熬应驱动中的ri皑ght_mar疤gin;扳HSPW(ho笆rizonta八l sync 颁pulse

9、 w扒idth):半表示水平同步信百号的宽度,用V八CLK计算,对敖应驱动中的hs敖ync_len扒;俺对于以上这些巴参数的值将分别盎保存到REGB摆ANK寄存器组百中的LCDCO埃N1/2/3/皑4/5寄存器中伴:(对寄存器的矮操作请查看S3矮c2440数据隘手册LCD部分唉) 捌LCDCON1熬:17- 8搬位CLKVAL俺 耙6- 5位扫啊描模式(对于S捌TN屏:4位单绊/双扫、8位单疤扫) 柏4- 1位色败位模式(1BP盎P、8BPP、哎16BPP等)百LCDCON2霸:31 - 2案4位VBPD 岸23 - 14摆位LINEVA鞍L 癌13 - 6位耙VFPD 颁5 - 0位V败SP

10、W霸LCDCON3敖:25 - 1懊9位HBPD 唉18 - 8位暗HOZVAL 傲7 - 0位H跋FPD颁LCDCON4澳: 7 - 0版位HSPW颁LCDCON5爸:蔼半4. 帧缓冲(矮FrameBu班ffer):佰 班帧缓冲是Lin案ux为显示设备碍提供的一个接口爱,它把一些显示斑设备描述成一个袄缓冲区,允许应啊用程序通过 F盎rameBuf翱fer定义好的版接口访问这些图唉形设备,从而不背用去关心具体的俺硬件细节。对于矮帧缓冲设备而言癌,只要在显示缓昂冲区与显示点对唉应的区域写入颜柏色 值,对应的唉颜色就会自动的袄在屏幕上显示。霸下面来看一下在胺不同色位模式下扳缓冲区与显示点胺的对应关

11、系:版下面看看244埃0test里面艾的叭lcd.c霸文件扒static 哎void Pu案tPixel(芭U32 x,U把32 y,U1翱6 c)岸伴 if(哎xSCR_X吧SIZE &俺 ySCR_拌YSIZE)拌按 LCD_BU艾FFER(y啊)(x)唉 = c;把罢很容易发现TF摆T LCD上显班示单个像素的函办数实际上很简洁搬看来似乎只需要搬LCD_BUF哎FER(y)捌(x) 背= c这一句话爱下面就来分析下半,是如何通过这班一句话来实现在蔼LCD上显示单半个像素的伴先分析下LCD唉_Init()笆即LCD初始化摆函数 挨rLCDCON艾1 = (LC白D_PIXCL疤OCK 班8

12、) | (3办 5)岸 | (12 哎=0 )懊MMODE7熬 = 0吧PNRMODE跋6:5 =白 11八 霸 TFT坝 LCD pa盎nel 挨BPPMODE斑4:1 =扳 1100扳 盎16bpp f绊or TFT板ENVID0佰 = 0扳绊 耙Disable搬rLCDCON班2 = (LC熬D_UPPER班_MARGIN安 24)奥 | (LC摆D_HEIGH叭T - 1) 俺 14) 翱| (LCD_熬LOWER_M般ARG矮IN 6搬) | (LC哎D_VSYNC稗_LEN 懊 0);澳LCDCON2澳 0 x4d00隘0004办VBPD = 皑1袄VBPD(ve邦rtical 袄

13、back po敖rch):表示暗在一帧图像开始爱时,垂直同步信昂号以后的无效的皑行数,对应驱动按中的upper扳_margin背LINVAL 案= 240 岸 1肮LINVAL:吧LCD屏的垂直哎大小哎VFPD = 爸5靶VFPD(ve哎rtical 柏front p八orch):表阿示在一帧图像结艾束后,垂直同步哀信号以前的无效芭的行数,对应驱办动中的lowe捌r_margi暗n凹VSPW = 拔1艾VSPW(ve盎rtical 吧sync pu安lse wid疤th):表示垂翱直同步脉冲的宽吧度,用行数计算背,对应驱动中的伴vsync_l扳en拔rLCDCON吧3 = (LC癌D_RIGH

14、T拜_MARGIN把 19)百 | (LC拜D_WIDTH昂 - 1) 绊 8) 扒| (LCD_斑LEFT_MA柏RGIN 扳 0);扳LCDCON3摆 0 x4d00懊0008癌HBPD = 背36案HBPD(ho办rizonta碍l back 敖porch):扒表示从水平同步邦信号开始到一行瓣的有效数据开始版之间的VCLK澳的个数,对应驱疤动中的left罢_margin案HOZVAL 疤= 320 坝 1盎HOZVAL:案LCD屏的水平班大小挨HFPD = 岸19傲HFPD(ho霸rizonta癌l front翱 porth)盎:表示一行的有瓣效数据结束到下捌一个水平同步信哀号开始之间的

15、V百CLK的个数,伴对应驱动中的r背ight_ma唉rgin颁rLCDCON扒4 = (13哎 8)阿 | (LCD碍_HSYNC_稗LEN 哎0);跋LCDCON4八 0 x4d00隘000c挨MVAL = 袄13爱HSPW = 俺5般HSPW(ho稗rizonta版l sync 伴pulse w跋idth):表俺示水平同步信号艾的宽度,用VC叭LK计算,对应半驱动中的hsy拌nc_len摆# de邦fine LC碍D_CON5 扮(111按) | (1 袄 9) |捌 (1 笆8) | (1霸 3) 拜| (1 白 0)八rLCDCON氨5 = 熬LCD_CON奥5;皑LCDCON5哎 0

16、 x4d00拜0010扳HWSWP =佰 1癌瓣 斑Swap En芭able吧PWREN =暗 1皑霸 背Enable 傲PWREN s熬ignal皑INVVFRA敖ME = 1爱 哎VFRAME/败VSYNC p拌ulse po办larity 癌Inverte癌d 选择疤负极性脉冲疤INVVLIN哎E = 1把 扒 艾VLINE/H靶SYNC pu碍lse pol矮arity I白nverted般 选择巴负极性脉冲氨FRM565 霸= 1捌靶 袄5:6:5 F半ormat疤rLCDINT敖MSK |= 背3;班INT_FrS挨yn = 1百 扮LCD fra傲me sync案hronize拌

17、d inter拜rupt Ma板sked皑INT_FiC瓣nt = 1背 阿LCD FIF半O inter扳rupt Ma稗sked案rTCONSE澳L &= (捌7);岸rTCONSE唉L &= (吧(1 2拔2) 盎 1) 靶 1);胺rLCDSAD跋DR3 = L鞍CD_WIDT阿H;靶LCDSADD疤R1 0 x4d昂000014 搬帧缓冲起始寄存凹器1氨LCDBANK安29:21柏 = (U32颁)LCD_BU耙FFER 哎 22奥These b八its ind哎icate A八30:22笆 of the绊 bank l班ocation版 for th叭e video拌 buffer

18、背 in the班 system氨 memory皑. LCDBA按NK valu蔼e canno板t be ch绊anged e疤ven whe暗n movin坝g the v氨iew por岸t. LCD 氨frame b霸uffer s傲hould b澳e withi笆n align埃ed 4MB 罢region,暗 which 胺ensures啊 that L败CDBANK 盎value w艾ill not版 be cha靶nged wh八en movi背ng the 颁view po耙rt. So,皑 care s肮hould b俺e taken扮 to use坝 the ma笆llo

19、c() 班Functio捌n白系统内存地址A凹30:22岸处的Bank位皑置为图像缓冲。澳LCDBANK败的值在视图移动白的值在视图移动半时不能改变,L艾CD帧缓冲应该哎在4MB区域对办齐,保证LCD罢BANK的值在吧移动视图时不会跋改变。岸LCDBASE澳U20:0阿 = (U3哀2)LCD_B背UFFER 皑 1)&0 x白1fffff板For dua摆l-scan 柏LCD : T拌hese bi碍ts indi隘cate A霸21:1 o肮f the s班tart ad办dress o八f the u氨pper ad扮dress c把ounter,板 which 邦is for 拔th

20、e upp背er fram啊e memor邦y of du罢al scan般 LCD or版 the fr巴ame mem碍ory of 半single 斑scan LC摆D.艾For sin蔼gle-sca扮n LCD :捌 These 百bits in艾dicate 碍A21:1敖 of the胺 start 鞍address八 of the按 LCD fr扮ame buf败fer.摆双扫描:表明高巴地址计数器的起懊始地址A21靶:1,用于L背CD双扫描的上版部帧内存或者单挨扫描的帧内存阿单扫描:表明L俺CD帧缓冲的起安始地址A21哀:1蔼LCDSADD盎R2 0 x4d把000018帧疤

21、缓冲起始寄存器案2肮LCDBASE瓣L20:0半 = (LC吧D_ADDR 暗+ LCD_W八IDTH * 叭LCD_HEI肮GHT * 2耙) 1)疤& 0 x1ff俺fff伴哀版 = (LC爸D_ADDR 版 1 + 懊LCD_WID挨TH * LC皑D_HEIGH肮T)& 0 x1板fffff伴For dua芭l-scan 邦LCD: Th隘ese bit罢s indic敖ate A2耙1:1 of翱 the st霸art add胺ress of佰 the lo傲wer add阿ress co半unter, 氨which i爱s used 扮for the般 lower 叭frame m百emory o拌f dual 笆scan LC阿D.隘For sin暗gle sca扒n LCD: 俺These b埃its ind搬icate A袄21:1 罢of the 挨end

温馨提示

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

评论

0/150

提交评论