硬件平台:TMS320C6745和MT48LC4M16A2
问题:地址线接全部接反了,但是地址线A10、A1我跳线换回来了(A10用于预充电)
测试:出现异常
测试过程:
地址线反了,因此,主要是考虑C6745的EMIFB地址映射问题,看到与此相关的资料如下:
从图2可以看出,只有ACTV、READ、WRT三个命令涉及地址,而读和写操作的分别是:
读:ACTV、READ
写:ACTV、WRT
对于行地址,个人感觉可以通过软件进行还原,可是对于列地址,有一个比较棘手的问题,就是这样颠倒之后,用到了原本没用到的列地址,那么这几根地址线输出的是什么状态呢(A8,A9,A11)
从图3可以看出,地址映射时,A0用于表示要写的数据宽度,也就是字节使能引脚或是掩码WE_DQM,举例说明:想写一个8位数据,但是不想覆盖掉高8位的,即可以通过掩码来实现,屏蔽高8位的数据。地址映射依次是列地址、BANK地址、行地址,地址的高4位是固定的,表示访问的空间是SDRAM,C6745的高4位是C。
问题:
1、 因为我的地址线接反了,列地址输出时,用到的地址线是A4~A9,A1,A11,但是正常情况下,地址线是A0~A7,那么列地址输出时,A8~A11是什么状态?
2、 地址映射问题:对于地址0XC0000000,映射为SDRAM地址时,这里列地址、BANK地址、行地址分别是8、2、12,占用A1~A22,是不是先将需要些的地址映射到A0~A21,映射完成后,将映射地址左移一位,加上A0得到送给的映射SDRAM的地址呢?
3、 我的SDRAM芯片本来是16位的,现在C6745识别为了8位,这是什么情况,问题出在了哪里,和地址线的反接了有关系吗?(EMIFB寄存器配置时,配置的是16位)
图1 SDRAM应将连接
图2 操作SDRAM的相关命令
图3 EMIFB对于16位SDRAM的地址映射
Tony Tang:
数据线如果高低字节交换了,还是可以的,地址线反了,就行不通了。