打印

s3c2410的lcd驱动问题

[复制链接]
2987|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhlyp|  楼主 | 2008-3-31 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用2410驱动一个彩屏,群创的7寸屏-AT070TN83,800*480的。上电调试后彩屏只显示五颜六色的竖线, 参数修改了以后也丝毫没有变化,彻底头大了,不知道该怎么办了,希望液晶开发经验丰富的能指点一下。

    rLCDCON1=(CLKVAL_TFT_800480<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;

    rLCDCON2=(VBPD_800480<<24)|(LINEVAL_TFT_800480<<14)|(VFPD_800480<<6)|(VSPW_800480);
    rLCDCON3=(HBPD_800480<<19)|(HOZVAL_TFT_800480<<8)|(HFPD_800480);
    rLCDCON4=(MVAL<<8)|(HSPW_800480);
    rLCDCON5=(1<<11)


#define MVAL    (13)
#define MVAL_USED     (0)

#define CLKVAL_TFT_800480     (0)    //VCLK=100m/(1*2)=50mHZ

#define HOZVAL_TFT_800480    (800-1)
#define LINEVAL_TFT_800480    (480-1)

#define VBPD_800480                 ((30-1)&0xff)
#define VFPD_800480        ((14-1)&0xff)
#define VSPW_800480        ((481-1) &0x3f)
#define HBPD_800480        ((41-1)&0x7f)
#define HFPD_800480        ((41-1)&0xff)
#define HSPW_800480        ((801-1)&0xff)

希望能指点一下迷津,用过这个屏的能指出错误的地方,没用过这个屏的能介绍一下产生花屏的原因,小弟不胜感激!!

相关帖子

沙发
zhlyp|  楼主 | 2008-3-31 17:04 | 只看该作者

参数已经不准了

我的参数是经过多次修改后的,可能已经不准了
主要想听听大家对花屏产生原因的分析
希望大侠们能倾囊相受

使用特权

评论回复
板凳
dld2| | 2008-3-31 18:08 | 只看该作者

地址寄存器rLCDADDRx的设置,可能关系更大

使用特权

评论回复
地板
1dqmoon| | 2008-3-31 22:24 | 只看该作者

关键在寄存器

rLCDCON1  rLCDCON2    rLCDCON3    rLCDCON4    rLCDCON5
这5个寄存器是要跟屏的实际情况来调的, 注意enable, dotclk等信号的正反, 

确定LPC3600是否真的需要打开.

这些寄存器设定完成后才去设置VBPD VFPD, VSPW, HBPD, HFPD, HSPW
这几个是在屏的规格书中查出来的.

楼上说的地址问题, 是要确定显存是否能够满足那个屏

使用特权

评论回复
5
zhlyp|  楼主 | 2008-4-1 10:35 | 只看该作者

谢谢两位

重新检查了一下,按手册把数据重新改到了理论值,感觉寄存器设的没什么问题
但除了显示竖线外,死活不变化
快崩溃了

想问问,会不会是硬件问题呢?板子毕竟是我自己画的。
现在用示波器量的vclk的波形和GND波形差不多,不过量的vclk电压在3.3V左右。vclk的周围都是GND,实在是不好量

回楼上的,我的rLCDADDRx是抄人家的开发箱的程序,只是把数祖下标改了改,应该没什么问题吧

    rLCDSADDR1=(((UINT32T)frameBuffer16BitTft800480>>22)<<21)|M5D((UINT32T)frameBuffer16BitTft800480>>1);
    rLCDSADDR2=M5D(((UINT32T)frameBuffer16BitTft800480+(SCR_XSIZE_TFT_800480*LCD_YSIZE_TFT_800480*2))>>1 );
    rLCDSADDR3=(((SCR_XSIZE_TFT_800480-LCD_XSIZE_TFT_800480)/1)<<11)|(LCD_XSIZE_TFT_800480/1);

使用特权

评论回复
6
zhlyp|  楼主 | 2008-4-1 13:22 | 只看该作者

完蛋了

用示波器一测vclk,根本没波动,只有一个3v左右的高电平
这可怎么办啊

使用特权

评论回复
7
jesseli| | 2008-4-2 08:18 | 只看该作者

还是寄存器

楼主请将rLCDCON5变为
rLCDCON5=(1<<11)|(1<<9)|(1<<8); //FRM5:6:5,HSYNC and VSYNC are inverted

然后在不接液晶屏的情况下用示波器测量VCLK, HSYNC,VSYNC,VM(DE)
一般来说,正常情况以上几个信号频率大小关系为
fVCLK>fHSYNC>fVSYNC>fVM 
如果输出正常,再接上液晶屏同样测量这几个信号看看。

不过我还是想看看楼主的LCD与2410的硬件连接。

使用特权

评论回复
8
zhlyp|  楼主 | 2008-4-2 14:50 | 只看该作者

谢谢楼上

我现在在不接液晶时检查vclk没有波形,只有一个高电平3.2v

现在的板子
能调试程序
uart能正常返回程序中的信息
sdram的时钟引脚也有波形
应该说明板子在正常运行吧

就是奇怪lcd的vclk引脚咋就没输出呢?

是不是在初始化中要配置lcd的寄存器?

硬件连接都是直接接的,数据线接数据线,控制信号接控制信号

使用特权

评论回复
9
jesseli| | 2008-4-2 16:01 | 只看该作者

回楼主

必须要对lcd的寄存器配置!

使用特权

评论回复
10
zhlyp|  楼主 | 2008-4-3 14:09 | 只看该作者

问题解决了,谢谢各位

使用特权

评论回复
11
malvar| | 2008-4-3 14:26 | 只看该作者

re

想听听是如何解决的,这个比较重点~~~呵呵

使用特权

评论回复
12
aibxyz| | 2008-4-3 15:19 | 只看该作者

如果你什么都不写

那个的确是花屏啊
要往显示缓存写东西

使用特权

评论回复
13
caohx| | 2008-4-5 22:06 | 只看该作者

解决了也得写点东西呀,这才是关键要大家也明白是怎么回事

解决了也得写点东西呀,这才是关键要大家也明白是怎么回事

使用特权

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

本版积分规则

29

主题

93

帖子

0

粉丝