找回密码
 注册
搜索
查看: 1747|回复: 10

[讨论] 问下展讯6600r平台LCD驱动的问题,谢谢

[复制链接]
发表于 2008-7-15 13:04:44 | 显示全部楼层 |阅读模式
前一阵子刚从应用转到驱动上来,有个问题想请教下,thx。
在sc6600r(展讯的6600rokey平台)上面,如果片选选择CS0,其基址为0x6000_1400,
在它的参考设计中,发往LCD的命令是先存储在memory中的0x6000_1400,而数据则是
先存储在0x6000_1404。
我的猜想是mcu从0x6000_1400和0x6000_1404读出数值后,就发送CS脉冲及相应的RS脉冲(确认是register还是data的),问题是mcu它怎么知道从0x6000_1400读出来的表示register,而从0x6000_1404读出的表示data的,这个在
sc6600r的chip的datasheet都没有看到说明的,也没有一个寄存器来控制这些的,很纳闷。
谢谢!
发表于 2008-7-15 13:42:48 | 显示全部楼层
请查看电路图先,驱动不看电路的话很难做[em03]
点评回复

使用道具 举报

 楼主| 发表于 2008-7-15 15:03:10 | 显示全部楼层
谢谢 laplante,从原理图上面只能看到基带通过连接器联到LCM的cs,rs等一些线,这个好像对这个问题没有什么帮助吧,偶不明白您所说的电路图是指什么的电路图?按您说的,好像是指基带的电路图,但这个不可能看到的呀。谢谢。
按我的理解,对于上面的这个问题,sc6600r的chip规格书应该有个寄存器来告诉基带发往lcm时,哪个memory地址的内容是存储register的地址(比如上面的0x6000_1400),哪个memory地址的内容是存储register的data的。其实这个地址是在展讯上面是通过计算得到的:就像Z=f(x,y),如果能够有个寄存器来通过设置x,y,从而就能知道得到的z是干嘛用的了。谢谢了。
点评回复

使用道具 举报

发表于 2008-7-15 16:56:26 | 显示全部楼层
恩,没有接触过展讯的sc6600r
不过我想原理应该是一样的
第一,按照你的描述,cs0为lcd的片选,那么cs0就不可能为memory的片选,而0x6000_1400是在cs0的片选范围内,你的数据往哪边存?根本就没有memory映射在0x6000_1400上,所以你的猜想是错的。
第二,你lcd的RS连到了哪根线?有两种情况,直接连和through mode,如果直接连的话,应该是A2<->RS,而如果是through mode的话,则应该是A2<->chip<->RS,其中chip为through mode,那样的话需要看chip的datasheet。

看电路图的主要意思就是看RS和CS是怎么连接的,通常都是把LCD映射成memory。

当然,如果想MTK那样,有LCD controller的话,接线就有专门的接口,那样也不存在通过地址线去配RS了,如果没有接触过MTk的话,你也可以参考三星的S3C2440,同样也有lcd controller。[em07]
点评回复

使用道具 举报

 楼主| 发表于 2008-7-17 13:58:21 | 显示全部楼层
谢谢laplante,不过我还是不明白你所说的,不知道什么through mode和A2,是不是只有mtk平台才有的呢。
在展讯的sc6600r只能看到ARM通过AHB接LCM的Interface然后就连出RS线了,在展讯上面有个:
adress                       register                                description
32’h6000_1400
~                           LCMCSnADDRm                       0x60001400~600014fc :CS0 address
32’h6000_19fc                                                   0x60001500~600015fc :CS1 address
                                                                        0x60001600~600016fc :CS2 address
                                                                       0x60001700~600017fc :CS3 address
                                                                        0x60001800~600018fc :CS4 address
                                                                        0x60001900~600019fc :CS5 address
如果选CS0,写register的为0x60001400;写数据的为0x60001404,刚好在0x60001400~600014fc :CS0 address范围内。
没做过mtk平台也没法参考,在高通brew平台上面就很好理解,高通是这么实现的:
void write_cmd(unsigned char Command_Byte,unsigned char Para_data)
{
           RS=0;
        CS_M=0;
        WRB=1;
           P0=Command_Byte;
           P2=Para_data;
        WRB=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();       
        WRB=1;
        RS=1;
        CS_M=1;
}
高通的brew上面RS和CS的控制都能看的见。
点评回复

使用道具 举报

发表于 2008-7-18 18:16:16 | 显示全部楼层
CS0,其基址为0x6000_1400
例如写命令
        #define rLCD_CMD_ADDR                (*(VU8*) (0x60001400))
写数据

        #define rLCD_DATA_ADDR                (*(VU8*) (0x60001404))
因为你的CS0练到LCD,并且60001400,60001404都是CS0范围内的
所以把数据送到60001400,60001404地址线上时,CS0就会自动改变,如果你的LCD的WR也于MCU的WR相连,,A0管角接到A2上,那么送(*(VU8*) (0x60001400))就像当于把CS0,WR,A2都置成相应状态,数据通过DO~D15输出,写CMD就完成了
A0(=0:CMD  =1:DATA)
点评回复

使用道具 举报

 楼主| 发表于 2008-7-18 23:14:06 | 显示全部楼层
谢谢xingdajing,可能我表达不清,我不明白的是在规格书中只描述了CS0的地址范围,那为什么就一定定义如您所说的:

写命令
#define rLCD_CMD_ADDR  (*(VU8*) (0x60001400))
写数据

#define rLCD_DATA_ADDR  (*(VU8*) (0x60001404))
而不是:

写命令
#define rLCD_CMD_ADDR  (*(VU8*) (0x60001404))
写数据

#define rLCD_DATA_ADDR  (*(VU8*) (0x60001400))
在规格书上面没有说明CS的片选基址必定是写入命令的呀。
谢谢。
点评回复

使用道具 举报

发表于 2010-1-5 19:28:45 | 显示全部楼层
完全想歪了吧
点评回复

使用道具 举报

发表于 2010-1-5 19:31:05 | 显示全部楼层
那个内存地址是被有固定作用的,写数据到0x60001400时,数据值被当做comand;写数据到0x60001404时,数据值被当做data。
点评回复

使用道具 举报

发表于 2010-1-7 21:31:27 | 显示全部楼层
CS0,RS0是信号线,就像单片机中那种控制线,SC6600M中片选锁定地址,然后传送数据,就是先送地址,后送数据,那两个地址就是分别装地址和数据,不过这东西太底层了,要完全懂得太难,我只是觉得概念上这样理解是对的吧。
点评回复

使用道具 举报

发表于 2013-1-6 16:54:08 | 显示全部楼层
是内部某个地址线(和04对应)和A0(RS)相连,写04地址时(数据),相应的RS会自动拉高。不用软件设置。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-23 19:08 , Processed in 0.044676 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表