如何确定LCD屏的VBPD,VFPD,VSPW,HBPD,HFPD,HSPW的值啊?(内附LCD屏资料)

mbwr   2008-10-23 12:17 楼主
[img][/img] [img][/img] 头上两幅图就是我的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屏 的参数都差不多的,参考一下别的值就可以了。 可是我用别人的几组值去试,效果更差,是白屏啊。

回复评论 (16)


点赞  2008-10-23 12:18
图片没发好,重发了一下。
点赞  2008-10-23 12:19
VSPW、HSPW应该是指Vertical sync clock和Horizontal sync clock的极性吧
VBPD VFPD HBPD HFPD这个几值应该不会影响到白屏,只要不是差得太多,这主要是用来调节屏的显示偏移
重点检查一下Pixel Clock符不符合要求,屏到底是不是16位的,驱动输出是不是16位的设置,以及RGB的位数格式等是否一致?
点赞  2008-10-23 12:58
这个问题我也不大清楚啊!设置什么电平有效?电平保持多久才能被当成是有效的信号?
点赞  2008-10-23 13:14
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的。



这个是S3c2440a文档里描述的这些值,但是和lcd屏给的定义不一样,对比一下就可以看出。


点赞  2008-10-23 13:26
当然不一样了-------------哈哈。很多人都中计了。

其实这个LCD和2440还有个驱动器的,你看看那个LCD背后的那个芯片的资料------------2440是直接和这个LCD驱动芯片打交道的
这个帖子不错,先收藏。以前我也没有看明白,胡乱改就可以用了,有机会再看看了
点赞  2008-10-23 14:53
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的数目。

那这个不就是你屏的分辩率吗?仔细研究一下LCD的Timing,一切都会非常清楚的

我看Intel PXA的LCD接口上是有极性的说法的
点赞  2008-10-23 15:34
我的clkval_calc = 9; 算出来的VCLK是6.4M左右吧,符合TFT屏的要求的。
6.4M应该是Pixel Clock吧
点赞  2008-10-23 15:37
引用: 引用 6 楼 gooogleman 的回复:
当然不一样了-------------哈哈。很多人都中计了。

其实这个LCD和2440还有个驱动器的,你看看那个LCD背后的那个芯片的资料------------2440是直接和这个LCD驱动芯片打交道的。
这个帖子不错,先收藏。以前我也没有看明白,胡乱改就可以用了,有机会再看看了


“当然不一样了-------------哈哈。很多人都中计了。”希望能详细解释一下。

在2楼的图中

标明tVBP =18

在5楼图中,对应的位置:

VSPW+1+VBPD+1=18,则VBPD就应该小于18啊,这两个就有矛盾,希望有人能解释下。

“其实这个LCD和2440还有个驱动器的,你看看那个LCD背后的那个芯片的资料------------2440是直接和这个LCD驱动芯片打交道的。”


指的是这个图里的 HX8238  吗?哪应该如何处理呢?

点赞  2008-10-23 16:45
楼上的三个图,又发的不好,这里三个重发一下。









点赞  2008-10-23 16:48
引用: 引用 7 楼 hzdysymbol 的回复:
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的数目。

那这个不就是你屏的分辩率吗?


我不太明白你说的意思,屏的分辨率?看看英文解释,在对应5楼图片中,标注的VSPW和HSPW,我觉的我应该没弄错啊。

点赞  2008-10-23 16:52
引用: 引用 11 楼 lijinyan3000 的回复:
引用 7 楼 hzdysymbol 的回复:
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的数目。

那这个不就是你屏的分辩率吗?…

仔细看了一下你的图,前面那个VSPW和HSPW的含义你的是对的,我前面的时候没有仔细看5楼的图示
点赞  2008-10-23 22:39
“VSPW+1+VBPD+1=18,则VBPD就应该小于18啊,这两个就有矛盾,希望有人能解释下。 ”
从第一个图上看VSPW+1+VBPD+1=18应该是正确的,VBPD和VSPW的值不可以自己设定吗,你原来设定的VBPD=18已经偏大了,理论上图像应该向右偏移了
点赞  2008-10-23 22:44
行场不同步?这个我用的是模拟屏+屏驱动芯片,我们是找原厂来帮我们debug个init code然后我们丢给chip
你检查下行场吧。调这个有的时候还是考经验
点赞  2008-10-24 08:32
引用: 引用 5 楼 lijinyan3000 的回复:
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的值,有些…


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.

很久没搞过ARM了,写的比较乱,呵呵。
点赞  2008-10-30 23:47
引用: 引用 15 楼 frankizhong 的回复:
引用 5 楼 lijinyan3000 的回复:
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的数目。


在我其它都不变的情况下,修改…

太感谢你了,呵呵。
点赞  2008-11-26 17:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复