您的位置:首页 > 其它

一次关于2440屏驱动的精彩讨论

2010-10-22 21:37 246 查看
头上两幅图就是我的LCD屏的资料了。上面标了VBPD VFPD HBPD HFPD,没说VSPW、HSPW。
下面是我在代码中填写的值,可是是出现花屏哦,应该如何设置啊?

clkval_calc = 9;

#define LCD_VBPD ((18)&0xff)// 18 18 18
#define LCD_VFPD (( 4)&0xff)// 4 4 4
#define LCD_VSPW ((14)&0x3f)// 14 14 14
#define LCD_HBPD ((68)&0x7f)// 68 68 68
#define LCD_HFPD ((20)&0xff)// 20 20 20
#define LCD_HSPW ((55)&0xff)// 60 50 70

有人告诉我说,像这种3.5寸 16位 320x240 TFT屏 的参数都差不多的,参考一下别的值就可以了。
可是我用别人的几组值去试,效果更差,是白屏啊。


VSPW:TFT: Vertical sync pulse width determines the VSYNC pulse's high level width by counting the number of inactive lines.
HSPW:TFT: Horizontal sync pulse width determines the HSYNC pulse's high level width by counting the number of the VCLK.

VSPW指的是VSYNC处于高电平时的线的数目。
HSPW指的是HSYNC处于高电平时的VCLK的数目。

在我其它都不变的情况下,修改VBPD VFPD HBPD HFPD的值,有些参数组合是花屏,有些参数组合是白屏。

我的clkval_calc = 9; 算出来的VCLK是6.4M左右吧,符合TFT屏的要求的。

TFT屏是16位的,RGB是565的。



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)+(HOZVAL+1)

所以,只要确定了行频,就可以推算出点时钟及其他参数,只要行场同步对了,图像肯定可以出来,只需微调位置就可以了。
另,如果你的clkval_calc = 9话,HCLK=133,点时钟应该是133/20,应该在6.65M.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: