- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                基于linux2.6.30.4 framebuffer移植LCD驱动到FL2440开发板
                    基于linux2.6.30.4 framebuffer移植LCD驱动到
FL2440开发板
本文的目的为基于linux2.6.30.4 framebuffer移植LCD驱动到FL2440开发板。本文内容大致分为以下几个部分:
LCD硬件及显示原理介绍;
s3c2440 LCD控制器介绍;
内核LCD驱动机制framebuffer(帧缓冲技术)概述;
驱动移植相关及应用程序接口相关重要数据结构分析;
在linux2.6.30.4内核中添加(移植)LCD驱动;
嵌入式linux应用程序中LCD驱动接口函数的调用及其必要包含头文件和数据结构;
编写一个应用程序在LCD上显示一幅自定义图片;
下面就这几个方面详细分析。
LCD硬件及显示原理介绍
1.1 东华3.5寸LCD硬件介绍
FL2440开发板搭载的东华3.5寸LCD,型号为:WXCAT35-TG3,60pin引脚封装。它由三部分组成:LCD显示屏(自带LCD驱动器)、LED背光灯(6只)、4线电阻触摸屏。如图1、图2:
图1 LCD显示屏和背光灯
  由上图可知,驱动一个LCD显示屏。出了需要SOC中的LCD控制器外,还需要LCD自身内部还有一个驱动器。
图2 4线电阻触摸屏
   其60针引脚定义如下表:
从上表可知:1~4脚为背光LED灯的阳极和阴极;6~9脚为触摸屏相关引脚;14脚为芯片复位引脚;15脚为片选引脚;16、17脚不明,待查;18~25脚(D0~D7)为蓝基色数据引脚;26~33(D8~D15)为绿基色数据引脚;34~41(D16~D23)为红基色数据引脚;42脚(IHS)为水平同步信号;43脚(IVS)为垂直同步信号;44脚(CLK)为时钟信号;58脚(DEN)为数据有效信号。
下面来看看WXCAT35-TG3的时序图:
上图为三基色的并行数据时序图(截取至WXCAT35-TG3 datasheet),有图可知:在DEN(数据有效信号)有效时,每一个CLK(时钟信号,一般为HCLK的十分频)即可接受红绿蓝三基色的1bit数据,即每个CLK可并行接受3bit 三基色数据。8个CLK即可全部接受1个像素点的全部三基色数据(24BPP模式下)。
上图为控制时序图(截取至WXCAT35-TG3 datasheet),它描述了各时序信号如(HIS、VIS、DEN、CLK)与三基色数据传输的匹配关系。其中Vsync为垂直同步信号(即帧同步信号),它每发出一个脉冲(注:上图是反极性脉冲)都意味着新的一屏像素数据开始发送。Hsyns为水平同步信号(即行同步信号),它每发出一个脉冲(也是反极性的)表示新的一行像素数据开始发送。DE表示像素数据的有效性。CLK在上面分析过了,每一个CLK则并行发送3bit的像素数据(红蓝绿各1bit)。各时序信号必须如上图匹配才能是LCD正常的工作显示图像。各时序信号之间的关系不是我们关注的重点,因为s3c2440有内置LCD控制器,它的一个重要功能就是根据用户设定的一些数据发出正确匹配关系的时序信号供LCD使用。
这里提到用户设定的数据也在上图中表现出来了,它们分别是:
Tvp:垂直同步脉冲宽度(Pluse width);
Tvb:垂直同步后回扫时间(Back proch);
Tvd:垂直同步显示周期(Display Period),也就是LCD的像素行数;
Thf:垂直同步前回扫时间(Front proch);
Thp:水平同步脉冲宽度(Pluse width);
Thb:水平同步后回扫时间(Back proch);
Thd:水平同步显示周期(Display Period),也就是LCD的像素列数;
Thf:水平同步前回扫时间(Front proch);
以上数据可直接在相应型号的datasheet中查到,并且在s3c2440 LCD控制器的寄存器中各有各的设置位置,这方面内容在第二节讲述。在WXCAT35-TG3 datasheet 可查到以上各数据的取值,如下图:
只要在在s3c2440 LCD控制器的寄存器的相应位置填入上表中对应项的数据,s3c2440 LCD控制器即可发出正确的时序信号。Linux内核对基于framebuffer的LCD驱动支持非常完善,移植是只需要针对具体的硬件做少量的修改,修改上述参数便是移植时非常重要的一方面内容。
2.2、LCD显示原理
首先我们要知道:LCD显示屏是由一个个的像素点行列排成。如WXCAT35-TG3的分辨率为240×320。这表示在这个屏上有240×320个像素点,一屏(也称为一帧)有240行,每一行有320个像素点。每个像素点又有三个基色点组成,分别为红绿蓝基色点。WXCAT35-TG3最多可用24bit数据来表示一个像素点(即红绿蓝各8位,每8位描述一个基色点的亮度,各基色点不同亮度的
                 原创力文档
原创力文档 
                        

文档评论(0)