转自LCD显示异常分析——开机闪现花屏

最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现。

其实这类问题的原理分析并不难,只是在给别人解释的时候不太好描述,因此,我特地写了这篇文章,好让大家能够更容易、更直观的理解这类花屏问题的原因,也希望能够帮助那些遇到同样问题的朋友。

环境

  • 软件:Android
  • 硬件:带GRAM的LCD(如SPI屏,DSI CMD屏)

现象

分析

从上面的动态图可以看出,出现瞬间花屏的问题,主要有两个原因:

  1. 背光开启的时间过早
  2. 对GRAM的写速度(W) < 对GRAM的读速度(R)

其实,只要任意解决其中一个问题,都不会出现开机闪现花屏的现象。开发人员第一次碰到这类问题时,往往第一反应会认为花屏就是在第一帧产生的,但实际从上面的图中我们可以看到,人眼看到的花屏其实已经是在第二帧了。

对于第一点,其实一开始我也很疑惑,如果说开机闪现花屏是因为uboot中背光开的太早导致,这个结论我能接受。但在进入Android系统后,休眠唤醒时还会有花屏问题,这就有点说不通啊?因为Android的PowerManager框架本身能够确保在休眠的时候先关背光,后关显示;在唤醒的时候先开显示,后开背光,而且我显示驱动里面也做了刷背景色的动作,只要GRAM中的数据没有被填充完,显示驱动的流程就不会接着往下走,进而也不可能开启背光。所以一旦背光点亮,说明GRAM已经被初始化了,可为什么还能看见GRAM中的垃圾数据呢?

这就引出了第二点:因为对GRAM 写的速度小于读的速度,哪怕W只比R小那么一丁点儿,只要它们同时从第一颗像素开始扫描,屏上显示的第一帧永远都是垃圾数据。

解决方法

前面已经提到过了,只要任意解决其中一个问题,闪花屏的问题就能解决。

1. 推迟背光开启的时间

这里的推迟动作其实是相对的,即你可以:

  1. 在初始化完GRAM后,等待1个TE信号,再开启背光
  2. 或者在给屏幕发送Sleep Out (0x11)、Display On (0x29)指令前,先通过Write Memory Start (0x2C)指令将GRAM初始化好

亲测第一种方法简单粗暴;

2. 提高GRAM的写速度

即提高主控端总线上的送图速度,比如提高SPI总线的时钟频率(SPI屏),提高RS/WR的切换速率或扩充DATA总线(MCU屏),提高PHY Clock Frequency (MIPI DSI屏)。

LCD显示异常分析——开机闪现花屏【转】的更多相关文章

  1. LCD显示异常分析——撕裂(tear effect)【转】

    转自:LCD显示异常分析--撕裂(tear effect) 概述 在上一篇<LCD显示异常分析--开机闪现花屏>中,我们一起分析了开机花屏的问题,在这一篇中,我将对LCD撕裂(tear e ...

  2. LCD 显示异常定位分析方法

    第一种情况: 进入kernel或android 后,如果LCM图像示异常,可以通过如下步骤来判断问题出现在哪个层面. step1:通过DMMS截图,来判断上面刷到LCM的数据是否有问题. 若DMMS获 ...

  3. 网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient

    前言 最近在项目中遇到一个奇怪的问题,同样的SDK调用,访问海康摄像机的RTSP流,发保活OPTIONS命令保活,一个正常,而另一个一发就会被IPC断开,先看现场截图: 图1:发OPTIONS,摄像机 ...

  4. android 控件花屏问题

    发现自己的手机上某个界面出现了花屏,某些控件背景被拉伸过多遮住了其他控件,很难看.这种现象高概率出现,分析了下发现:一旦发生这种现象,必然 会打印下面这种log,google了下,这种log应该是硬件 ...

  5. 痞子衡嵌入式:降低刷新率是定位LCD花屏显示问题的第一大法(i.MXRT1170, 1280x480 LVDS)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1170上LCD花屏显示问题的分析解决经验. 痞子衡最近这段时间在参与一个基于i.MXRT1170的大项目(先保个密),需要 ...

  6. 各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient

    之前的一篇博客<网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient>,我们介绍了RTSP流的检测和分析工具EasyRTS ...

  7. MSM8909中LK阶段LCM屏适配与显示流程分析(二)

    1.前言 在前面的文章MSM8909中LK阶段LCM屏适配与显示流程分析(一),链接如下: https://www.cnblogs.com/Cqlismy/p/12019317.html 介绍了如何使 ...

  8. Motor XT615 开机无限卡屏重启的取证与分析

    hello,大家好! 今天我给大家你们带来摩托罗拉 XT615 开机无限卡屏重启的取证与分析, 手机开机后卡屏,一直停留下面这画面,无限重启! 接下来,经过我们工程师的分析,图上报错必定由于机身程序太 ...

  9. recovery 升级界面顶部花屏问题分析

    说明: 实际解决问题的过程有点曲折,后面找到原因,分析清楚问题后,总结下正确的分析方法,大致分析流程如下. 问题描述: 在进入recovery的时候,第一次上电进入recovery时,顶部会有一长条花 ...

随机推荐

  1. Python日常实践(1)——SQL Prompt的Snippets批量整理

    引言 个人平时在写sql脚本的时候会使用到SQL Prompt这款插件,除了强大的智能提示和格式化sql语句功能,我还喜欢使用Snippets代码段功能.比如我们可以在查下分析器输入ssf后按Tab键 ...

  2. 常用的npm指令总结

    一.安装指令,通常是全局安装 npm install <package name> -g 二.移除全局安装包 npm uninstall <package name> -g 三 ...

  3. Apache Commons Digester 三(规则注解)

    前言 Digester规则的定义除了可以在代码中直接new规则添加到 Digester对象外,还可以用xml配置规则,如下所示: <digester-rules> <pattern ...

  4. cropper实现图片剪切上传

    一.引入文件 <script src="jquery.min.js"></script> <link rel="stylesheet&quo ...

  5. 互联网推送服务原理:长连接+心跳机制(MQTT协议)

    互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了 ...

  6. WINAPI实现简易扫雷游戏

    //扫雷 #include <windows.h> #include <windowsx.h> #include <strsafe.h> #include < ...

  7. 随机漂浮图片、右侧上下浮动快捷栏JS

    随机漂浮图片JS: //公共脚本文件 main.js function addEvent(obj,evtType,func,cap){ cap=cap||false; if(obj.addEventL ...

  8. 【常用配置】Spring框架web.xml通用配置

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java. ...

  9. 后端自测必备神器-PostMan

    作为后端的一个小小菜鸟,写代码没有把握,总怕出错,也不敢直接扔测试,这个时候就需要一个神器能够辅助自己去测试各种情况,让自己安心的交给测试,嗯……这时神器出场了------PostMan.在一个偶然的 ...

  10. How to distinguish between strings in heap or literals?

    Question: I have a use case where I can get pointers of strings allocated either in memory or litera ...