打印
[嵌入式Linux]

LCD屏在驱动中的参数和u-boot中的pixclock如何计算

[复制链接]
2331|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
460077234|  楼主 | 2016-3-5 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先向各位能看到此**的同行们致个敬,感谢大家能看到这个标题进来给指的方向。关于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,


        },

};

我写的可能有点乱,做过这块的人应该明白我要的问的是啥。希望各位朋友们能给个方向,谢谢。




相关帖子

沙发
lwlgy| | 2016-9-1 17:22 | 只看该作者
pixclock是像素时钟周期,单位是ps

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

42

帖子

0

粉丝