LCD帧频和Vsync的关系

zhanghui9191   2009-8-28 22:29 楼主
1.
我想问一下,为什么我用的开发板,bsp里设定 FRAME_RATE = 60,
但我用示波器实测VSync信号频率是120Hz左右。

这个 FRAME_RATE 是帧频吗??还是什么信号?按理说,VSync信号频率就是帧频了。

2.
还有,关于 CLKVAL与VCLK的关系,三星使用手册上是这样的:RGB_VCLK (Hz) =HCLK/ [CLKVAL+1]

我的BSP在Oal初始化里是这样的:

        hsync_cnt = (lcd_vbpd+lcd_vfpd+lcd_vspw+lcd_line_value);

        vclk_cnt = (lcd_hbpd+lcd_hfpd+lcd_hspw+lcd_horizon_value);

        clkval = (UINT8)(((float)S3C2450_HCLK/(float)(hsync_cnt*vclk_cnt*lcd_frame_rate*2))+0.5)-1;       

这样的话:VCLK 就等于 (hsync_cnt*vclk_cnt*lcd_frame_rate*2)。

这里为什么要 ‘*2’??

通过示波器实测VCLK频率,得到很高的11MHz。一般这个VCLK没这么高的吧?

谢谢能得到大家对上面两个疑问的回答。

回复评论 (12)

1,FRAME_RATE是帧频,60Hz也很正常。
2, 11m基本可以说明你用的是4.3寸左右的屏,一般大点的屏会更高,7寸的可以到30M+
点赞  2009-8-29 10:04
一般这个VCLK没这么高的吧?
——像素时钟吧。嘿嘿。你看看你的屏幕datasheet啊。
点赞  2009-8-29 10:47
应该是像素时钟啊
点赞  2009-8-29 11:02
我看了驱动,FRAME_RATE设置成60Hz,而实测Vsync信号频率,为大概120Hz,为什么不是60Hz呢?

我想问题是不是出在这个地方:
VCLK = (hsync_cnt*vclk_cnt*lcd_frame_rate*2)。

因为这里乘2了,所以就把帧频增加了1倍,变成一秒120幅图画了??

为什么要乘以2呢??
点赞  2009-8-29 14:21
The rate of VCLK signal depends on the CLKVAL field in the LCDCON1 register. Table 15-3 defines the relationship of VCLK and CLKVAL. The minimum value of CLKVAL is 0.
VCLK(Hz) = HCLK/[(CLKVAL+1)x2]
The frame rate is VSYNC signal frequency. The frame rate is related with the field of VSYNC, VBPD, VFPD,LINEVAL, HSYNC, HBPD, HFPD, HOZVAL, and CLKVAL in LCDCON1 and LCDCON2/3/4 registers. Most LCD drivers need their own adequate frame rate. The frame rate is calculated as follows:
VFRAME=HCLK/[(CLKVAL+1)x2]/{(VSPW+1+VBPD+1+LCD_YSIZE_TFT+VFPD+1)*(HSPW+1+HSPD+1+HFPD+1+LCD_XSIZE_TFT)}
LZ回去还是好好查下datasheet吧!
点赞  2009-8-29 20:11
引用: 引用 5 楼 xilidecai 的回复:
The rate of VCLK signal depends on the CLKVAL field in the LCDCON1 register. Table 15-3 defines the relationship of VCLK and CLKVAL. The minimum value of CLKVAL is 0.
VCLK(Hz) = HCLK/[(CLKVAL+1)x2]
The frame rate is VSYNC signal frequency. The frame rate is related with the field of VSYNC, VBPD, VFPD,LINEVAL, HSYNC, HBPD, HFPD, HOZVAL, and CLKVAL in LCDCON1 and LCDCON2/3/4 registers. Most LCD drivers need their own adequate frame rate. The frame rate is calculated as follows:
VFRAME=HCLK/[(CLKVAL+1)x2]/{(VSPW+1+VBPD+1+LCD_YSIZE_TFT+VFPD+1)*(HSPW+1+HSPD+1+HFPD+1+LCD_XSIZE_TFT)}
LZ回去还是好好查下datasheet吧!


谢谢楼上回答,我的三星手册上是这样写的:RGB_VCLK (Hz) =HCLK/ [CLKVAL+1];
但是BSP里好像没有按照这个公式算,而是按 CLK(Hz) = HCLK/[(CLKVAL+1)x2]算了

点赞  2009-8-31 09:44
LZ是乎是2443吧?
吧*2去掉
点赞  2009-8-31 10:01
学习了……呵呵……
点赞  2009-8-31 10:44
1、在2450的数据手册里,有这么一句话,The frame rate is RGB_VSYNC signal frequency. 那就是说Frame rate = RGB_VSYNC = 帧频。
楼主的理解也就是正确的,但是为什么要把Frame rate设置为60呢,是因为Frame rate是和你第二条里说的clkval有关的,这样才能保证CPU输出的clock正确。
2、楼主的这个问题我也很困惑,曾经发过帖子,每人回。郁闷。
   其实这个公式可以不去理会它的,具体要看你的lcd的datasheet,比如你的屏的clock要求13MHz,而你使用HCLK的时钟源(2450是133MHz),那么clkval + 1 = 133/13 = 10,你可以直接对clkval赋值了。
    至于vclk信号,不是和屏的大小有关的,是和像素有关,但也不是绝对的,一般要参考数据手册,我使用的屏,一般都在26——33MHz。
点赞  2009-8-31 10:54
FRAME_RATE是帧频率,即每秒钟显示多少帧。
VSync是垂直同步信号,每显示一帧,帧的开头都会有一个垂直同步信号,因此,VSync信号的频率就是帧频率。
通常,这个频率值设为60或者75。
点赞  2009-8-31 11:02
LCD屏总算点亮了,总结一下就是:

1.VCLK较高的话,帧频也会提高,屏幕就不会闪烁。但是芯片对VCLK的频率是有接受范围的。

2.按照哪个公式计算没有关系 ,关键是给CLKVAL赋一个合适的值,使VCLK的频率在合适的范围内。
点赞  2009-8-31 15:37
按RGB_VCLK (Hz) =HCLK/ [CLKVAL+1]来计算的话,确实应该把*2去掉。
此外
hsync_cnt = (lcd_vbpd+lcd_vfpd+lcd_vspw+lcd_line_value);
vclk_cnt = (lcd_hbpd+lcd_hfpd+lcd_hspw+lcd_horizon_value);
容易让人误解,
感觉改为
vsync_cnt = (lcd_vbpd+lcd_vfpd+lcd_vspw+lcd_line_value);
hsync_cnt = (lcd_hbpd+lcd_hfpd+lcd_hspw+lcd_horizon_value);
好些
点赞  2009-9-8 23:53
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复