LCD典型问题及解决方案

                                                                 LCD典型问题及解决方案


在我们的设备开发当中会, LCD的开发过程中会遇到一些问题,今天我们给大家带来一些LCD常见问题的,把它汇总下来提高我们再次开发的效率。

下面我们来看看有哪些详细问题:

一.黑屏 or 白屏

    背光上电后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寄存器)。要保证两边的信号同步才不会出现裂屏。

六. 重影or颗粒or花屏or gamma不正常 or 灰阶度不正常

    这几项都跟panel内部的供电有关:

VGH:最高供电电压

VGL:最低供电电压

VCOM:参考电压,相当于咱们说的地

gamma矫正电压(就是初始化代码里内容最多的那些组)

这几个电压直接影响panel上的每一个TFT电路,所以调整到正确值才能保证上面的问题不发生,建议用厂家的代码,有这种问题最好让FAE提供典型的电压值和panel上的FPC的测试点,不要盲目的尝试浪费时间。

七.字体尺寸不对   

    android系统调整density的值

八. 花屏or 方向or 颜色相反

花屏可能是bpp不对或者gamma值不对

方向和颜色的顺序(RGB orGBR)都可以在寄存器中调整

九. 分辨率不匹配导致的花屏or显示效果不好or图像不能覆盖整个屏幕

a、调整代码中的分辨率

b、调整寄存器中的分辨率

c、NOVATEK的IC和同NOVATEK 功能相近的IC中有一位寄存器是调整刷新是否按8的倍数


如480x800480x864 的line都是8的倍数,而480x854却不是8的倍数,这样你就需要调整这位寄存器使数据可以正常刷新到屏上。

十. LCD内部pixel clock frequency

配置不对导致的LCD一半显示正常,一半不正常花屏条纹闪烁

以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 背光先亮,出现一段时间白屏,然后屏亮

减少背光的延时,一般能够解决。



 

你可能感兴趣的:(TV)