LCD驱动程序开发指南Word文档下载推荐.docx
- 文档编号:22587264
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:18
- 大小:2.87MB
LCD驱动程序开发指南Word文档下载推荐.docx
《LCD驱动程序开发指南Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《LCD驱动程序开发指南Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
目前手机使用的大部分显示器件都是LCD(LiguidCrystalDisplay器件,目前康佳使用的LCM模块由信利、京东方、天马、凌达这几家厂商供货。
但是LCM生产厂家对我们调试驱动并没有任何关系,我们需要了解的是LCM所使用的IC型号。
因为,我们实际上是对LCD的IC进行编程,间接控制LCD面板,常用的IC有HD66773、S6B33B2/S6B33B6、HD66777等。
LCD驱动的编程,除了要关注IC的型号,还要关注LCDFPC的电路设计,LCD外围电路设计,基带芯片的LCD接口单元,背光IC的控制等几个方面,当然也包括软件的上层程序。
下面我们就先了解一下LCDIC的内部结构,这是编程要关注的最主要方面。
LCD内部一般包含指令寄存器,和GRAM空间。
指令寄存器用来设置LCDIC工作的电压、电流、时序、扫描方式等等的一系列内容,而GRAM空间被用来实现LCD刷屏。
LCDIC中有几个比较重要和通用的寄存器,必须要去熟练使用。
下面以HD66773为例来说明如何使用:
1、电源控制寄存器。
这些寄存器用来控制DriverIC的上电步骤,一般来说对寄存器设置的顺序和延迟时间有较严格的要求。
HD66773上的电源控制寄存器为0x03、0x04、0x0c、0x0d、0x0e这几个寄存器。
电源设置一般芯片资料中会有说明,同时厂家也会给推荐值,一般来说只需要按照推荐值来设置就可以了。
比如我们在M610上曾碰到过产线2%机器RTC开机白屏的问题,就是与电源设置有关。
后面还会再提到这个问题。
2、模式控制寄存器。
显示控制寄存器,需要我们自己去配置的地方较多。
厂家给的初始化代码,一般只是一个通用的代码,只能保证你点亮屏,效果要自己调。
可调的效果包括LCD的扫描方向、RGB反色、刷屏速度、SLEEP&
ACTIVEmode。
HD66773的相关寄存器有0x05、0x07。
3、刷屏相关的寄存器。
包括对当前刷屏位置的定位寄存器,GRAM地址定位寄存器。
在HD66773中包括,0x16、0x17、0x21、0x22寄存器等。
4、其他寄存器。
包括γ设置等,这些和各个厂家的硬件相关性比较强,按照厂家推荐值来设置就可以了。
不同的IC寄存器虽然编号或读写方式会不同,但是大概的功能都是相似的,只要仔细阅读相关的datasheet,都不难理解。
2.2LCM内部电路介绍
LCM是液晶显示模块的简称,它包括LCD,外围FPC电路和结构件。
LCM模块中对于我们最关键的是FPC电路。
对于LCD芯片来说,它可以支持很多种模式的外部接口、工作电压、数据传输方式,比如总线接口有6800,8080,可以用16位总线,也可以用18位总线。
LCD的外部接口一般是由我们定义,然后交给模组厂家制作。
下面我们来分析一个LCDFPC的实例:
下面的这个FPC图,是D363上所使用的京东方LCD,LCD的芯片为:
SSD1289,我们这里使用18位并行总线,262K色模式。
图1LCDFPC电路图
作为驱动调试,我们并不需要精确的知道每个引脚的含义和作用,但是对于一些关键的引脚,则必须要理解,关键引脚主要指能影响LCD工作的引脚,关键引脚包括数据线引脚、模式控制引脚、reset引脚、RD&
WR引脚以及CS引脚。
下面我们就逐一分析这些引脚。
在图1中,以上提到的关键引脚大部分为从SSD1289芯片直连出来,需要注意的是模式控制引脚,仅引出1根。
所以在BB电路设计的时候就必须注意,我们只能使用部分的LCD数据传输模式。
例1:
如何配置LCD芯片的工作方式
图2芯片控制引脚说明
从图2,我们可以看到LCD的数据传输模式共有4个控制引脚,其中PS3~0为:
XX01,其中PS2接出,供BB控制,PS3则由FPC上的跳线电阻控制,PS3为1还是0,由电阻的接法决定。
图3芯片工作模式说明
D363使用的是18位并行总线工作模式,故PS3应置为0,PS2应置为1。
图4LCD的BB端电路图
由前面的分析,得知BB的GPO2引脚控制LCD的工作模式,这里显然只要将GPO2设置为1,即可使LCD工作在正常的模式了。
程序中在LCD初始化函数之前,需要设置GPO2口,程序的代码为:
GPO_ModeSetup(2,0;
GPO_WriteIO(1,2;
这里需要说明的是,因为GPO本来就是专门输出的接口,所以不需要再像GPIO一样,执行一个初始化IO方向的函数了。
2.3LCM外围电路介绍
看懂并分析电路原理图对LCD调试也是非常重要的,在开始LCD驱动调试之前先检查原理图是非常有必要的。
下面我们来解析一下LCD的外围电路。
LCD的外围电路相对比较简单,引脚数量少,且由于KONKA对于LCD基本上采用相同的接口标准,所以不同的IC差异性较小。
下面我们以一个具体的LCD电路图,来进行具体分析。
下图标出了每个引脚的含义。
需要注意的是,这只是LCD外围电路图,并不是包括LCDFPC里定义的每个引脚的电路图。
因为不同的厂家在做屏的时候会根据客户的需求,把一些没有用的引脚封装在FPC内部。
我们需要看LCDFPC电路图,才能了解到这些引脚的状态。
图5LCD外围电路分析
根据上图,基本上LCD的引脚作用都可以了解。
在驱动程序的调试过程中,不仅要依靠软件Trace来调试,很多时候需要直接去量测电路的信号来IC器件的工作状态。
象数据线、片选线、WRB、RDB等信号,都很关键。
在软件不能调通的情况下,就需要去量测各个引脚的信号,来确定LCD芯片是否接收到正确的信号,比如说CS,RS信号等,有可能没有送来。
上图是一个8位LCD并口的,LCD接线实例,数据线和NFI总线,D0~D7位直连。
那么是不是,当|使用8位连线方式时,都是连D0~D7位呢?
答案显然是否定的。
实际上,NFI总线的NLD0~NLD7可以连D8~D15位,也可以连D1~D8位,具体怎么连要综合LCDIC的芯片资料,LCDFPC的内部电路图,LCD外围电路3个方面,才可以确定如何连线。
下面我们从一个具体的实例上来看具体的分析过程。
例2:
如何确定LCD数据线的接线方式
例2,我们依然以京东方屏SSD1289芯片为讲解,和例1不同的是。
例1应用在D363产品上,使用18bit8080总线模式。
例2应用在T218电视手机项目上,使用16bit8080总线的模式,T218上使用的LCM模块同D363的FPC原理图完全相同。
不同的地方是图2中的R1、R2两个跳线电阻,T218的接法和D363恰好相反。
第一步,阅读芯片资料,了解芯片进行数据读写的工作模式。
这里可以参见例1中的图3,我们对PS3~PS0应该的设置是:
1001,16bit8080parallelinterface。
这里就不再讨论了,具体可参见例1。
第二步,需要知道具体的指令和数据在16bit8080parallelinterface模式下如何进行工作,查看芯片资料SSD1289_0.32.pdf的第54页,我们可以看到。
图5LCD指令读写方式
图6LCD数据读写方式
从图5和图6,我们可以看到,LCD数据在16bit8080parallelinterface模式下D0和D9位,是应该悬空的引脚,所以对应D1~D8接NLD0~NLD7,D10~D17接NLD8~NLD15,我们来看实际的LCD电路图,也是如此。
图7LCD外围电路图
2.4基带接口电路介绍
基带接口电路指基带芯片控制LCD的电路单元。
MTK的LCD控制单元支持4~6layer,每个layer可以进行任意叠加或进行透明翻转等设置,并且每个layer都有特定的地址空间。
图8是MTK6217芯片框图,图中可以看到EMI和NFI总线上都可外接LCD器件(注:
MTK6226以后的芯片,EMI总线上不支持外挂LCD。
NFI和EMI总线的宽度为16bits。
图8基带的总线接口
图9LCD接口电路
从图9中可以看出LCD模块共有4个layer,实际上我们的GDI程序,可以操作4个layer,但当最终进行LCD刷新的时候,会对layer进行合并成一层,然后将bitmap数据DMA
到总线上。
对应在电路原理图上的电路连线如图10所示,图中的电路图
图10LCD接口控制引脚
图11LCD接口数据引脚
在图10中,我们可以看到LCD接口所使用的控制引脚为LWRB、LPA0、LRDB、LRSTB、LPCE0这几个引脚。
LPCE0:
为NFI总线的片选引脚,NFI总线上可能不仅Main_LCD还有其他外接设备(如sub_LCD,所以使用片选信号来区分当前操作的是哪一个设备。
注:
NANDflash使用不同的信号控制引脚。
LRSTB:
总线设备的reset引脚,低有效。
nandflash使用单独的reset引脚,NFI的另外两个片选,共同使用LRSTB引脚。
LRDB:
Read信号引脚,低有效。
一般最好有上拉电阻。
LWRB:
写信号引脚,低有效。
LPA0:
RS信号引脚,当LPA0为0,则写数据。
当LPA0为1,则写命令。
例3:
LCD接口电路分析
前面所分析的都是单纯LCD的情况,这里我们看一个LCD没有直接挂在BaseBand总线上,而是接在backendIC上的情况。
在图12上我们可以看到,BackendIC芯片接在MTK芯片的EMI总线上。
这时,在普通菜单操作状态下,backendIC上的控制引脚以及数据引脚的信号,直接bypass到LCD上,而当系统进入Camera程序后,完全由backendIC来实现对LCD的控制。
在Bypass时backendIC内部会形成通路,对CS、RS、WRB、RDB等信号以及数据线都实现直接接通。
这时仅需要将读写数据的总线地址偏移到LCD上即可(这里LCD和backendIC有不同的地址空间。
图12LCDbaseband的电路图
3、LCD驱动程序分析
LCD驱动程序在不同的平台上,其基本的程序结构和框架是相同的,但不同的平台的LCD接口以及操作方法并不相同,其他的差异还包括不同的操作系统,如Linux和nuclues的驱动程序的写法也不完全相同。
编写LCD驱动之前也需要先阅读平台的芯片资料并了解一些操作系统,软件架构的基本信息。
3.1标准LCD驱动程序介绍:
LCD驱动程序本身,并不复杂,不管是MTK平台还是TI平台,LCD驱动都是很相似的,驱动中最主要函数都是以下4个:
1、LCDinitial:
初始化函数,初始化LCD芯片,仅在开机的时候被调用一次。
2、LCDentersleep:
设置LCD休眠状态,在每次背光熄灭时,调用该函数设置LCD进入休
眠,以减少耗电。
3、LCDExitsleep:
设置LCD退出休眠状态,在每次背光点亮时,调用该函数是LCD进入
standby状态。
需要注意的是,有的LCD芯片进入休眠后,LCD的当前画面不能维持,所以需要先进行LCD刷新,再点亮背光。
4、LCDBlockwrite:
向LCD刷新一幅图像,所有LCD的刷新动作都通过该函数实现。
Blockwrite函数支持任意坐标开始,指定size刷新动作。
例4:
LCD代码实例
下面的LCD代码实例以D363机型上所使用的SSD1289京东方LCD为例来进行讲解,在驱动代码理解中可以参考SSD1289的datasheet和MTK6228的芯片资料帮助了解程序。
电路部分可以参见上以章的分析。
1、LCD初始化代码:
第一段代码中实现了晶振起振,上电控制,输出格式控制等。
2、LCD进入sleep模式和退出sleep模式的代码
3、LCD刷屏函数
这里举例了MTK平台的驱动程序,但是其他平台的驱动在形式上也大致如此,不同之处在于基带芯片接口的操作方式各有不同。
3.2LCD平台相关特性:
基带接口的操作方式不同的具体表现大致有以下几点:
1、总线接口及总线操作方法不同,总线地址不同
总线接口常用的为6800接口和8080接口,目前公司通常使用的都是8080接口的LCD,8080接口就是通常说的并行总线接口。
在MTK平台,一般使用NFI总线,总线地址为固定地址,不管是16bit还是8bit总线,只要直接对总线地址操作即可。
TIlocosto平台则略有不同,虽然LCD也是和flash共用总线,但不能直接对总线地址操作,而必须通过TI芯片中的一个FIFO来对总线进行操作。
2、是否支持DMA,如何实现DMA
一般的LCD数据刷新都是有DMA支持的,使用DMA可以提高程序的运行效率,从而提高LCD的刷新速度(这里的速度不是指单次刷新的绝对速度。
MTK和TI的DMA都是专用的DMA单元控制。
3、LCD的背光如何控制
虽然LCD背光并不属于LCD驱动程序,但是要验证LCD驱动程序必须要先点亮LCD背光。
LCD背光的控制基本上分为两种情况,一种是由PMC或基带芯片的某个引脚直接控制,只需要配置基带芯片或PMIC的相关寄存器即可控制背光,为了背光的效果更好,或驱动能力更强,也会使用专门的背光IC。
关于背光IC的详细内容,将在背光的文档中详细讨论。
4、LCD的供电引脚、片选信号、读写信号、reset引脚等
LCD的供电、片选等信号引脚,对LCD的控制也相当重要,这些引脚和硬件原理图相关性。
3.2MTK平台驱动程序解析
MTK平台的驱动程序的模块性较好,平台相关参数的配置全部都在lcd_sw.h文件中,下面我们就来详细解析一下这些参数。
例5:
MTK驱动平台相关参数解析
1、MTK总线地址配置参数:
MTK的总线地址配置参数的具体值,取决于LCD芯片所在总线,如为EMI总线还是NFI总线,两个总线的地址区域是不同的。
当确定了总线区域以后,还需要知道LCD芯片所接的总线片选是多少,不同的总线片选,地址区域也不相同。
上面的代码中LCD的地址区域为NFI总线的片选1,该片选的地址已经通过宏定义规定,NFI总线共有两个片选。
2、MTK的DMA方式
这里设置的LCDDMA方式,可以在MTK6228芯片资料中LCD的相关章节求证(MTK6228芯片资料214~215页。
3、数据读写方式
上面的代码是通过DMA方式,进行LCD写数据的宏定义。
上面的代码是通过指令方式,进行LCD写数据的宏定义。
4、总结
LCD驱动程序并不复杂,只要按照从硬件到软件的一个分析过程,用系统的思想去判断问题,就一定能解决LCD调试过程中出现的各种问题!
张雷2007-6-11
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD 驱动程序 开发 指南