MTK lcm调试总结及解决思路

一、常见lcm问题

LCD会注意到一下问题:
1.gamma是否超标。
2.刷新率是否合适。
3.flicker现象是否严重或能否轻易察觉。
4.ESD是否合格。
5.背光调节是否存在问题,特别是自动调节是否有不平滑现象,或者亮度调定某个范围屏幕出现闪烁等。
6.图片显示是否有失真的现象。
7.是否有噪点等问题。

接口类型:
1.并行接口:
MCU接口,LCD模组须有自己的GRAM。
RGB接口,通过时钟同步来实现同步传输,此模式不需要LCD有GRAM来缓存数据。
2.串行接口:
SPI接口。
MDDI接口,高通公司的一种接口方式,传输率高,功耗低。
DSI MIPI接口,MIPI联盟推出的一种高速低耗接口。

遇到的问题:
1.ESD问题。
问题描述:正反打静电,屏幕出现花屏或黑屏。

问题分析:LCD有可能被打死了,或者与LCD连接的时钟或数据线被打乱,造成数据乱,显示花屏。

解决方案:mtk平台有一个时刻检测LCD是否受到静电干扰的线程,一旦发现问题会重新初始化LCD,具体的实现可参考MTK提供的文档 “DSI Video Mode Support v1.0.pdf”

2、 未打静电情况下,如果出现lcm esd 寄存器读取值返回错误的问题,也请联系屏厂解决。

3、打静电时候,如果出现连续闪屏后无法自动恢复,按powerkey可以恢复(或者静止手机一会,待电荷释放后,按power可以正常亮屏),出现这种现象的原因是:连续recovery 5次LCM依然无法恢复正常,esd thread被停止。原因是由于LCM积累电荷太多导致。

4、 如果出现打静电导致,系统hang住或死机,可以提交e-service,交由MTK处理。

2.TP失效。
问题描述:xxx项目上出现TP偶尔失效的现象。有时开机就无法操作tp,有时开关屏幕就出现无法操作屏幕,有时长时间的使用也会偶尔出现tp失效。

问题分析:通过与TP FAE沟通了解,能够影响TP的主要因素是LCD的Vcom信号。同时,通过同LCD FAE沟通也了解到,LCD的刷新率可能也会对TP造成影响。

解决方案:LCD的vcom信号通过修改调节LCD相关寄存器得到一定的优化,同时TP那边也通过调节固件参数,TP失效的出现几率有所降低,最后再将LCD的刷新率降低一些但不影响绝对实用,问题得到基本解决,测试也再没发现此问题。

备注:此问题出现在video模式的LCD屏幕上,暂时在command模式的屏幕上没有发现,同时与之搭配的TP也是很低廉的,做工也不是很精细,或许也是其原因。

3.噪点。
问题描述:在xxx项目上遇到的噪点问题,就是看上去麻点,看上去“很脏”,这个在用户体验上很不好。

问题分析:通过与MTK沟通了解,最终锁定在MTK自己的为实现去除contour现象,就我们肉眼观察最直接的就是像梯田一样,一圈圈的,这种现象在一张渐变色彩的图片上观察最为明显,但用户体验要好很多。对于contour现象,只是在LCD的分辨率低于24bits时才会出现,因为本身的操作系统都是以24bits—RGB888真彩存储的,最终处理后到LCD显示,如果LCD低于24bits就会砍掉多余的位,这样显示起来就会失真。

解决方案:①换屏幕,提高到24bits真彩的。②取消MTK自有的去噪功能,同时接受contour现象。最终选定为第二种,因为成本。

4.屏幕闪烁。
问题描述:xxx项目上遇到的问题。在将背光调到最低时,仔细观察屏幕会看到在闪烁。

问题分析:因LCD背光控制通过PWM,PWM通过占空比来实现对亮度的调节。PWM可通过调节频率来降低这种闪烁的几率。

解决方案:提高PWM频率的同时,对背光调节的亮度范围重新设定,使其避开了会出现问题的值范围。

5.xxx出现的开机logo显示不正常问题。
问题描述:LCD在uboot中显示不了bootlogo,但是在kernel中重新初始化LCD寄存器的话是可以显示正常,以后都正常。

问题分析:首先怀疑是uboot中初始化代码的问题,但是kernel和uboot都是用的同一份代码,所以应该不是这个问题。但是可以比较确定是LCD初始化有问题,我们就会考虑上电是否正确,上电时序是否正确等等。

解决方案:通过排查,发现在uboot中有一个电压并没有在IC初始化前上好,这个问题解决了,但是uboot显示的问题还没解决,通过上电时序排查,在LCD的3个电压全部上好后100ms,IC寄存器开始初始化,一般来说,上好电后,IC的正常工作至少应该要几百毫秒,所以怀疑是上电后IC没正常工作就开始寄存器设置了。将IC初始化时间延后,问题解决。

6、lcm唤醒时出现瞬间白屏显现。

问题分析:白屏原因很多。不过白屏认真想一下,可以得到,背光打开的时间早,mipi数据还没有刷新到屏上就打开了背光,所以就出现了白屏。

解决:找了FAE,经过FAE测量背光和mipi的数据,发现,确实是背光打开的时间要早于刷新数据的时间。

7、在打电话时,TP出现跳点。

分析问题:TP FAE升级固件无效,最后怀疑是射频的干扰

解决:经过检查,多次做测试,发现确实是射频信号,离TP太近,导致TP在频率为850的时候出现跳点。

闪屏:

[DESCRIPTION]

       经常有客户遇到闪屏问题,直接就提issue到MTK来解,其实这样做效率并

不高。
因为造成闪屏的原因多种多样,客户提供过来的往往是一个现象,有时候
连现象都描述的不够清楚,导致定位问题的时候难以找到正确的方向。
其实客户在遇到闪屏问题时,可以做第一手分析,找到一个正确的切入点。

[SOLUTION]
常见的流程可以参考如下:
1、排除背光。
a、 把背光接固定背光,如果仍然闪屏,说明不是背光的问题;
如果屏不闪,说明是背光问题。
b、 如果是背光问题,继续分析是否有开AAL功能,如果有开
AAL功能,请将AAL功能关闭。如果关闭AAL功能后,屏不闪,说明是
AAL导致的屏闪,请提issue给MTK。如果关闭AAL功能后,屏仍然闪,
请内部确认贵司是否有在framework层做改动,很多情况是由于改动
Framework,绕过LightService直接控制背光结点导致的问题。
c、 其实当定位到是背光的问题了,这个时候就可以提问题给
MTK了,抓取Mobile log给MTK。

 2、排除ESD。
       a、如果通过第一步(a)排除说不是背光闪,第二步可以检查是否由于ESD check

导致的闪屏。可以先关闭ESD功能,看显示是否仍然会闪。如果关闭ESD功能后,lcm不
再闪动,说明是ESD check导致的闪屏。这个时候就可以提把Mobile log抓过来给MTK看了。
如果关闭ESD功能后,lcm仍然闪动,说明和ESD check无关。

  3、其他情况。
        a、如果背光和ESD都给排除了,这个时候是bug的概率比较大。(常见的情况是待机

的时候不定时的闪屏),请抓取Mobilelog过来给MTK check。

===============================================================================================

打开AAL功能(自动调节亮度)之后,在开机的时候,发现启动kernel之后背光亮度会瞬间变亮,然后缓缓变暗。

[DESCRIPTION]
打开AAL功能之后, 发现启动kernel之后亮度会瞬间变亮,缓缓变暗。

[SOLUTION]
请先检查在LK阶段,背光亮度是否有做过客制化。
LK阶段默认在alps\mediatek\platform\mt6592\lk\platform.c文件里面会调用
mt65xx_backlight_on();函数来打开背光,默认设置的背光亮度是255.
如果没有在LK阶段做过背光亮度的客制化,请忽略下面的描述,然后提交一笔e-service。
如果有做过客制化,比如将LK阶段的默认的背光亮度从255改动到150,请参考下面的方法:

启动kernel之后,瞬间变亮然后缓缓变暗的原因:
1. LK启动之后,会先设置一个亮度150给LED driver
2. kernel启动之后,会start AAL service,AAL service会默认设置一个初始化亮度值255给LED driver。所以用户看到开机过程背光会有瞬间变亮。
3. 之后AAL service会将背光缓缓的从255降低到用户在setting->brightness里面设置的背光值。(255->240->228->……->用户设定的背光值).

如果需要解决开机过程中背光瞬间变亮的问题,可以参考如下修改:
修改\alps\mediatek\custom$project\hal\aal\cust_aal.cpp这个文件:
int InitBrightness = 150 * 4;
// 添加上面这行代码,设置kernel阶段AAL service会读取到的初始背光值和LK阶段一样。

这样就在LK阶段的背光值和KERNEL 阶段设置的背光值一样了,就不会出现背光变化的现象。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页