在我们的设备开发当中会, LCD的开发过程中会遇到一些问题,今天我们给大家带来一些LCD常见问题的,把它汇总下来提高我们再次开发的效率。
下面我们来看看有哪些详细问题:
背光上电后LCD是默认有黑屏和白屏两种情况的。
这个可能是遇到最多的情况了,开机之后黑黑一片或者是白白一片,你的一腔热情瞬间降到冰点,不怕可以从下面几个地方入手:
a、 检查供电
如果供电都不正常,你再使劲调都是浪费感情,我们检查两路电VCC(2.8V) IOVCC(1.8V)。
(1)、检查手机连接器上VCC和IOVCC是否有电,没有电那就检查软件是否写的正确,
是否申请到这两路电,这两路电是否由哪个gpio控制而没有打开。
(2)、检查转接板一端是否有电供到LCD panel上,如果没有八成是转接板有问题,你想办法把电引到LCD panel上或着直接重新做转接板。
b、检查背光
之所以晚上能看到月亮,并不是因为月亮本身会发光,而是因为太阳照到了月亮反射到咱们的眼睛里了,同样LCD 本身的颜色你也是看不到的,只有背光照到上面你才能看到五彩的世界,所以黑屏的情况接查背光是必要的,查看spec上背光的led是并联还是串联,是否你给你电压不够,这里有个小技巧,大多数背光芯片的典型电流值都是20MA,根据这c个你也可以判断背光正常与否。
c、检查接口模式
厂商的IC都可以支持好几种接口的配置(一般叫m0\m1\m2)RGB接口的屏你非要配置成MDDI的,结果可想而知。
d、检查reset
有些LCD并不是上电就复位的,需要自己手动复位,没有复位就不会正常显示。一般都是高低高这个逻辑,低电平保持多长时间由spec上规定的写,当然你写上10ms就一点问题都没有了(低电平保持时间都是us级别的)。
e、检查接口连接
无论是RGB接口还是MIPI接口,数据一定要保持通路,屏点不亮除了检查供电外,数据的通路也是有必要检查的,这个需要你一根线一根线的去测要有耐心哦~_~。
如果你上面5条都没问题,下命令0x11、0x29在LCD的FPC上的VGH、VGL的电压就会被拉起来(4v~16v左右,一般会大一点10v多),可以通过FPC上的测试点测出来。
f、检查代码
检查代码说的有点笼统,你会问“我知道代码哪有问题还找你干嘛?”。当然代码内容是比较多的可以从下面几个方面入手:
(1)、framebuffer申请的内存不够大,比如你的屏是QHD的,而你只申请个WVGA这么大的buffer,那手机就会因为你小气而生你的气“小样的我就不亮”,所以跟做人一样你还是阔气一点多给点buffer吧(高通平台有个MSM_FB_SIZE这个变量由bootmem来申请大小)。
(2)、如果是mipi接口CMD模式,你要检查TE信号,LCD默认的刷新率是60HZ(某些IC是可以配的),如果你的TE(vsync)信号比这个小的话那肯定也不会点亮或者出现麻点条纹等,假如LCD是65HZ每秒从panel上的ram往LCD的显示电路上刷,刷完之后会给手机一个TE信号,手机接收到TE信号在刷下一帧,那你手机才60HZ接收TE是不有些慢啊,貌似死锁了啊,手机就刷一帧,之后就是遥遥无期的等待,看黑屏了吧(注意:这个TE小的话cat dev/graphics/fb0会卡死)。
(3)、如果是RGB接口,你SPI的信号线是否定义正确,如果是mipi接口你发包的方式是否正确,mipi的datalane和屏率是否正确,是否满足LCD开光是否满足逻辑,是否没跑到LCD的代码手机就挂了......
代码上的问题太多了主要抓住这几个方面:panel上电不对,初始化代码不对,数据传输不成功,相关配置不对。
如果你调试的LCD 出现了麻点,那我要先恭喜你,你离成功不远了,麻点的情况大致有下面几种:
a、触发的电平逻辑不对或控制逻辑不对
如下NT35510的datasheet
类似于上面的寄存器设置错了最有可能出现麻点
b、datalanbe或TE信号不对
见黑屏第5项第二条,panel上只刷了一帧不再刷,麻点的可能性很大。
闪烁的问题分为两种是背光闪 or panel闪
a、背光闪
关闭panel打开背光,看是否闪,如果闪可能panel的背光设计有问题或者是残次品,或者背关芯片供电不稳。
b、 panel闪
如果背光不闪,panel闪的话大部分原因跟频率有关系,把频率调整到何时的值看是否还有闪的现象,调整panel自身的刷新率看所否还有有闪的现象
这个应该算是比较好解决的问题了查看是否是上层的图像就不对,如果对那看下面时序:
VSYNC和HSYNC的proch值会影响屏RGB屏和mipi video模式的屏的图像偏移
51 pinfo.lcdc.h_back_porch = 100;
52 pinfo.lcdc.h_front_porch = 100;
53 pinfo.lcdc.h_pulse_width = 8;
54 pinfo.lcdc.v_back_porch = 20;
55 pinfo.lcdc.v_front_porch = 20;
56 pinfo.lcdc.v_pulse_width = 1;
VSYNC影响上下
HSYNC影响左右
裂屏都会跟panel和手机的同步信号有关系,手机端叫TE或VSYNC,panel端叫做tear(一般为0x35h和0x36h寄存器)。要保证两边的信号同步才不会出现裂屏。
这几项都跟panel内部的供电有关:
VGH:最高供电电压
VGL:最低供电电压
VCOM:参考电压,相当于咱们说的地
gamma矫正电压(就是初始化代码里内容最多的那些组)
这几个电压直接影响panel上的每一个TFT电路,所以调整到正确值才能保证上面的问题不发生,建议用厂家的代码,有这种问题最好让FAE提供典型的电压值和panel上的FPC的测试点,不要盲目的尝试浪费时间。
android系统调整density的值
花屏可能是bpp不对或者gamma值不对
方向和颜色的顺序(RGB orGBR)都可以在寄存器中调整
a、调整代码中的分辨率
b、调整寄存器中的分辨率
c、NOVATEK的IC和同NOVATEK 功能相近的IC中有一位寄存器是调整刷新是否按8的倍数
如480x800480x864 的line都是8的倍数,而480x854却不是8的倍数,这样你就需要调整这位寄存器使数据可以正常刷新到屏上。
以novatek为例调整这以下三个寄存器的刷新时间可以解决问题。
DisplayTiming Control in Normal / Idle Off Mode (BD00h~BD04h)
DisplayTiming Control in Idle On Mode (BE00h~BE04h)
DisplayTiming Control in Partial / Idle Off Mode (BF00h~BF04h)
十一. lcd点不亮
a、检查背光
如果是lcd液晶屏,连接好背光,查看背光是否亮,背光不亮,后面的工作都做不了。Oled屏不需要背光。
b、检查供电及接口连接
用万用表测量电压,如果供电都不正常, 如果供电不正常,可能是转接板有问题,换块转接板试试。
c.检查代码及reset
如panel上电不对,初始化代码不对,数据传输不成功,相关配置不对等。
十二. 闪烁的问题分为两种是背光闪 or panel闪
a、背光闪
关闭panel打开背光,看是否闪,如果闪可能panel的背光设计有问题或者是残次品,或者背关芯片供电不稳。
b、 panel闪
如果背光不闪,panel闪的话大部分原因跟频率有关系,把频率调整到何时的值看是否还有闪的现象,调整panel自身的刷新率看所否还有有闪的现象
十三. 图像偏移
VSYNC和HSYNC的proch值会影响mipi video模式的屏的图像偏移,VSYNC影响上下,HSYNC影响左右。
十四. 开机LCD亮的瞬间有花屏
出现这种问题,一般都是由于LCD在初始化完成后刷新第一副图像未完全准备好的时候背光已经亮了。解决的办法就是在lk 时候背光亮之前的延时相应的加长一点。
十五. lcd闪红色边框
这个是因为调试eng版本设置的,刷user版本不会,不过这个可以在framework里面关掉。
另外还有些其他情况的问题,如下:
a 显示镜面反向
查找模组datasheet,一般模组都会有一个寄存器来矫正显示各种反向的问题,如hx8399c模组,出现镜面反向,增加0x36寄存器,写值为0x02就可以解决这个问题。
b 刷lk导致机器被刷坏,开不了机
这很大一部分是因为屏参初始化代码指令length写错。
c kernel显示正常,lk不亮
这个可以排除硬件连接及模组fpc等的问题,主要查lk屏参初始化配置,基本能够解决。
d 背光先亮,出现一段时间白屏,然后屏亮
减少背光的延时,一般能够解决。