《LCD驱动程序开发指南.docx》由会员分享,可在线阅读,更多相关《LCD驱动程序开发指南.docx(22页珍藏版)》请在三一办公上搜索。
1、LCD驱动开发指引1、LCD驱动概述LCD驱动程序调试,是整个手机研发过程中非常重要的一个环节,在每个新的机 型开发的初期,最先都要调试LCD驱动程序,我们俗称“点屏”。“点屏”的调试包括 两个部分,一是点亮LCD的背光,二是调试LCD显示。背光驱动调试的方法与技 巧,会在背光文档中叙述,暂不在这篇文档里讨论,本文将重点讨论LCD的电路原 理、驱动程序分析、LCD驱动调试经验总结和具体驱动调试案例的分析。2、LCD原理及电路分析相关概念:LCD :全称是Liquid Crystal Display液晶显示屏LCM :全称是Liquid Crystal Module指的是液晶显术模块,包括液晶屏
2、及液晶的 外围FPC电路和结构件。LCD的FPC电路:指LCM模块中的液晶外围电路,这部分电路由LCD模组厂 家按照我们对LCD的接口要求进行设计的。在LCD驱动调试中,看FPC电路图也 是很重要的一个环节。LCD外围电路:我们通常也简称为LCD电路,指的是baseband端的LCD接口电 路部分,这部分电路由我们自行设计。LCD模组厂家:指信利,天马,京东方这些厂家。他们将LCD制作成可以供我们 生产使用的LCM模组。2.1LCD芯片介绍目前手机使用的大部分显示器件都是LCD (Liguid Crystal Display器件,目前康 佳使用的LCM模块由信利、京东方、天马、凌达这几家厂商供
3、货。但是LCM生 产厂家对我们调试驱动并没有任何关系,我们需要了解的是LCM所使用的IC型号。因为,我们实际上是对LCD的IC进行编程,间接控制LCD面板,常用的IC有HD66773、S6B33B2/ S6B33B6、HD66777 等。LCD驱动的编程,除了要关注IC的型号,还要关注LCD FPC的电路设计,LCD 外围电路设计,基带芯片的LCD接口单元,背光IC的控制等几个方面,当然也包括 软件的上层程序。下面我们就先了解一下LCD IC的内部结构,这是编程要关注的 最主要方面。LCD内部一般包含指令寄存器,和GRAM空间。指令寄存器用来设置LCD IC 工作的电压、电流、时序、扫描方式等
4、等的一系列内容,而GRAM空间被用来实 现LCD刷屏。LCD IC中有几个比较重要和通用的寄存器,必须要去熟练使用。下面以 HD66773为例来说明如何使用:1、电源控制寄存器。这些寄存器用来控制Driver IC的上电步骤,一般来说对 寄存器设置的顺序和延迟时间有较严格的要求。HD66773上的电源控制寄存器为 0x03、0x04、0x0c、0x0d、0x0e这几个寄存器。电源设置一般芯片资料中会有 说明,同时厂家也会给推荐值,一般来说只需要按照推荐值来设置就可以了。比如我 们在M610上曾碰到过产线2%机器RTC开机白屏的问题,就是与电源设置有关。 后面还会再提到这个问题。2、模式控制寄存
5、器。显示控制寄存器,需要我们自己去配置的地方较多。厂家 给的初始化代码,一般只是一个通用的代码,只能保证你点亮屏,效果要自己调。可调 的效果包括LCD的扫描方向、RGB反色、刷屏速度、SLEEP&ACTIVE mode。 HD66773的相关寄 存器有0x05、0x07。3、刷屏相关的寄存器。包括对当前刷屏位置的定位寄存器,GRAM地址定位 寄存器。在HD66773中包括,0x16、0x17、0x21、0x22寄存器等。4、其他寄存器。包括Y设置等,这些和各个厂家的硬件相关性比较强,按照厂 家推荐值来设置就可以了。不同的IC寄存器虽然编号或读写方式会不同,但是大概的功能都是相似的,只要 仔细阅
6、读相关的datasheet,都不难理解。2.2LCM内部电路介绍LCM是液晶显示模块的简称,它包括LCD,外围FPC电路和结构件。LCM模 块中对于我们最关键的是FPC电路。对于LCD芯片来说,它可以支持很多种模式的外部接口、工作电压、数据传输 方式,比如总线接口有6800,8080,可以用16位总线,也可以用18位总线。LCD的外 部接口一般是由我们定义,然后交给模组厂家制作。下面我们来分析一个LCD FPC的实例:下面的这个FPC图,是D363上所使用的京东方LCD,LCD的芯片为:SSD1289, 我们这里使用18位并行总线,262K色模式。图1 LCD FPC电路图作为驱动调试,我们并
7、不需要精确的知道每个引脚的含义和作用,但是对于一些 关键的引脚,则必须要理解,关键引脚主要指能影响LCD工作的引脚,关键引脚包 括数据线引脚、模式控制引脚、reset引脚、RD&WR引脚以及CS引脚。下面我 们就逐一分析这些引脚。在图1中,以上提到的关键引脚大部分为从SSD1289芯片 直连出来,需要注意的是模式控制引脚,仅引出1根。所以在BB电路设计的时候就 必须注意,我们只能使用部分的LCD数据传输模式。-223ESSRPP345-333(升压电璀模式控T 制引脚升压电路一一膨埔搓门例1:如何配置LCD芯片的工作方式图2芯片控制引脚说明从图2,我们可以看到LCD的数据传输模式共有4个控制引
8、脚,其中PS30 为:XX01,其中PS2接出,供BB控制,PS3则由FPC上的跳线电阻控制,PS3为1还 是0,由电阻的接法决定。REGVDD PS2 PSI 乎 PS0 32 P53 - 33 5HUT35 /RESETX 28X 29X 302. 8VPSOPS(3:0)二111111101011101O.CZT001_10003- wires MCU Serial interface4- wires MCU Sena interface16 bits 68 paraHel mterface加伯68 parH 而团竺三_ 6 bits 8弓pa础可备画云a bits BU para li
9、e I interface PSII nm itInterface图3芯片工作模式说明D363使用的是18位并行总线工作模式,故PS3应置为0, PS2应置为1。X VvX-f-X X- Hb+B2 I日阳我 DDFX 20 REGVDD x 29 X 30PSOPSIPS2PS3DCBB 口匿引脚InputinterfaceSelectionPS2FS1PS(3.0)二1111 3-wiires MCU Serial interfaceI HO 4-wires MCU Serial interface10T1 : 1G bits 68 parallel interfacem bits 80
10、parallel int四成、1000 8 bits HU parallel interface 、0111 :18 bits 68 parallel interface 可能的工地口 . 9 b眠朋pwallel into理巳,珥 作模式Cgimi8bits 8Q pm 垂亟亟IOIIJO U bits H(J parallel interface0011 : 6 bits RGB interfacei0010 】6 如博 RGR irtlwfHE + Ww昭 SPI 8可* Rgb iiuerfggg 十 Data or corrtmand图4 LCD的BB端电路图由前面的分析,得知BB的
11、GPO2引脚控制LCD的工作模式,这里显然只要将 GPO2设置为1,即可使LCD工作在正常的模式了。程序中在LCD初始化函数之前,需要设置GPO2 口,程序的代码为:GPO_ModeSetup(2,0;GPO_WriteIO(1,2;这里需要说明的是,因为GPO本来就是专门输出的接口,所以不需要再像 GPIO 一样,执行一个初始化IO方向的函数了。2.3 LCM外围电路介绍看懂并分析电路原理图对LCD调试也是非常重要的,在开始LCD驱动调试之 前先检查原理图是非常有必要的。下面我们来解析一下LCD的外围电路。LCD的外围电路相对比较简单,引脚 数量少,且由于KONKA对于LCD基本上采用相同的
12、接口标准,所以不同的IC差异 性较小。下面我们以一个具体的LCD电路图,来进行具体分析。下图标出了每个引 脚的含义。需要注意的是,这只是LCD外围电路图,并不是包括LCD FPC里定义 的每个引脚的电路图。因为不同的厂家在做屏的时候会根据客户的需求,把一些没 有用的引脚封装在FPC内部。我们需要看LCD FPC电路图,才能了解到这些引脚 的状态。o 1 - fc S 4 Q 1 :|.9 4 &_ &一CE-_tsl-1 T 4 1! 口dddddp口DECB康 EC&图5 LCD外围电路分析根据上图,基本上LCD的引脚作用都可以了解。在驱动程序的调试过程中,不仅 要依靠软件Trace来调试,
13、很多时候需要直接去量测电路的信号来IC器件的工作状 态。象数据线、片选线、WRB、RDB等信号,都很关键。在软件不能调通的情况 下,就需要去量测各个引脚的信号,来确定LCD芯片是否接收到正确的信号,比如说 CS , RS信号等,有可能没有送来。上图是一个8位LCD并口的,LCD接线实例,数据线和NFI总线,D0D7位直 连。那么是不是,当I使用8位连线方式时,都是连D0D7位呢?答案显然是否定 的。实际上,NFI总线的NLD0-NLD7可以连D8D15位,也可以连D1D8位,具体 怎么连要综合LCD IC的芯片资料,LCD FPC的内部电路图,LCD外围电路3个方 面,才可以确定如何连线。下面
14、我们从一个具体的实例上来看具体的分析过程。例2:如何确定LCD数据线的接线方式例2,我们依然以京东方屏SSD1289芯片为讲解,和例1不同的是。例1应用在 D363产品上,使用18bit 8080总线模式。例2应用在T218电视手机项目上,使用 16bit 8080总线的模式,T218上使用的LCM模块同D363的FPC原理图完全相 同。不同的地方是图2中的R1、R2两个跳线电阻,T218的接法和D363恰好相 反。第一步,阅读芯片资料,了解芯片进行数据读写的工作模式。这里可以参见例1 中的图3,我们对PS3-PS0应该的设置是:1001, 16bit 8080 parallel interf
15、aceo这里就 不再讨论了,具体可参见例1。第二步,需要知道具体的指令和数据在16bit 8080 parallel interface模式下如何 进行工作,查看芯片资料SSD1289_0.32.pdf的第54页,我们可以看到。1)悬空不接Mapping for Writing an InstructioninterfaceCycleD171601514D13D12D11D10D9D8D7D6D5D418 bits旧的B14IB 13IB12旧11IB1QIS 7旧61B53B4旧316 bits旧15旧14旧13旧12IB11旧10旧9188 /.*o w&f cont/v/ 4LC D_s
16、 et_re g (0:001 e jQjcOOal 展jpw心 w眺泌E delaymsCSOO);LC D _s et_re g (0x0001 jOsSbSf); /Driv 冲切世.3呼混. delayms(100);LC D _s et_re g (0x0002 jOx(36OO), /fed dsi住f 目己 control delayms(100)jLCD _s et_re g (Ci?,31 uinti6 I starty. I endy J stnrtx. 1 endx;ksLuintlSLCD_k; 一-kal_-jint32 addledatAjWhile (LCD_I
17、S_Fl UN PI IN G) jI/horijorttal RAM Jitdireis positionS E T. LCD_C.M D_P A RAM E TE R(0 j LCDCMD (Ctt44 &OkF Fffi) 2)| (0xM44&0xFF) 1);S FT_I. CD_CM D_P A RAM FIT R (: ,LCD_DATA r(l_er dx 8 JStOxF FOO(l_5ta ntx 版 c FF) c v 1);/vertil RAM adcresp portionSET_LC D_CM D_P A RAM E TE R(2 jLCD_CM Ci j (Ox
18、 GO 45 &Dx F FOD) i: 2)| (mOO 的&D*FF) :心); SElLCiJ_tMD_PARAMETELCD_DATAX(1_歌占rtyMtFFOO).FF0Q)2)| (0xM4BMxFF)1);SETCD CMD PARAMFTEP.LCDOATAXO . wEySi旧i (i _endY&0xFFl FFOO )2)| ( (DkOOJ EBO- FF)-1 j);5 ET_LC D_CND_P A HAM ETE RfTjLCD-pATA/。血 rtx &OJ(FFOO(l_StartxMHFF)-c 1)JSE r_LLD_CMD_PAhAMtTEk0JLC.
19、D_CMDJ(&xM4iL &OxFFOJ)y 2)| (0wM4F&d7 FF) 1); SET LCD C*1D PARAMETERtjLCDDATAXO ,rtftrtv&0xFFOO)2)| (I ,startedtFF);write dataW ET_LC O_CM D_P A UAH FT F 用(1 口 ,LC 匚 _C MD/(0jc0(J22&iIJx F FDO)-c 这里举例了 MTK平台的驱动程序,但是其他平台的驱动在形式上也大致如此, 不同之处在于基带芯片接口的操作方式各有不同。3.2 LCD平台相关特性:基带接口的操作方式不同的具体表现大致有以下几点:1、总线接口及
20、总线操 作方法不同,总线地址不同总线接口常用的为6800接口和8080接口,目前公司通常使用的都是8080接口 的LCD , 8080接口就是通常说的并行总线接口。在MTK平台,一般使用NFI总线, 总线地址为固定地址,不管是16bit还是8bit总线,只要直接对总线地址操作即可。 TI locosto平台则略有不同,虽然LCD也是和flash共用总线,但不能直接对总线地址 操作,而必须通过TI芯片中的一个FIFO来对总线进行操作。2、是否支持DMA, 如何实现DMA一般的LCD数据刷新都是有DMA支持的,使用DMA可以提高程序的运行效 率,从而提高LCD的刷新速度(这里的速度不是指单次刷新的
21、绝对速度。MTK和 TI的DMA都是专用的DMA单元控制。3、LCD的背光如何控制虽然LCD背光并不属于LCD驱动程序,但是要验证LCD驱动程序必须要先点 亮LCD背光。LCD背光的控制基本上分为两种情况,一种是由PMC或基带芯片 的某个引脚直接控制,只需要配置基带芯片或PMIC的相关寄存器即可控制背光, 为了背光的效果更好,或驱动能力更强,也会使用专门的背光IC。关于背光IC的详 细内容,将在背光的文档中详细讨论。4、LCD的供电引脚、片选信号、读写信号、reset引脚等LCD的供电、片选等信号引脚,对LCD的控制也相当重要,这些引脚和硬件原 理图相关性。3.2 MTK平台驱动程序解析MTK平台的驱动程序的模块性较好,平台相关参数的配置全部都在lcd_sw.h文 件中,下面我们就来详细解析一下这些参数。例5:MTK驱动平台相关参数解析1、MTK总线地址配置参数:#define LCD_HD66781_CTRL_ADDR#define LCD_HD66781_DATA_ADDR/define MAIN_LCD_CMD_ADDRdefine MAIN LCD DATA ADDRLCD_PARALLELO_AO_LQW_ADDRLCD_PARALLELO_AO_HIGH_ADDR
链接地址:https://www.31ppt.com/p-4885941.html