LCD显示屏 - lvds点屏问题

  本文主要以lvds点屏过程中出现的一些问题,针对这些问题进行分析,以及相对的解决方案。这些问题也可能出现在其他显示屏的调试上,因此这篇文章重在描述现象、原因分析、解决方案的原理,不会去说怎么改代码、改哪一行、哪一些代码这些非常细节的点:重原理不重细节,期望是能以此举一反三,解决同类型的问题。

1. 显示屏屏闪(纹波)

1.1 现象描述

  显示屏出现抖动屏闪的现象,如下图所示:
在这里插入图片描述

1.2 原因分析

  首先有个屏幕信息:lvds屏的接口时钟范围是20~71MHz,我在dts里面给出panel的时钟是20MHz,按照理论是可行的,我就怀疑是PX30控制端未必能输出稳定的lvds接口时钟:20是最小的,所以我就直接将dts中lvds的时钟频率上调到71MHz,结果就不闪了(可以用示波器量一下,设置20MHz的时候,实际lvds能不能测到20MHz,有可能实际达不到这么高:这需要实测一下,我没做,后来者可以验证一下留言分享一下)。

1.3 解决方案

  dts中,将lvds时钟从最小频率调到最大频率(20MHz -> 71MHz):
在这里插入图片描述

2. 启动过程中闪白屏

2.1 现象描述

  设备启动时,先闪一下白屏,然后正常进入到logo显示的状态,详细情况如下图所示:
在这里插入图片描述

2.2 原因分析

  pwm背光和lvds使能的时序不对导致的:先开pwm背光,然后lvds输出使能,导致出现的白屏画面。

2.3 解决方案

  pwm背光使能加延时 > lvds屏使能延迟(先使能lvds后使能背光):
在这里插入图片描述
在这里插入图片描述

3. 触点坐标下垂

3.1 问题描述

  显示屏上 4 5 \frac{4}{5} 54的区域点击都是正常的,到了底部 1 5 \frac{1}{5} 51就出现了手指物理点击点在下,实际显示收到的在偏上的位置,具体如下图:
在这里插入图片描述

3.2 原因分析

  显示屏实际物理坐标:<1024, 600>,触摸屏配置的物理坐标:<1024, 680>,而实际触屏底部四个虚拟按键就是多出来的80像素点宽度。这个触摸屏驱动在注册input时,将屏物理坐标最大值,按照<1024, 680>这个注册给的android,这就导致android认为触摸屏硬件和显示屏显示区域对应映射关系是:680 < - > 600,当手指点触到虚拟键黑框区域,触屏上报y坐标大于600,android会把这个超过600的按比例映射到显示区域对应600以内的位置。

3.3 解决方案

  在触屏驱动代码中,判断dts给的触摸屏最大最小值和触摸屏设置参数的最大最小值是不是一样:一样就直接上报,不一样需要以dts给的参数为准(因为dts给的size大小才是和显示屏一致的):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CSDNmianfeixiazai001/article/details/124202048