关于display相关的一些内容—关于RGB接口屏调试

关于display相关的一些内容—关于RGB接口屏调试

1)关于VBP、VFP、HFP、HPB的影响

需要注意的是,对于像RGB接口tft9k23553 这样的tft屏,本身支持通过硬件拉高或者拉低两个管脚来控制扫描的方向和起始点,从而实现上下屏镜像或者左右屏镜像。本身不存储一帧数据,所以只是通过扫描方向和起始点实现此种镜像。
但是如果调整了一个方向后,你再硬件修改了上下镜像方向,那么VBP和VFP可能需要重新调整,HFP和HBP不需要调整。否则出现图像被往上或者往下推了。
但是如果调整了一个方向后,你再硬件修改了左右镜像方向,那么VBP和VFP,HFP和HBP都不需要调整。

2)关于android density设置的影响

3)关于gpio和lcdc管脚功能复用导致的显示偏色的问题

调试RGB接口的lcd时注意gpio的复用问题,某些lcdc管脚可以作为gpio使用。以前遇到一个这样的问题,系统启动时,uboot启动的logo是黑底白字的,但是进入kernel后不久马上变成黑底偏红色。从一开始的黑底来看,lcd应该没问题。系统都起来还是黑色偏红,于是,故意显示个全黑屏,然后,测量lcdc的各个信号,vsnc,hsync,den,都没问题,rgb的各个管脚(主要这里是rgb屏所以是rgb并行信号),发现有个r3颜色管脚一直拉高,按理,全黑色应该所有rgb信号为0才对。说明此管脚被别的驱动误用了。经过搜索,发现touch驱动把此管脚设置为gpio,而不是lcdc的function了,并且拉高了,所以修改此误用就好了。所以此问题一定要看完整启动过程,逐个思考排除,每一个地方的问题,屏问题?lcdc信号问题?连接问题?驱动问题?量信号分析排除才能解决。

4)关于一种lcd屏闪烁问题的分析

经过icn6211芯片,mipi转rgb并行信号,到truly的tft9k2353屏,

一种屛闪现象:
(1)刚启动时,屏幕不闪—clock、vfp、vbp、hfp、hbp等已经调整为不闪烁了。
(2)但睡眠后,20秒,再唤醒,出现屏幕闪烁,有时候很严重,有时候轻微局部闪烁。 但如果睡眠超过5分钟,那么再android唤醒亮屏,就不闪烁。或者闪烁时,出现过一段时间,维持亮屏时,闪烁感越来越轻微,到2分钟后,基本不闪烁。

后面发现,这是这款液晶屏的液晶特性,如果先把屏shutdown,再断rgb信号源,再断reset,再断电,那么就没有问题。
如果先断信号源,再断电,再shutdown屏幕,那么就会出现此问题。
这叫液晶极性状态错误问题。
由于信号突然断了,电中断,于是屏中的液晶状态处于上一个状态,而没有恢复。再上电时,液晶分子需要一定时间(好几分钟)才能自动回来初始状态,于是才不闪烁。
如果先shutdown,再断信号和电,则,由于shutdown已经把液晶分子恢复为原始状态,此后断电,就无所谓,所以,再上电就没有问题。

虽然液晶扭转控制很快,即白点变黑点,动画切换没有问题,但上面的随机状态可能有余电,于是后面上电扭转就不正常。
所以上电和下电一定要完全按照屏的specification的要求。

这种闪烁是亮屏一段时间能恢复的,而且怎么调pclock、vfp、vbp、hfp、hbp也不会修复改善。

另外一种闪烁,是调vfp、vbp、hfp、hbp、pclock等才可以修复。
另外亮屏多长时间也不会变好。
还有一种闪烁,是硬件问题引入,转换芯片电源上串了磁珠,都换成0欧电阻,屏闪的问题消失。特别是图中有黑白相间的线时,闪烁特别明显。测试display,一定要做几张,黑白像素相间的图片,看看能否不闪烁。或者白灰相间的图片,还有黑白横线交替(较粗),黑白竖线交替(较粗),黑白斜线等。不做这种测试,以后可能会遇到闪烁的问题,如果图片是特殊的。

5)一种lcd屏褪色问题的分析

另外truly的TFT 9k2353屏一种褪色现象如下:
现在的DVT2机器白屏褪色出现特别多。DVT1基本不出现。 以前说是vsync、hsync信号丢失导致屏幕出现异常,因为屏幕电压取自于电源和vsync、hsync的clock。这种状态下,不掉电不能恢复。 这更进一步说明,现在的vsync和hsync信号有问题,而这两个信号是icn6211根据mipi clock信号而来的。 现在种种现象都感觉不是mipi信号有问题就是fpc的vsync和hsync有问题。 麻烦量一下这些信号。对比一下。 另外请问DVT2的机器对mipi信号线的布局、走线改动或者电路是否有改动啊?另外vsync和hsync所在的fpc是否有改动?以前说truly的这款TFT屏在vsync和hsync丢失时,会出现VDDIO、VCI、VGH、AVDD、AVDDM等电压出问题。然后就出现白屏褪色了。
如果Hsync有问题,但固定周期时,会出现整行的所有像素的偏移,因为hsync控制换行。
如果Vsync有问题时,但固定周期时,出现整个图的错乱,因为Vsync控制一帧的开始。 Pclock出问题时,则采样的时刻出问题,对应黑白相间的图,就因为0,1采样出错,导致某些像素点出问题。

6)一种lcd白屏现象

另外对于rgb panel,例如上面的truly屏。
如果Data clock的极性配置错误,那么即使vsync、hsync、data enable管脚的频率和极性都正确,那么屏幕也会是个大白屏。即使数据是全0的黑。所以Dclk的频率和极性一定要配置正确,否则无法显示。
用示波器检查一下信号。并尝试一下极性配置修改,看看什么现象。
另外这个屏的特点,如果Hsync或者vsync信号没有输入或者不同步,那么屏幕就变成白屏(背光亮的情况下),或者慢慢褪色成白屏。因为这款屏的内部电压AVDDM等依赖Hsync和vsync信号,才能生成,没有这些电压差,就没法有液晶偏转,也就没有颜色控制了。

很多硬件对上电都有时序限制,如果实现不对,那么硬件可能出现(或者偶现)一些奇怪的bug。所以需要使用示波器来测试信号,看驱动配置的时序是否满足硬件spec的要求(因为硬件设计阶段时,是FPGA设计的,使用了事件驱动方式设计,所以对特定信号时序有依赖的要求。)。这个验证很重要。别忽视,特别是出现硬件不正常时,更需要注意测量一下。示波器对写驱动的人来说,太重要了。
客户反馈设备反复开机,会出现偏白问题,现场测试,开机30次,出现了一次,显示图像轮廓还在,只是颜色偏白,此时vgh,vgl电压 低于正常值。
测量开机时序, 如下图,( 蓝色–vdd 3.3v, ×××–reset,绿色-shut,粉色–clock。)
调整时序,先提供clock信号,再提供shut信号,开机测试 200多次,没有出现偏白问题。可继续测试这版调整。

调整的依据是datasheet的说明。

对于RGB的并行信号的panel:
#define OUT_TYPE SCREEN_RGB
#define OUT_FACE OUT_P666
#define OUT_CLK 6854400 //TODO:算clock时,由于是rgb并行(即所有r0、r1、…、g0、g1、…、b0、b1、…管脚同时传输。),所以(H_PW+ H_BP+ H_VD+ H_FP) (V_PW+V_BP+V_VD+V_FP) fps

/ Timing /
#define H_PW 10 //即hsync本身宽度占多少列
#define H_BP 20
#define H_VD 240
#define H_FP 10

#define V_PW 2 //即vsync本身宽度占多少行
#define V_BP 2
#define V_VD 400
#define V_FP 4

#define LCD_WIDTH 240 //need modify
#define LCD_HEIGHT 400

关于clock问什么是这么算?请参考

具体请参考我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html

另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html

原文地址:https://blog.51cto.com/8906847/2367999

时间: 2024-10-20 22:53:22

关于display相关的一些内容—关于RGB接口屏调试的相关文章

关于display相关的一些内容—其他杂项

关于display相关的一些内容-其他杂项 注意屏内的driver IC和panel屏的区别 屏所使用的driver ic的配置需求.一般一款driver IC会用于多种尺寸的多款lcd屏(几种分辨率),然后driver IC的spec上会列出支持的最大分辨率,最大分辨率以下的其他分辨率可以通过寄存器配置,可以固化在firmware的OTP上.一般屏幕生产时会把driver IC和panel做成一套.而panel的分辨率是固定某个值.针对这个屏,因为屏参数固定了,有很多屏内部会有nvram保存固

关于display相关的一些内容(总体)

关于display相关的一些内容(总体) 请看<关于linux的通用显示框架和android显示框架(必读的总结).docx> 一定要明白各个部分之间的关系,哪些部分为了Rendering渲染,哪些部分为了送显. android或其他显示架构中,应用向类似android的surfaceflinger申请buffer,然后使用gpu在各自的buffer中渲染(画)相应的图,然后类似android的surfaceflinger会把所有的显示的buffer做图层的merge处理(利用hardware

关于display相关的一些内容—MIPI panel的调试

关于display相关的一些内容-MIPI panel的调试 MIPI接口中DSI - Command and Video ModesDSI-compliant peripherals support either of two basic modes of operation:Command ModeSending command and send/receive data to/from peripheral.Video ModeTransfer of real-time pixel dat

关于display相关的一些内容—lvds接口

关于display相关的一些内容-lvds接口 lvds接口<显示lvds–LVDS接口分类,时序,输出格式.docx>需要注意的是,lvds设置的时钟频率是像素时钟频率,即(H_PW+ H_BP+ H_VD+ H_FP) (V_PW+V_BP+V_VD+V_FP) fps. 经验:所以出现屏幕闪烁严重,而且是一线一线的花屏,那么一定要注意clock,测量一下,看看频率对不对.不要光相信软件设置是多少,实际硬件就多少. 注意vsync.hsync信号跟RGB屏不同,不是独立的信号线,而是特定b

Extjs4对Model定义相关的校验内容

方法名称在添加上一个Message就可以 设置错的内容了 config的内容如下 config配置内容 value,用户传递的值 来自为知笔记(Wiz)Extjs4对Model定义相关的校验内容,布布扣,bubuko.com

RoundTo 及其相关的一些内容总结

1.Round(四舍六入五留双) 功能说明:对一个实数进行四舍五入.(按照银行家算法) 例:var    i, j: Integer;begin    i := Round(1.5); // i等于2    j := Round(2.5); // j等于2end; 在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双.即当舍或入位大于或小于五时按四舍五入来处理 ,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值.例:  

C++ 第三十四天:类相关的一些内容

复习 // 以下内容含个人见解 Ⅰ.有时不得不用到“构造函数初始值列表”,原因是有些编译器不支持类内初始值,这样做可以避免在函数体内初始化. 需要注意的是:被初始化列表忽略的数据成员将被默认初始化(结果取决于位置,可能产生可怕后果).下面是构造器的 N 种情况: 程序员直接忽略构造器 --> 产生默认合成的构造函数 --> 成员被默认初始化 --> 不确定的结果. 给数据成员提供初始值(Java 中所谓的属性初始化),不写构造函数 --> 默认合成的构造函数使用提供的初始值初始化对

filebeat相关registry文件内容解析

filebeat的registry文件中存放的是被采集的所有日志的相关信息. linux中registry中一条日志记录的内容如下 {"source":"/var/log/messages","offset":5912,"FileStateOS":{"inode":38382035,"device":64768},"timestamp":"2017-03-1

【linux】 linux中的进程管理相关的一些内容

_ linux进程管理 ■ top top命令用于动态地查看系统的进程和其他一些资源的信息.开启top的时候可以加上-t <sec>来设置top更新的频率高低.进入top界面之后,可以输入一些命令比如P表示以cpu资源占用率对进程排序,M表示以内存的使用率排序进程,N表示以PID的顺序排序等等.想要知道更多命令可键入?来查看 top的界面说明: 第一行:<当前时间> <开机到目前的总时间> <登录用户人数> <系统最近一分钟.五分钟.十五分钟的平均负载