我是靠谱客的博主 高大毛豆,最近开发中收集的这篇文章主要介绍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,尽可能缩短初始化时间

最后

以上就是高大毛豆为你收集整理的MTK平台LCM打静电分析的全部内容,希望文章能够帮你解决MTK平台LCM打静电分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部