LCD驱动开发指引1、LCD驱动概述LCD驱动程序调试,是整个手机研发过程中非常重要的一个环节,在每个新的机型开发的初期,最先都要调试LCD驱动程序,我们俗称“点屏”。“点屏”的调试包括两个部分,一是点亮LCD的背光,二是调试LCD显示。背光驱动调试的方法与技巧,会在背光文档中叙述,暂不在这篇文档里讨论,本文将重点讨论LCD的电路原理、驱动程序分析、LCD驱动调试经验总结和具体驱动调试案例的分析。2、LCD原理及电路分析相关概念:LCD:全称是LiquidCrystalDisplay液晶显示屏LCM:全称是LiquidCrystalModule指的是液晶显术模块,包括液晶屏及液晶的外围FPC电路和结构件。LCD的FPC电路:指LCM模块中的液晶外围电路,这部分电路由LCD模组厂家按照我们对LCD的接口要求进行设计的。在LCD驱动调试中,看FPC电路图也是很重要的一个环节。LCD外围电路:我们通常也简称为LCD电路,指的是baseband端的LCD接口电路部分,这部分电路由我们自行设计。LCD模组厂家:指信利,天马,京东方这些厂家。他们将LCD制作成可以供我们生产使用的LCM模组。2.1LCD芯片介绍目前手机使用的大部分显示器件都是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数据传输模式...