|
我使用tq2440接lcd转vga模块,在linux-2.6.25中有关于1024x768显示模式下LCD控制寄存器的设置:
#elif defined(CONFIG_FB_S3C24X0_TFT1024768)
.width = 1024, //图像的宽度
.height = 768, //图像的高度
.pixclock = 40000, //像素时钟周期/* HCLK 100 MHz, divisor 1 */
.setclkval = 0x3, //LCD的时钟设置参数
.xres = 1024, //图像的宽度
.yres = 768, //图像的高度
.bpp = 16, //像素位宽
.left_margin = 199, /* HFPD水平同步信号的前肩*/
.right_margin = 15, /* HBPD水平同步信号的后肩*/
.hsync_len = 15, /* HSPW水平同步信号的脉宽*/
.upper_margin = 1, /* VFPD垂直同步信号的前肩*/
.lower_margin = 1, /* VBPD垂直同步信号的后肩*/
.vsync_len = 1, /* VSPW垂直同步信号的脉宽*/
由以上各参数的值,结合以下三个公式:
VCLK = HCLK/[(CLKVAL+1)x2] (1)
VFRAME=HCLK/[(CLKVAL+1)x2]/{(VSPW+1+VBPD+1+LCD_YSIZE_TFT+VFPD+1)*(HSPW+1+HSPD+1+HFPD+1+LCD_XSIZE_TFT)} (2)
pixclock=1/VCLK (3)
推得
Pixclock=40000,结合(3)得VCLK=25MHz,由于HCLK=100MHz,结合(1)得CLKVAL=1,而setclkval= 0x3,如何求得?
还有我想知道.left_margin = 199, /* HFPD水平同步信号的前肩*/
.right_margin = 15, /* HBPD水平同步信号的后肩*/
.hsync_len = 15, /* HSPW水平同步信号的脉宽*/
.upper_margin = 1, /* VFPD垂直同步信号的前肩*/
.lower_margin = 1, /* VBPD垂直同步信号的后肩*/
.vsync_len = 1, /* VSPW垂直同步信号的脉宽*/
中各值是如何求得的?
|
|