闪屏问题记录

 

由于自动调节背光导致的闪屏问题最终证明牵涉一大推问题,现象简单,处理复杂。细节决定成败,做好细节真的比简单的做个产品要复杂的多。

开始屏幕的闪烁被认为是由于光线传感器等级上下波动导致的,打开log后发现,光线报点是有序上升或者下降的时候,同样导致闪烁。注定是个悲剧的开始,此问题缠绕我一周之久,还没有定案。

开始的解决方案没有从根本上查原因,导致第一次提交的代码很快需要修改。为了确认是每次设置pwm时有异常,本人写了一个循环调用该函数,为了方便修改参数,采用sys文件注册的方式,注册了两个sys节点变量,可以在平台设备总线上找到变量,方便修改循环时间和打开该循环过程。

Sys文件系统真是调试的一把利器啊。感慨完后记录测试情况,每次改变pwm的时候就会有一次闪烁,与当初观察一致,我开始的解决方案是将背光改为8级,每次调节直接跳到相应等级,但是会有级数太大时闪烁4、5次,新问题出现,不能完整解决此问题。当循环速度达到20ms时,无闪烁现象,原因应该是视觉的超过50hz的闪烁不再敏感导致的吧。我有开始第二个解决方案的探索,修改上层设置循环的时间。

在powermanagerservice.java中,有1000/60的调节背光时间设置。这个时间更改为500/60后自动调节滑块时无闪烁,但是光线调节时候仍由轻微闪烁,打印log后发现光线调节时log时间并不规律,推测由于上层调用层次过多导致部分循环延时,仍然无法解决闪烁问题,不过对背光调节的层次关系有了更深入的了解。

通过sys文件调试,输出循环函数调用发现屏幕在较黑暗情况下会有发亮过程然后到相应等级。为了验证此问题,与硬件人员共同测试了该信号,未果后,循环同一等级测试该信号,发现在1ms循环频率下,调用pwm间隙间,每5ms左右会产生一个1ms的空闲拉低时间,该时间则会导致屏幕发亮。此问题如何产生,需要了解BP端clk配置规则。

另外一个类似项目,没有此类闪烁发生,测试后发现同样存在一个100us的空闲拉低时间,是这个拉低时间导致的屏幕发亮么,我想起了之前关于速度测试时候的考虑,如果是5ms亮一次的话,人眼频率应该为200hz,视觉上是不应该有闪烁的。这个是真因么?

经过1ms,5ms,10ms,15ms,30ms循环测试后,发现该项目上每次设置始终频率时始终是有一个1ms的拉低电平,并不会随着循环时间增加而增加。其中设置30ms的时候会感觉到屏幕闪烁。抓住这个问题后,与另外一个平台同样的程序进行测试,发现也存在拉低电平,但是只有100us的时间,原因应该就在这个地方。如何将该平台的这个1ms拉低脉冲消除掉,应该是解决该问题的关键了,现已与主平台厂商进行沟通,着力比较这两个平台区别,希望能尽快将问题结局。

Bp端跟踪的结果是都经历了大概1ms的循环过程,每次设置新的频率时,时钟源会拉低一个信号,在循环等待1ms过程中判定是否跳出。在老平台通常循环100us时就可以跳出了,而新的平台必须走完这段循环才可以。更改后可以缩短到200us,效果比原来好一些,但是仍然有微弱的闪烁。由于拉低显示的效果是屏幕亮一下,因此为了视觉的效果,更改为拉高,就是暗一下的效果,这样总体效果比原来要好很多。问题总算解决了。应该算是最好的方案了。至于为什么不能再降低到100us内,据芯片厂商说十分不推荐,担心系统调节时候出现其他问题,由于项目较赶,没再继续深究。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newtonnl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值