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

以下为网上所见觉得比较好就粘过来了:

TFT电路驱动原理:由CPU通过LCD接口送来的视频信号及时钟经过TCON的时序转换,RGB数据经过D/A转换送到SOURCE端,同时TCON产生移位时钟信号驱动GATE端,选通一行,打开这一行的所有晶体管, SOURCE向液晶电容充电,液晶产生灰度并保持,通过GATE的移位,继续向下面行写入液晶图像,当整个行写完,又重新从第一行开始。

如果一直显示静止的图像,液晶电极上的电压就会一直不变,当撤销电压时,液晶很难回复原状,容易造成液晶损坏。解决这问题的方法就是改变液晶的控制电压的极性,也就是说即使是静止的图像,液晶电极上的电压也一直在翻转。一般的LCD都采用行翻转的形式,通过改变公共端的电压极性VCOM而达到翻转的目的。TCON IC一般会送出一个M或者POL的信号,我们用这个信号产生VCOM,一般的转换电路使用非们或者运方电路。通过调节VCOM的DC端,我们可以改变LCD的色彩,调节AC端,可以改变LCD的对比度。也许是由于行翻转的缘故,有的LCD会产生水平的条纹(Flicker现象),LTV350QV不怎么明显,一般的台湾LCD比较明显。

常用点屏步骤:
1、    确保数据、时钟、电源等连接正常。
2、    确保LCD的几组工作电源VDD/AVDD/VGL/VGH正常。
3、    LCD配置:有的LCD的TCON IC需要使用SPI接口进行配置。
a)    配置的内容主要是时钟信号的极性、扫描方向等,还有一些TCON IC支持CCIR601/656/OSD功能等,主要根据实际情况配置。
b)    GAMMA校正:一般根据LCD厂家提供的参数进行校正,以前调LTV350QV就是因为厂家给的GAMMA参数不正确,造成色彩显示不正常。
c)    SPI时序:一般不同的LCD屏的SPI时序和寄存器都会有一些差别,我一般是根据时序图进行操作寄存器(如下图),通过写寄存器,只要LCD有反应了,表明SPI通讯基本没有什么问题了。

4、    时钟设置:
a)    一般的LCD SPEC中都会给出关于时序的参数以及时序图,我们按照图中进行设置就可以了。如下图:我们就可以知道时钟频率、脉冲宽度、前扫、回扫等。

通过如下图的画面我们就可以知道HSYNC和VSYNC时钟极性为负。

通过下图我们就可以知道是上升沿锁存数据,下降沿改变数据了

通过以上步骤LCD上面应该会出现美丽动人的画面了,有可能图像位置还会有一些偏差,不过没关系,看着屏幕的图像调节前扫、回扫进行左右上下移动就OK了。
    图像异常处理:
    图像颜色不正常:有可能时钟型号极性反,还有可能VCOM调节不正常。
    出现水波纹:确保电源VDD/AVDD/VGL/VGH纹波足够小,确保VCOM波形正确,VCOM电路端的电源稳定

S3C2440 LCD 控制器:

HSPW: 行同步肪冲宽度 (4.8us左右(4.8/点时钟(1.6.4)))
HBPD: 行可视范围前肩  
HFPD: 行可视范围后肩 (这两个要慢慢调,确定图像的左右位置)
行频(14.9~22.35)=1/((HSPW+1)+(HBPD+1)+(HFPD+1)+320)*(点时钟1/6.4)
只要行频在这个范围都可以。

VSPW: 场同步脉冲宽度 (N/P制好象有点不同,一般是2.5行,取3-1就可以了)
VBPD: 帧可视前肩
VFPD: 帧可视后肩
这两个用来调整帧画面在靠上/靠下位置,如果场频取60的话,一帧时间是1/60 = 16.67ms,假如行频取15.75,由一行时间为1/15.75=0.064ms,则一帧总行数为
16.67/0.064 = 262行,262 = ((VSPW+1)+(VFPD+1)+(VBPD+1)

所以,只要确定了行频,就可以推算出点时钟及其他参数,只要行场同步对了,图像肯定可以出来,只需微调位置就可以了。
另,如果你的clkval_calc = 9话,HCLK=133,点时钟应该是133/20,应该在6.65M.

(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的调试中,延时特别重要,一定要确定延长的时间足够,特别是更改电压寄存器后面的延时。记得有一次屏幕出现抖动的现象,一直查不出原因,厂家从日本派了2次来人,都没解决;最后,把所有的时序测试出来,发现延时不足,影响延时的一个函数传递参数错了。
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)初始化时高压的打开是否符合规格式要求?

 

lcd timing的理解的更多相关文章

  1. android系统平台显示驱动开发简要:Samsung LCD接口篇『三』

    平台信息: 内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博 ...

  2. 【转】Android LCD(三):Samsung LCD接口篇

    关键词:android LCD控制器 Framebuffer PWM  平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos ...

  3. Android LCD(三):Samsung LCD接口篇

    关键词:android LCD控制器 Framebuffer PWM  平台信息: 内核:linux2.6/linux3.0 系统:android/android4.0  平台:samsung exy ...

  4. LCD调试1.0

    所谓调lcd timing就是去调lcd时序,一般是6个部分:HFPD(在一行扫描以前需要多少个像素时钟),HBPD(一行扫描结束到下一行扫描开始需要多少个像素时钟),VFPD(一帧开始之前需要多少个 ...

  5. Android LCD(三):LCD接口篇【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/9177085 关键词:Android LCD控制器 Framebuffer PWM  平 ...

  6. S3C2440 LCD驱动(FrameBuffer)实例开发<二>(转)

    开发板自带的LCD驱动是基于platform总线写的,所以如果要使其它的LCD能够在自己的开发板上跑起来,那么就先了解platform驱动的架构,下面简单记录下自己看platform驱动时体会,简单的 ...

  7. FL2440驱动添加(3)LCD驱动添加学习笔记

    FL2440 LCD内置控制器,320*240 TFT型LCD. 自我理解总结的两种添加驱动模式: 非platform方式添加驱动: 加载驱动: 1,硬件初始化,申请内存,并作地址映射 2,分配设备号 ...

  8. hud项目lcd调试过程的一些见解

    1.帧缓冲(FrameBuffer)设备驱动帧缓冲设备为标准的字符型设备,在Linux中主设备号29,定义在/include/uapi/linux/major.h中的FB_MAJOR,次设备号定义帧缓 ...

  9. linuxlcd驱动程序编写 mini2440(w35)

    先说lcd驱动的框架吧! lcd驱动也有自己的框架,如果没有框架,要我们自己完成所有lcd驱动的代码编写那将是很痛苦的一件事. lcd驱动主要依赖于一个文件,fbmem.c 其实它还依赖几个文件  不 ...

随机推荐

  1. HSSFWorkbook 模版使用

    Java中导入.导出Excel 一.介绍当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用 ...

  2. Python的模块,模块的使用、安装,别名,模块作用域

    模块和包 所谓的模块就是将不同功能的函数分别放到不同的文件中,这样不仅有利于函数的维护,也方便了函数的调用.在Python中,一个.py文件就是一个模块(Module). 在模块的上层有一个叫做包(P ...

  3. 前端逼死强迫症之DOM

    Dom:document.相当于把所有的html文件,转换成了文档对象. 之前说过:html-裸体的人:css-穿上衣服:js-让人动起来. 让人动起来,就得先找到他,再修改它内容或属性. 找到标签 ...

  4. HDU 6041 I Curse Myself ——(仙人掌图,tarjan,转化)

    题解见这个博客:http://blog.csdn.net/ME495/article/details/76165039. 复杂度不太会算..这个经典问题的解法需要注意,维护队列里面只有k个元素即可.另 ...

  5. 微信小程序开发步骤简述

    1.登陆微信的开发这平台 2.找到小程序开发选项进入,填写注册自己的小程序信息 3.下载相应的开发者工具 4.通过开发者工具把自己的项目代码上传,上传时会让你填写自己小程序的appid这样项目代码就和 ...

  6. OpenResty之ngx.var.VARIABLE

    1. ngx.var.VARIABLE syntax: ngx.var.VAR_NAME context: set_by_lua*, rewrite_by_lua*, access_by_lua*, ...

  7. Linux中强大的top命令

    top命令算是最直观.好用的查看服务器负载的命令了.它实时动态刷新显示服务器状态信息,且可以通过交互式命令自定义显示内容,非常强大. 在终端中输入top,回车后会显示如下内容:   top - 21: ...

  8. (32位汇编 五)mov/add/sub/and/or/xor/not

    本文链接:https://blog.csdn.net/pl20140910/article/details/78227133说明符号 说明r 通用寄存器m 代表内存imm 代表立即数r8 代表8位通用 ...

  9. <JavaScript>调用apply报错:CreateListFromArrayLike called on non-object;

    Function.apply(obj, args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args--> ...

  10. Strin类

    常见构造方法 • public String():空构造 • public String(byte[] bytes):把字节数组转成字符串 • public String(byte[] bytes,i ...