我的LCD移植问题:图像偏移

在使用优龙FS2410开发板和东华YL-LCD35 TFT屏幕进行Linux系统移植时,遇到LCD显示问题,开机仅显示条纹状图像。U-Boot和Linux内核已成功移植,但LCD驱动无法正常工作,导致图像偏移。尝试调整设置并检查硬件连接。
摘要由CSDN通过智能技术生成
参考资料:我只是改了一下 lpcsel
由于项目需要,原来的2410升级了一下,改用s3c2440。这几天挺累的,1个礼拜画完了1块2440的6层板。2440其实还不错,就是停产了有点让人不放心。
本来移植好的全套内核和驱动这次不得已需要重新改一直一下。
这次用几乎是最新的2.6.26.3了,一切都很顺利。但是在LCD方面却遇到一个很诡异的问题。网上也找不到比较有用的信息,最后终于把问题解决了。现在最一下总结。
本来在2410的时候LCD驱动几乎没有问题,很顺利。买的NEC的640*480的液晶屏,用RGB565的方式接到ARM上,买好液晶屏的当天,我焊好后,按照数据手册设定好时序参数就OK了。
现在调的是用的utu2440的核心版做的(先期减少风险和投入所以用核心版)。这次其实对那些模式和寄存器很熟悉了,只不过2.6.26新内核换了平台参数声明
static struct s3c2410fb_display smdk2440_lcd_cfg __initdata = {

    .lcdcon5    = S3C2410_LCDCON5_FRM565 |
              S3C2410_LCDCON5_INVVLINE |
              S3C2410_LCDCON5_INVVFRAME |            
              S3C2410_LCDCON5_PWREN |
              S3C2410_LCDCON5_HWSWP,

    .type        = S3C2410_LCDCON1_TFT,

    .width        = 640,
    .height        = 480,

    .pixclock    = 40000,  
    .xres        = 640,
    .yres        = 480,
    .bpp        = 16,
    .left_margin    = 17,
    .right_margin    = 49,
    .hsync_len    = 97,
    .upper_margin    = 32,
    .lower_margin    = 13,
    .vsync_len    = 3,
};
变 成了xxx_margin,其实换汤不换药的,看看s3c2410_fb.c驱动就知道对应得时序参数了。然后是pixclock,这个照道理是 picosecond单位的。2440和2410都是HCLK=100M的,所以用原来2410上的就行了。或者看液晶屏手册要求像素是25.175M, 设置成39721(1/25.175MHZ,注意数量级单位)。

启动2440却发现情况不对,LCD要不就是黑屏,怎么调情况要么是偏的,都不理想。
用示波器看同步信号,发现HSYNC和VSYNC的极性和要求是相反的。这就奇怪了,应为已经在参数中加了
S3C2410_LCDCON5_INVVLINE 和  S3C2410_LCDCON5_INVVFRAME 来反向同步信号了,为什么还是极性不对。
后来发现去掉参数也是不对的,极性仍然相反。我很疑惑,我还以为芯片有BUG,怎么极性都改不过来。我开始真的没办法,还用了片74hc04反相器来反向这两个同步信号,但是结果发现效果并不好,还是图像偏掉。

于 是我很奇怪搜网上的资料,但是并没有得到太多结果。不过我看了很多厂家都在卖2440的板子,而且都配LCD屏,别人怎么就是好的呢。我有把问题定位到了 软件上。正好有utu2440的定制系统,弄了个厂家定制好的uboot进去,号称是由logo显示的,用示波器测了一下,惊奇的发现同步信号极性是正确 的,这就说明芯片本身没有问题。
然后用uboot的md命令dump关键的寄存器值。得到了结果:
4d000000: 04e80079 0577c241 017b1f0f 0000005f    y...A.w...{._...
4d000010: 00014b09 19800000 0005dc00 00000320    .K.......... ...
4d000020: 00000000 00000000 00000000 0000a5a5    ................
4d000030: 0ba5da65 000a5a5f 00000d6b 0eb7b5ed    e..._Z..k.......
4d000040: 00007dbe 0007ebdf 07fdfbfe 00000000    .}..............
4d000050: 00000000 00000000 00000003 00000003    ................
4d000060: 00000f82 ffffffff 00000006 00000000    ................
4d000070: 00000000 00000000 00000000 00000000    ................


GPCCON: 0xaaaaaaaa
GPCUP:  0x0000ffff
GPDCON: 0xaaaaaaaa
GPDUP:  0x0000ffff
CLOCKCON: 0007fff0

LCDCON1: 04e80079
100111010000000000001111001
ENVID + 16 bpp for TFT +TFT LCD panel
MMODE = 0
CLKVAL = 0

LCDCON2: 0577c241
10101
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值