MTK平台LCM打静电分析

说明:ESD就是静电。打ESD就是打静电。静电这东西是瞬间电压,特点就是瞬间电压很高,达到10K左右,或更高。而电流是非常小的。

因我们的现在芯片都是半导体,半导体对外界电压很敏感的。如果碰到高电压,虽是极小的电流,一样会出问题。这时出问题有的是直接损坏,还有的是暂时损坏,然后会在电压正常时又恢复了。

2: lcm_esd_check和lcm_esd_recover就是针对这能自动恢复的时候。他是启动了一个定时器,启动了一个线程,在规定的时间内去读一下IC的某一个寄存器。如果出现问题了。这个寄存器在受到外界电压的影响就会乱掉,这时读取后的与理论的值是不同的。

比对发现不同时,就会将LCD的初始化重写一次,这样就可以从花屏的状态退出来,达到正常显示。

[FAQ14251] 如何配置LCM ESD Check——读寄存器方式

params->dsi.esd_check_enable = 1; //enable ESD check
params->dsi.customization_esd_check_enable = 1;
params->dsi.lcm_esd_check_table[0].cmd = 0x09;
params->dsi.lcm_esd_check_table[0].count = 1;
params->dsi.lcm_esd_check_table[0].para_list[0] = 0x80;
cmd:是你要读的寄存器
count:是你要读取的寄存器个数
para_list:是你要读取的正确的返回值
如果读到的返回值不是预设的值,显示系统会做恢复处理:重新初始化(将LCD的初始化重写一次)

FAQ13728 MT6735通过读寄存器方式做ESD,客制化需求—-多个返回值

打静电问题分析:

1.未打静电情况下,如果出现lcm esd 寄存器读取值返回错误的问题,也请联系屏厂解决。
2.打静电时候,如果出现连续闪屏后无法自动恢复,按powerkey可以恢复(或者静止手机一会,待电荷释放后,按power可以正常亮屏),出现这种现象的原因是:连续recovery 5次LCM依然无法恢复正常,esd thread被停止。原因是由于LCM积累电荷太多导致。
3. 如果出现打静电导致,系统hang住或死机,可以提交e-service,交由MTK处理。
4.在打静电实验中,会概率出现恢复缓慢的问题,本文介绍所花费时间的构成,以及优化建议

打静电后概率出现LCM恢复缓慢的问题,主要耗费时间分解为

  1. ESD检测线程每2s工作一次
  2. 通过读取LCM寄存器检测ESD,DSI读取超时为2s
  3. 读取超时后,重新初始化,LCM init时间根据不同DDIC而不同

根据以上时间分解

  1. ESD检测线程唤醒时间不建议修改,过于频繁的唤醒ESD线程,会增加系统负荷,2s是内部考量后较为合理的时间选择,建议保持
    在primary_display.c的primary_display_esd_check_worker_kthread函数中有设置msleep(2000);
  2. ESD读取超时时间,可以适量缩短为500ms,具体修改方法,
  • 对于Turnkey方案,alps/mediatek/platform/mt65xx/kernel/drivers/video/dsi_drv.c中
  • 对于AOSP方案,alps/kernel/drivers/misc/mediatek/video/mt65xx/dsi_drv.c中
    接口DSI_dcs_read_lcm_reg_v2,修改WAIT_TIMEOUT = HZ/2;
  1. LCM初始化的时间部分,请咨询DDIC FAE,尽可能缩短初始化时间

本文地址:https://blog.csdn.net/qq_30624591/article/details/85890289

(0)
上一篇 2022年3月23日
下一篇 2022年3月23日

相关推荐