LCD调试

(1) 液晶显示模式

并行:MCU接口、RGB接口、Vysnc接口

串行:SPI接口、MDDI接口

(2) 屏幕颜色

实质上即为色阶的概念。色阶是表示手机液晶显示屏亮度强弱的指数标准,也就是通常所说的色彩指数。目前彩屏手机的色阶指数从低到高可分三个层次,最低单色,其次是256色、4096色、 65536色;目前最高的为26万色。256=2的8次方,即8位彩色,依次律推,65536色=2的16次方,即通常所说的16位真彩色,26万=2的18次方,也就是18位真彩。其实65536色已基本可满足我们肉眼的识别需求。

(3) 分辨率

LCD的分辨率与CRT显示器不同,一般不能任意调整,它是制造商所设置和规定的。分辨率是指屏幕上每行有多少像素点、每列有多少像素点。手机上LCD的分辨率一般是176点×220行的QCIF显示模式和240点×320行的QVGA显示模式。

(4) 刷新率

LCD刷新频率是指显示帧频,亦即刷新一帧屏所需要的时间,与屏幕扫描速度及避免屏幕闪烁的能力相关。也就是说刷新频率过低,可能出现屏幕图像闪烁或抖动。

(5) 可视角度

指从不同的方向清晰地观察屏幕上所有内容的角度,这与LCD是DSTN还是TFT有很大关系。因为前者是靠屏幕两边的晶体管扫描屏幕发光,后者是靠自身每个像素后面的晶体管发光,其对比度和亮度的差别,决定了它们观察屏幕的视角有较大区别。DSTN-LCD一般只有60度,TFT-LCD则有160度。

(6) 响应时间

响应时间愈小愈好,它反应了液晶显示器各象素点对输入信号反应的速度,即pixel由暗转亮或由亮转暗的速度。响应时间越小则使用者在看运动画面时不会出现尾影拖拽的感觉。一般会将反应速率分为两个部份:Rising 和Falling,而表示时以两者之和为准。

2. 接口形式:

(1) 并行方式

a、MCU接口

目前主要有i80和m68两种类型。这种LCD模式须LCD有自己的GRAM。

b、RGB接口:

通过时钟同步来实现同步传输,此模式不需要LCD有GRAM来缓存数据。接口如下:

(2) 串行方式

a、SPI接口:
        目前手机各个平台无使用此接口方式。接口如下:

b、MDDI接口:

高通公司的一种接口形式,具有传输速率高、抗EMC性能好、降低功率损耗等特点。

3. 调试注意事项:

(1) 硬件

测量硬件信号,保证硬件状态的正常:

a、背光是否打开?

LCD是否出于白屏状态?

b、数字电压和IO电压是否产生?

一般IC,数字电压为2.8V,IO电压为1.8V

c、reset信号是否有效过?

reset信号一般低有效,低有效时间看IC spec要求。

d、控制信号是否输出?

CS、RS、WR信号是否有输出

e、数据线上是否输出?

数据线是8bit、16bit还是18bit,是否有输出?

(2) 软件

手机软件系统虽不象计算机软件系统那样复杂,但同样具有类似的构架:操作系统+应用程序。

目前操作系统,一般是一个任务抢占式实时操作系统,使用中断陷阱、信号、队列等概念组织各项任务(应用程序)的建立、执行、切换。在操作系统的管理下,各项任务看似是并行运行的。

对于驱动调试需要进行两方面的工作,第一熟悉手机软件结构,第二研究新的外设功能,编写新驱动并集成到手机软件中。对于LCD驱动,目前各个平台软件上已经集成此模块代码,我们需要在此基础上进行代码调整和功能验证。

a、LCD的物理地址分配

查看主芯片memory分配,在代码实现上指定命令和数据传送的端口地址。

b、LCD命令和数据格式

根据实际的硬件设计及IC要求,决定LCD命令和数据的传输方式,保证指令和数据能有效的从主芯片侧传递到LCD IC。

c、LCD指令含义

熟读LCD IC spec,了解寄存器配置含义,理解LCD的控制方式和工作方式。

d、开关屏序列

了解POWER ON顺序和POWER OFF顺序

e、背光驱动的控制方式

电流驱动还是电压驱动?

f、LCD模块ID识别的方法

硬件电路是否支持?若无,软件如何识别?
4. 常见问题总结:

LCD的调试中,延时特别重要,一定要确定延长的时间足够,特别是更改电压寄存器后面的延时。记得有一次屏幕出现抖动的现象,一直查不出原因,厂家来人,都没解决;最后,把所有的时序测试出来,发现延时不足,影响延时的一个函数传递参数错了。
1.初始化前需要一个延时(大概为10ms),使Reset稳定;
2.如果出现花屏现象,很大的可能是总线速度问题;
3.如果屏幕闪动比较明显,可以通过调整电压来稳定,一般调节的电压为VRL、VRH、VDV和VCM;这些电压也可以用来调节亮暗(对比度);
4.调节对比度时,也可以通过调节Gamma值来实现,要调节的对象为:PRP、PRN、VRP、VRN等;
5.注意数据是8位、16位时,写命令和数据的函数注意要变化;
6.如果调试时发现LCD的亮度有问题,首先检查(考虑)提供给LCD的电流是否一致,再考虑调节电压。
7.开机花屏问题,最简单的处理方式就是在INIT结束的地方增加一个刷黑屏的功能。也可以在睡眠函数里加延时函数;
8. 如果随机出现白屏问题,一个可能是静电问题,把LCD拿到头发上擦几下,如果很容易出现白屏那肯定就是静电问题了。另外一个在有Backend IC的情况下,也有可能bypass没处理好。
9.还碰到过一个问题,写PLL的寄存器写了2次,屏幕就抖动的很厉害。这个问题应该跟LCD内部实现有关了,并不是每个都会。
10.横向抖动,看不清画面,修改ENTRY MODE
11.如果字体反了,修改drive output control ,GS,SS;
12.如果图像刷新上面的字体跑到下面等,区域刷新没处理好;
13.如果图像分开显示,起始点不在原点,多半是全屏刷新起始点寄存器没有设好;
14.DMA刷新方式,每次刷新为一行,只能一次刷一整行,不然会出错,减少了循环计算时间,提高了LCD的刷新速度,也就减少了响应时间;

15.PWM的频率
    对于LCD的背光来说,一般做法是通过升压芯片来提供对电压的支持。而这些升压芯片都会有PWM输入PIN,通过PWM来调节背光的明暗度。不过有时候我们会发现背光调节幅度陡然增大缩小,或是背光不足够亮(相对于作为GPIO PIN输出HIGH来说),但是通过万用表测量PWM输入,电压降的幅度都是处于正常情况下,这时候我们不妨调低PWM的输出频率。因为有很多升压芯片对PWM的频率都会有要求,将频率调至datasheet中标示的范围,一般都能解决此问题。
    
 
  16.LCD的星星点点
 
  在调试的时候,我们会发现LCD上有莫名其妙的星星点点。一般这种情况下,我们首先要看看VGH和VGL电压是否处于datasheet所描述的范围之内。如果属于标准范围之内,但星星点点依旧,很有可能就是时序问题。这时候不妨在代码中变更采样的时序(比如上升沿采样改为下降沿采样)。如果无法在代码中更改,也可以在clk信号线加个100R电阻,也可能解决该问题。
 
 
 17.背光的反馈电压
 
  升压芯片的输出电压需要反馈,如果没有接LCD的话,那两个极性的电压是无法出来的。线路中的二极管也是属于易损的类型,背光不亮很多情况是该二极管坏掉。反馈中的电阻如果没有计算正确,那么很可能反馈电压会超出预料,从而导致损坏LCD。
    
    
 18.显示抖动
 
   在确认VPW,VBP,VFP,HPW,HBP,HFP的设置已经符合LCD规格要求后,如果屏幕的显示还在抖动的话,不妨将输出的时钟信号频率降低,有可能解决该问题。
   
   
 19.一些英文的缩写
 
  VPW: Vsync Pulse Width
  VBP: Vsync Back Porch
  VFP: Vsync Front Porch
  HPW: Hsync Pulse Width
  HBP: Hsync Back Porch
  HFP: Hsync Front Porch

网上资料:
今天调LCD出现在这样的问题,就是显示图像时,在明暗颜色过渡间,会出现一些亮点,有时还不停的闪动,谁遇到过这样的情况呀?是硬件的问题还是软件可调呀?
我调整pixel clock 极性,由上升沿采样改由下降沿采样就没事了.不知怎么回事
2 LCD有水波纹一般什么问题
个信号short到地,可以看一下板子是否受到干扰,比如电源或晶振部分,再一个是否你输出至LCD 的信号线走的有问题,看看电源和背光电压是否有纹波,检查一下LCD周边外围电路的电阻、电容、电压是否很干净。
这个主要是在信号输入时右能出现于拢,信号线之间、地线与信号线之间出现了信号的反射或于拔;还有一种情况就是摄像头控制IC不稳定,输出的控制信号不稳或有毛剌
    1,背光芯片输出的纹波:检查charge pump(dc-dc)电路,替换为合适的滤波电容;

2,LCD driver 电源管理:

(1)3级chargepump之间确保有足够的时间延迟,不同的系统这个要调整;

(2)chargepump的输出端要加足够大的滤波电容,具体选择看波形

3,修改driver ,主要是有关显示周期方面方面的寄存器设置

肯定是背光电源module的问题,估计你采用的是PWM方式控制屏的亮度!

这种纹波产生的原因是LCD的刷屏频率与白光灯的频率频差小于20Hz造成的,就像在日光灯下看高速旋转的电风扇叶子的影响一样!好解决,要软件调一调PWM的频率,运气好就可以解决问题,如果LCD的刷频不是很稳定,就不能100%解决问题了
于LCD条纹的问题:

1、条纹的宽度,较宽的条纹一般跟背光有较大的关系
    2、有些LCD在晃动时,由于视角的变化,逐行扫描比较明显,这种情况跟有些driver IC有关系,只能通过修改参数优化
    3、参数没有调试好,涉及扫描频率、驱动行列的电压有关!

4手机 LCD&Camera ESD 问题
Air Display, Standalone(Isolated), Preview mode( Camera on)
手机为单板(不是折叠或者滑盖)
如果手机屏朝上,+-10kV pass;
但手机朝下,+-3kV就花屏了
试试屏向下把手机垫起离开桌面一定距离还有没有问题,如果好了,就找一下放电回路,可能是手机屏的控制电路与金属板距离短了后,电容增大,阻抗减小,本来可以从其它路径放掉的电,从这个电路走了,想办法提高这个路径的阻抗或为放电电流提供一个其它的低阻抗通路。
5 调试LCD出现花屏
1)信号的时序,尤其是RS,很大可能是送的数据被认为是指令而出错了。
2)复位信号的时机、时长,复位信号变高到送数据的时间足够。
3)初始化的指令先后顺序、正确性。
4)初始化时高压的打开是否符合规格式要求?

外部引脚信号:

VSYNC: 垂直同步信号,表示扫描1帧的开始。

HSYNC: 水平同步信号,表示扫描1行的开始。

VDEN:数据使能信号。

VD[23:0] : LCD像素数据输出端口。

VCLK:像素时钟信号。

寄存器参数:

VSPW:垂直同步信号的脉宽,单位为1行(Line)的时间。

VFPD: 垂直同步信号的前肩,单位为1行(Line)的时间。

VBPD: 垂直同步信号的后肩,单位为1行(Line)的时间。

LINEVAL :垂直显示尺寸-1,即屏行宽-1。

HBPD:水平同步信号的后肩,单位为1VCLK的时间。

HFPD:水平同步信号的前肩,单位为1VCLK的时间。

HSPW:水平同步信号的脉宽,单位为1VCLK的时间。

HOZVAL:水平显示尺寸-1,即屏列宽-1。

由上图可知:

扫描一帧所需的时间:

=((VSPW+1)+(VBPD+1)+( LINEVAL+1)+(VFPD+1))个行时间。

扫描一行所所需的时间:

= ((HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1))个VCLK时间。

而一个VCLK时间由LCD寄存器LCDCON1内的CLKVAL决定:

=HCLK/[2*(CLKVAL+1)]

因此扫描一帧所需的时间:

T=[(VSPW+1)+(VBPD+1)+( LINEVAL+1)+(VFPD+1)]* [(HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1)]* HCLK/[2*(CLKVAL+1)]

即帧频率为:1/T
---------------------  
作者:wangubuntu  
来源:CSDN  
原文:https://blog.csdn.net/wangubuntu/article/details/21052233  
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/ancongliang/p/10222888.html

时间: 2024-10-03 13:45:56

LCD调试的相关文章

LCD调试1.0

所谓调lcd timing就是去调lcd时序,一般是6个部分:HFPD(在一行扫描以前需要多少个像素时钟),HBPD(一行扫描结束到下一行扫描开始需要多少个像素时钟),VFPD(一帧开始之前需要多少个行时钟),VBFD(一帧结束到下一帧开始需要多少个行时钟).VSPW(指的是VSYNC处于高电平时的线的数目),HSPW(指的是HSYNC处于高电平时的VCLK的数目),这个可以根据mcu的lcd controller 节时序图上可以得到.如果这个时序不对会导致lcd controller去读写的时

LVDS,LCD调试总结(持续更新)【转】

转自:https://blog.csdn.net/a617996505/article/details/82386952 1.LVDS接口分类与数据格式单路6it LVDS 这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口.此,也称18位或18bit LVDS接口. 双路6bit LVDS 这种接口电路中,采用双路方式传输,每个基色信号采用6位数据,其中奇路数据为18位,偶路数据为18位,共36位RGB数据,因此,也称36

LCD之mipi DSI接口驱动调试流程【转】

转自:https://blog.csdn.net/liwei16611/article/details/68146912 1.LCD MIPI DSI协议MIPI-DSI是一种应用于显示技术的串行接口,兼容DPI(显示像素接口,Display Pixel Interface).DBI(显示总线接口,Display Bus Interface)和DCS(显示命令集,Display Command Set),以串行的方式发送像素信息或指令给外围,而且从外围中读取状态信息或像素信息,而且在传输的过程中

android系统平台显示驱动开发简要:LCD基本原理篇『一』

平台信息:内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博客:http://weibo.com/cpjphone 从在校时玩单片机的点阵屏,到工作后android系统下的LCD,他们像一条流水线,顺应,简单的原理构成了复杂的结构: 我们来梳理一下: 玩51用的点阵 玩51用的lcd1602 玩51.32用的TFT彩屏 对于点阵的原理相比大多数朋友都非常熟悉,

WinCE非通用调试工具汇总

WinCE-IIC调试助手(S3C2410) http://www.cnblogs.com/we-hjb/archive/2008/10/19/1314562.html WinCE下音频频谱显示(TDA7415) http://www.cnblogs.com/we-hjb/archive/2010/04/02/1703473.html WinCE下GPRS拨号连接助手 http://www.cnblogs.com/we-hjb/archive/2010/04/23/1718929.html Wi

u-boot命令行调试LCD简单记录

一般来说,调试uboot最好的方式是使用openjtag,因为uboot说到底就是一段裸机程序,只不过比较复杂.但是受实际环境限制,实际工作中使用较多的调试技巧主要有两种:打印和直接在命令行测试,打印比较常见也比较简单,直接使用printf即可,这里就以最近这段时间调试uboot下面lcd为例,简单说说命令行调试. 平台: am335x,u-boot 2010.09,linux 3.10 问题: 由于此版本u-boot比较旧,没有整套framebuffer子系统框架,所以采取的是移植好官方裸机驱

LCD屏背光驱动调试心得---血的教训

开发板:明远智睿MY-IMX6-EK140 内核源码:linux-3.14.52 背光驱动IC:MP3202 调光原理:通过开发板的核心板PWM4引脚控制MP3202的EN脚,输出不同的占空比从而达到输出平均电流的不同,这样就可以达到调节背光亮度的目的 调试过程: 1.从硬件图可以看出核心板的PWM4引脚连接到了背光驱动IC MP3202的EN脚,所以我们通过搜索PWM4来找设备树上的硬件节点 2.在明远智睿MY-IMX6-EK140设备树,arch/arm/boot/dts/myimx6ek1

msm8916 lcd 相关调试点指导

主要代码: LINUX\android\kernel\arch\arm\boot\dts\qcom\dsi-panel-trust-hx8379c-fwvga-video.dtsi LINUX\android\kernel\arch\arm\boot\dts\qcom\msm8916-qrd-skum.dtsi LINUX/android/bootable/bootloader/lk/dev/pmic/pm8x41/pm8x41_adc.cLINUX/android/bootable/bootl

stm32点亮st7735s的0.96寸lcd屏(调试中)

今天在调试这个0.96寸的lcd屏怎么也点不亮,用了卖家提供的程序只能在c8t中使用 把代码移植到f103vet6的工程居然就点不亮了???迷惑 想了一下这块和之前的1.44用的同一个ic,索性就用以前1.44寸LCD程序试试居然点亮了,这里记录一下后续继续修改 原文地址:https://www.cnblogs.com/hjf-log/p/12570258.html