WINCE基于AT050TN22屏的时序描述

********************************LoongEmbedded*****************
作者:LoongEmbedded(kandi)
时间:2011.06.4

类别:WINCE驱动开发
********************************LoongEmbedded*****************

 

根据AT050TN22屏时序的描述,可以知道

VBPD=10

VFPD=31

VSPW=1

LIINEVAL=479

 

HBPD=133

VFPD=15

VSPW=9

HOZVAL=639

1.像素时钟CLK时序的确定,用示波器测出的时序图如下

1

可以知道CLK一个周期的时间是39ns,频率为25.6MHz左右,而AT050TN22屏对此参数的描述见下图

 

2

结合图1和图2可知LCD控制器为AT050TN22屏配置的时钟CLK符合其要求。那么我们是通过如何配置得出这个CLK的呢?我们先来看看系统控制器部分是如何提供时钟给LCD控制器的

 

3

下图是eboot中的startup.s文件中使能APLLMPLLEPLL为时钟输出的代码

 

4

下图是对CLK_DIV0寄存器第4位的描述

 

5

根据图5可知DOUTmpll=MOUTmpll/(MPLL_RATIO+1),而我们就是选择DOUTmpll作为LCD控制器的时钟源的,见CLK_SRC寄存器的相关描述部分

 

6

CLK_SRC[27:26]的配置是在eboot中调用的InitializeDisplay()函数中配置的,当然了,CLK_SRC相关位在nbootebootoal或者驱动中都可以设置,这需要根据相关位的功能来定。在结合LCD控制器中VIDCON0寄存器的相关描述

 

7

结合图567,我们可以推算出LCD屏像素时钟VCLK=DOUTmpll/(CLKVAL+1)= MOUTmpll/((MPLL_RATIO+1)*( CLKVAL+1)-à(1),我们LCD控制器部分下面的公式

 

8

再结合图8,我们可以推算出VCLK= { (VSPW+1) + (VBPD+1) + (LIINEVAL + 1) + (VFPD+1) } x{(HSPW+1) + (HBPD +1)+ (HFPD+1) + (HOZVAL + 1) } x (Frame Rate) =VSYNC x HSYNC x FrameRate=25.6MHZà(2),结合(1)(2)可以推算出CLKVAL=MOUTmpll/(( MPLL_RATIO+1)*( VSYNC x HSYNC x FrameRate))-1,而VSYNC= VBPD+ VFPD+ VSPW+ Height=525HSYNC= HBPD+HFPD+HSPW+Width=800FrameRate=60(一般为60)MPLL_RATIO=1MOUTmpll=266MHz,可以算出CLKVAL=4。如果我们要输出的VCLK的时钟周期为39ns,也就是频率为25.6MHzVCLK时钟信号,结合公式(2),那么有256.MHZ= VSYNC x HSYNC x FrameRate,这样我就可以结合LCD屏对VSYNCHSYNCVCLK时序的要求来调整VSYNCHSYNCFrameRate的值了。

 

2.用示波器测试HSYNC时序图如下:

9

而我们知道HSYNC=(HSPW+1) + (HBPD +1)+ (HFPD+1) + (HOZVAL + 1)=800*VCLK=800*39ns=31.2us,而图中显示的是30.1us,这应该是由我测试时候的误差引起的。

 

3. 用示波器测试VSYNC时序图如下:

10

而我们知道VSYNC=(VSPW+1) + (VBPD+1) + (LIINEVAL + 1) + (VFPD+1) =525*HSYNC=525*31.2us=16.380ms,而图中显示的是15.85ms,这应该是由我测试时候的误差引起的。

 

4.DE引脚时序

AT050TN22屏的相关时序如下,可知DEHSYNC的周期是一致的,比较图9和图12可知,但占空比不一样。

11

用示波器测试DE时序图如下:

 

原文地址:https://www.cnblogs.com/liang123/p/6325738.html