注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

男儿当自强的博客

每天进步一点

 
 
 

日志

 
 
 
 

LCD控制器时序参数的确定(基于TFT LCD: KD50G9-40NM-A3)  

2010-11-02 08:11:40|  分类: windows CE 驱动 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

LCD控制器时序参数的确定(基于TFT LCD: KD50G9-40NM-A3)

 

********************************LoongEmbedded********************************

作者:LoongEmbedded(kandi)

时间:2010.10.30

类别:WINCE驱动开发

********************************LoongEmbedded********************************

 

一般TFT型LCD时序图如下所示

图1

我们先来理解下面引脚有寄存器中相关参数的意义吧

 

外部引脚信号:

 

VSYNC: 帧同步信号,表示扫描1帧的开始,一帧也就是LCD显示的一个画面。

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

VDEN:数据使能信号。

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

VCLK:像素时钟信号。

 

寄存器参数:

 

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

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

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

LINEVAL :帧显示尺寸-1,即屏行宽-1,对于800*480分配率的LCD屏,那么LINEVAL=480-1=479,请记住,是屏行宽,也就是LCD屏显示一帧数据所需要的行的数目。

 

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

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

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

HOZVAL:行显示尺寸-1,即屏列宽-1, 对于800*480分配率的LCD屏,那么HOZVAL=800-1=799,请记住,是屏列宽,也就是LCD屏显示一行数据所需要的像素(pixel)的数目。

 

由图1可知:

扫描一帧所需的时间:

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

 

扫描一行所所需的时间:

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

 

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

=HCLK/(CLKVAL+1)  ------>这个公式是S3C2443的LCD控制器的,其他CPU的不一定一样

 

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

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

 

即帧频率为:1/T

 

下面就看如何根据基于TFT LCD: KD50G9-40NM-A3来配置S3C2443 LCD控制器的相关寄存器值。

 

1.     VSPW,VBPD,VFPD和LINEVAL时序参数的确定,在这里这几个

值的单位都是TH。

VSPW:

先看VSPW在图1中的示意,再看寄存器中VSPW的定义

 

                                                                           图2

VSPW表示VSYNC(帧同步信号)的脉冲宽度,是按照行来计算的,结合下图,在这里VSPW+1的长度就表示VSYNC脉冲高电平的宽度

图3

那么对于KD50G9-40NM-A3 LCD屏,这个值应该是多少的?看下图

图4

那么Twv在KD50G9-40NM-A3中的技术参数

                                                                           图5

上图Twv的单位是TH,而TH就是一行,也即Twv=2TH,也就是VSPW+1=2,那么到这里就可以确定VSPW=1了。

 

VBPD:

先看图1中VBPD的示意,再看寄存器中VBPD的定义

图6

结合下图

图7

结合图1和图7,我们可知VBPD+1=Tvs-Twv,那么Tvs的值是多少呢?看图5可知是STVD[6:0]+8,也即VBPD+1= STVD[6:0]+8-2=2+8-2=8(在这里我取STVD[6:0]=2),那么VBPD=7

 

VFPD:

先看图1中VFPD的示意,再看寄存器中VFPD的定义

图8

结合下图

图9

结合图1和图9可知,VFPD+1=Tv-Tvs-Tva,根据图5可知Tv=525,Tva=480,而在计算VBPD时我们知道Tvs=2+8=10,所以有VFPD+1=522-480-10=35,那么VFPD=34

 

LINEVAL :帧显示尺寸-1,即屏行宽-1,对于800*480分配率的LCD屏,那么LINEVAL=480-1=479,请记住,是屏行宽,也就是LCD屏显示一帧数据所需要的行的数目。

 

2.     HSPW,HBPD,HFPD和HOZVAL时序参数的确定,这几个值的单

位都是TCPH,也即一个VCLK的时钟周期。

 

HSPW:

先看HSPW在图1中的示意,再看寄存器中HSPW的定义

图10

再结合下图:

图11

结合图1和图11可知,HSPW+1=TWH,又由图5可知TWH=128,所以HSPW=127。

 

HBPD:

先看HBPD在图1中的示意,再看寄存器中HBPD的定义

图12

再结合下图

图13

结合图1和图13可知HBPD+1=THS - TWV,由图5可知THS=STHD[7:0]+88,在这里我取STHD[7:0]=62,那么就有HBPD+1=62+88-128=22,那么HBPD=21。

 

HFPD:

先看HFPD在图1中的示意,再看寄存器中HFPD的定义

图14

再结合下图

图15

结合图1和图15可知HFPD+1=TH-THS-THA,由图5可知TH=1056-150-800=106,那么可算得HFPD=105。

 

3.       CLKVAL

对于VCLK和CLKVAL的关系,请看下图

图16

我在这里CLKSEL_F是选择LCD video clock,假设为SCLK,所以就有VCLK=SCLK/(CLKVAL+1)  ------>这个公式是S3C2443的LCD控制器的,其他CPU的不一定一样,根据前面的介绍我们知道扫描一帧所需的时间:

T=n*VCLK=n*SCLK/(CLKVAL+1)=[(VSPW+1)+(VBPD+1)+(LINEVAL+1)+(VFPD+1)]*[(HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1)]* SCLK / (CLKVAL+1),在此n表示扫描一帧数据需需要的VCLK的总数

那么TFT LCD: KD50G9-40NM-A3对VCLK的参数要求是多少呢?看下图

图17

由图17可知,KD50G9-40NM-A3的VCLK时钟频率所需要的典型值是33.26MHZ,而我们的系统的SCLK=96MHZ,所以可以算出CLKVAL+1=SCLK/VCLK=3,从而可以算出CLKVAL=2

即帧频率为:1/T

 

4.       HSYNC,VSYNC,VCLK信号是否需要反转

先看LCD控制器默认情况下送出来的TFT LCD屏的时序图

图18

再来看KD50G9-40NM-A3所需要的时序图

图19

结合图18和图19,所以需要反转4.  HSYNC,VSYNC,VCLK信号输出,这样才能输出满足KD50G9-40NM-A3所需要的时序图,这样就需要设置S3C2443 LCD控制器VIDCON1的下面几位

图20

 

 

  评论这张
 
阅读(1283)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017