先向各位能看到此**的同行们致个敬,感谢大家能看到这个标题进来给指的方向。关于LCD屏在驱动和u-boot中的pixclock的计算方法这两天我在网上算是黔驴技穷了,各种公式我都计算过了都不对,万般无奈之下才向各位请教。下面进入正题。
我用的at070tn83的液晶屏,根据手册内容,分辨率为800x480,
vfp(Vertical Front Porch) --- upper = 29
vbp(VSYNC Back Porch ) --- lower = 13 vcyc(VSYNC Pulse Width ) --- vsync_len = 3 hfp(HSYNC Front Porch) --- left margin = 40 hbp(HSYNC Back Porch ) --- right margin = 40 hcyc(HSYNC Pulse Width ) --- hsync_len = 48 CLOCK frequenry type = 33.3Mhz max = 50Mhz 请问在这些参数下pixclock怎么计算出来呢? 我用了以下的公式。 pixclock=1/dotclock(单位:皮秒),其中dotclock= ( x + HBPD + HFPD + HSPW) * (y + VBPD + VFPD + VSPW)*整屏的刷新率 整屏的刷新率公式我就不列了。按照这个算不出来。 内核驱动里边的lcd参数如下: 请问.refresh = 65, “65”从哪来的呢?.pixclock = KHZ2PICOS(22825), “22825”从哪来的? 是手册中的Clock Frequency的典型值? static struct fb_videomode at91_tft_lcd07_modes[] = { { .name = "PD064VT5N", .refresh = 65, .xres = 800, .yres = 480, .pixclock = KHZ2PICOS(22825),//24825000HZ, .left_margin = 45, .right_margin = 3, .upper_margin = 24, .lower_margin = 1, //zhang.2009.11.13 .hsync_len = 3, .vsync_len = 1, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, .vmode = FB_VMODE_NONINTERLACED,
}, }; 我写的可能有点乱,做过这块的人应该明白我要的问的是啥。希望各位朋友们能给个方向,谢谢。
|