1.存储器扩展地址、数据线的连接方法重点参见2440手册,主要涉及地址对齐问题,较容易理解,此处不作论述。 2. nWE, nWBE, nBE三者之间的关系 (1)nWE为写使能信号。 (2)nWBE为“写字节使能(write byte enable)”信号,而nBE 为高/低字节选择信号。nWBE与nBE共用引脚,可以通过对相关寄存器设置来进行功能选择。 (3)什么时候需要nWBE而不是nWE? nWE和nWBE都带有写使能的功能。但既然有nWE,为什么还需要nWBE?这是因为,当使用几片储存芯片进行数据位扩展时,有时需要对芯片分开写数据,此时可使用nWBE。 在图5-4中,仅有一片8bit的ROM,因此仅需要nWE,而不需要nWBE。而在图5-5中,用了2片8bit的ROM,如果不使用nWBE,则写操作是对2片ROM同时进行的,这样,当执行写字节指令时可能会破坏另一芯片中的数据。(注意nWBE的信号是自动产生的。)从这个角度来说,nWBE有字节数据屏蔽的功能。 后面我们也会看到,SDRAM中有DQM信号也是用来进行数据屏蔽作用的,那么它们之间区别何在? (4)nWBE, nBE有什么区别?什么时候应该配置成nBE? 根据手册描述“nBE[3:0] is the 'AND' signal nWBE[3:0] and nOE”,即nBE是nWBE和nOE的“与”信号,这句话给了我们非常重要的启示,应该说深刻揭示出了nWBE, nBE之间的本质、内涵。 首先看一下真值表: 注意到nWBE[3:0],nOE仅一根信号线。由此可见,nBE就是字节选通信号(读、写选通)。读的时候,多片均选通,写的时候,分片进行选通。其实质,nBE可看作字节片选信号。 那么,能不能把上图5-5中nWBE换成nBE? 如果这样连接,我们思考一下有什么问题:注意表格阴影行,当nWBE无效而nOE有效,nBE有效,这会使存储器的nWE有效,致使读写信号混乱,显然不行。 事实上,到底用什么,应该根据存储器芯片来决定。 究竟什么时候需要nBE呢?手册上给出的SRAM连接图5-8,5-9给出了示例。同样我们要问,图5-8中能不能把SRAM的nWE接nWBE? 如果这样接,芯片的nBE信号就无法解决,因为nBE和nWBE不能同时工作,这样就无法单独操控片内的高字节与低字节读写。这里的nBEx就像是片内的高字节与低字节的片选信号。 再问,能否将图5-8中nBE信号换成nWBE信号(硬件连接不变,寄存器配置改变)? 当按字节写芯片,没有问题,这时候可以产生有效的nWBE信号,以选择U/L字节;而当需要按字节读芯片时,nWBE无效,无法提供正确的nUB/nLB选择信号,就无法读出数据,可见行不通。注意,似乎无法真正做到按字节读芯片,因为只要nOE有效,nBE一定有效,这样势必造成nBE0,nBE1同时有效。即便如此,应该不会有什么麻烦,大不了将不需要的字节数据丢弃即可。 3. (1)ROM (2)SDRAM 注意nSCS[1:0]就是nGSC[7:6],参看三星官方评估板电路图。 这里重点关注DQM[3:0]。经查2440手册,DQM与nWBE引脚是复用的。参考友善之臂提供的mini2440手册中所提供的SDRAM电路(同三星官方): 可见,DQM正是连接到了nWBE。又参考SDRAM的数据手册,对DQM的描述:“Controls output buffers in read mode and masks input data in write mode(即:在读模式下控制输出缓冲;在写模式下屏蔽输入数据。)”。 我们的问题是:为什么DQM连的是nWBE而不是nBE?能不能为nBE? 下图是SDRAM的数据手册中截取的真值表,从中可以发现,读写控制和DQM毫无关系。DQM主要在读、写时起屏蔽作用。读-写是通过nWE的电平状态来控制的。 倘若DQM连nBE,需要写字节屏蔽信号,则与nWBE没有分别;读的时候,若nWBE无效,nBE是否有效取决于2440的nOE——如果nOE无效,那么nBExx与nWBE一致,而此处确实不需要nOE,所以我个人的结论认为它连nBE也是可行的(未知对否?需通过写程序验证)。 另外还有个问题:nWBE是什么时候有效的?读SDRAM时,需要控制的只是使nWE为高,但这时候nWBE会自动有效吗?需要程序控制吗?(较容易设想的是nWE为低时nWBE自动根据读写字宽确定是否有效)。这个问题看看2440的时序图就了然了。 |