详解TCC89x的LCD数值设置
//=====================================================================
//TITLE:
// 详解TCC89x的LCD数值设置
//AUTHOR:
// norains
//DATE:
// Tuesday 7-December-2010
//Environment:
// Visual Studio 2005
// Windows CE 6.0
// Telechips Magellan 1.9.1
//=====================================================================
如果大家使用TCC89x作为产品研发的话,我估计没有几个人会直接采用EVB上的LCD型号——价格太高,又面临停产。所以,替换相应的LCD屏,是大势所趋。不过,不同的屏有不同规格,如何才能让屏正常工作呢?
要想正常调试LCD,我们先来了解Telechips Magellan BSP里是如何对LCD进行设置的。如果各位朋友仔细查看过Magellan的代码,会发现Driver里是没有对LCD进行设置的代码;对LCD的设置代码,全部位于BOOT文件夹中。更确切点,是位于BOOT文件夹下的LCD.cpp文件。这也不难理解,因为无论是处于Bootloader阶段,还是进入WinCE之后,都必须要进行显示,而这两个阶段的显示对于LCD的设置都是一样的,所以就没有必要在WinCE中再次对LCD进行设置。
对于不同LCD型号的设置,一切都在于LCD.h文件中的lcd_cfg数组,其定义如下:
仔细看图的朋友可能对数组上的注释有所迷惑,比如,VPW,VBP这些究竟是什么东西?可能缩写大家有点看不明白,我就将相应的定义罗列如下:
W:Width
H:Height
VPW:Vsync Pulse Width
VBP:VSYNC Back Porch
VFP:Vertical front Porch
HPW:Hsync Pulse Width
HBP:Hsync Back Porch
HFP:Hsync Front Porch
PWDX:Output Format
FREQ:Frequency
在这些数值当中,除了W,H,PWDX和FREQ以外,都是和具体的LCD有关的。而这些有关的数值,都可以在相应的LCD屏中能够找到。以AT070TN83这款LCD为例子,其有个表格,指明了这些数值的范围,如图:
我们只要根据LCD的Datasheet推荐的数值直接填到lcd_cfg数组中即可。
那么,剩下的W,H,PWDX和FREQ又是什么数值呢?W和H比较好办,这个是和分辨率有关的,如果LCD的分辨率是800x480,那么W就为800,H就是480。至于输出格式PWDX嘛,那就必须要看TCC89x的Datasheet了,如图:
从图中可以知道,如果LCD接收的是RGB888 24bit的信号,那么PWDX就设置为12,否则就可以参考列表选择一个最合适的数值。
最后的一个数值FREQ,其实意义不大,因为60的频率能够适应大部分的TFT屏。但如果LCD对于输出频率有严格的要求,并且经过上面的数值设置还无法正常工作,可以尝试调节这个数值试试。