打印

32bit sdram这样接行不行?

[复制链接]
3143|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
3B1105|  楼主 | 2010-6-29 22:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位,朋友用710画了块板子,用一片32bit 内存,w9812g2ih-6,12块买的,结果3片都不行,换用micron的一片8M的32bit,内存测试全部OK,但是在axd里Load image到内存中后,bin的数据全错,程序无法运行。连接图见图片,测试代码如下,全部OK,但是测试后,加载updater的axf文件,到0x8000的地址,数据错乱,单步都不能运行,不知何解.
for(i=0;i<32;i++)
{
  *((volatile unsigned int *)0x4000)=1<<i;
  *((volatile unsigned int *)0x4010)=1<<i;
}
  
for(i=0;i<32;i++)
{
  for(j=0x8000; j<0x800000; j++)
  {
   reg1 = 1<<i;
   *((volatile unsigned char *)j)=reg1;
   reg = *((volatile unsigned char *)j);
   if(reg != reg1)
   {
    uprintf("bad unit at%d, %d", j,i);
   }
  }     
}
for(i=0;i<32;i++)
{
  for(j=0x8000; j<0x800000; j+=2)
  {
   reg1 = 1<<i;
   *((volatile unsigned short *)j)=reg1;
   reg = *((volatile unsigned short *)j);
   if(reg != reg1)
   {
    uprintf("bad unit at%d, %d", j,i);
   }
  }     
}
   
for(i=0;i<32;i++)
{
  for(j=0x8000; j<0x800000; j+=4)
  {
   reg1 = 1<<i;//0x55aaaa55;// 1<<i;
   *((volatile unsigned int *)j)=reg1;
      reg = *((volatile unsigned int *)j);
   if(reg != reg1)
   {
    uprintf("bad unit at%d, %d", j,i);
    //while(1);
   }
  }     
}

while(1);

[ 本帖最后由 zhenfanhei 于 2010-3-26 16:36 编辑 ]
附件 32bit sdram接法.jpg (81.02 KB) 2010-3-26 16:31

32bit sdram接法.jpg (141.49 KB) 2010-3-26 16:36

相关帖子

沙发
3B1105|  楼主 | 2010-6-29 22:52 | 只看该作者
下面的那个
最开始是下面那个图,DQM0和DQM3交换了的,上面的那张是改过了的,但没Lay

使用特权

评论回复
板凳
3B1105|  楼主 | 2010-6-29 22:53 | 只看该作者
我在AXD里Load Memory from file,载入一个1K的文本文档,倒是能够在SDRAM里面看得到,但是好像如果载入一个很大的文档,像27K的txt文件,就有些缺失,再大点的100K以上的,就会少一些,

使用特权

评论回复
地板
3B1105|  楼主 | 2010-6-29 22:54 | 只看该作者
这个为什么少掉了些内容,我搞不表,不过这肯定与bin文件下进去不能运行是一个道理

使用特权

评论回复
5
3B1105|  楼主 | 2010-6-29 22:55 | 只看该作者
这个为什么少掉了些内容,我搞不明白,不过这肯定与bin文件下进去不能运行是一个道理

使用特权

评论回复
6
3B1105|  楼主 | 2010-6-29 22:55 | 只看该作者
我载入了一个updater.bin,72K,我用UltraEdit查看二进制文件,对比SDRAM中发现,它从文件的0x1000开始载入的,我载入一个4K的bin,它也是从文件的0x1000开始载入,平白把一个文件去掉了4K,这个是啥原因,有没有大侠清楚????

使用特权

评论回复
7
3B1105|  楼主 | 2010-6-29 22:55 | 只看该作者
仔细对比,发现从bin文件中的0x1000~0x103c取了数据之后,重复从0xc30~0xffc之间取数据加载到了SDRAM中,不知道这是何为啊!

使用特权

评论回复
8
3B1105|  楼主 | 2010-6-29 22:57 | 只看该作者
我直接将上面试验的一个0x1130长度的bin文件,Load Memory from file到0xffe0,0000的CPU内部SRAM中,发现没出问题,那意思是说,可能SDRAM的行列驱动不对,还是怎么的,有些地址没有起做作用,我改进我的内存扫描程序,再测试一下内存。

使用特权

评论回复
9
6019实验室| | 2010-6-29 22:57 | 只看该作者
数据线按最小访问单位内交错没问题的,高低字节交叉与使能位对应就没问题
看了下你的图数据线这部分没问题,地址线这边与你配置及容量大小有关,请给出你的CPU及SDRAM型号

使用特权

评论回复
10
3B1105|  楼主 | 2010-6-29 22:58 | 只看该作者
问题出现,
        for(i=0;i<4;i++)
        {
                for(j=0x8000; j<0x800000; j+=4)
                {
                        reg1 = j;//1<<i;//0x55aaaa55;// 1<<i;
                        *((volatile unsigned int *)j)=j;
                        reg = *((volatile unsigned int *)j);
                        if(reg != reg1)
                        {
                                uprintf("bad unit at%d, %d", j,i);
                                //while(1);
                        }
                }                                       
        }        
上面这里执行没问题,边写边读出比较,每个地址单元中的值是他自己的地址号,而下面则是从0x8000~0x80,0000写完后,再全部读出,此时出了问题,读出的值是从0x9000开始了
        for(i=0;i<4;i++)
        {
                for(j=0x8000; j<0x800000; j+=4)
                {
                        reg1 = j;//1<<i;//0x55aaaa55;// 1<<i;
                        //*((volatile unsigned int *)j)=j;
                        reg = *((volatile unsigned int *)j);
                        if(reg != reg1)
                        {
                                uprintf("bad unit at%d, %d", j,i);
                                //while(1);
                        }
                }                                       
        }

使用特权

评论回复
11
3B1105|  楼主 | 2010-6-29 23:01 | 只看该作者
w90p710,现在内存型号MT48LC2M32B2 ,2Mx32bit, RxC=11x8

使用特权

评论回复
12
想实习去| | 2010-6-29 23:01 | 只看该作者
是不是你焊接有问题!710和44b0差不多,布线比较容易的

使用特权

评论回复
13
linqing171| | 2010-6-30 01:13 | 只看该作者
首先,假设16~23顺序连接。下面我好给你举例子。

如果按照 双字写进去,安装字读出来,会不会出错?
。。。。
中间删除
。。。。
结论:不会出错。

使用特权

评论回复
14
zchong| | 2010-6-30 13:02 | 只看该作者
看一下sdram配置的对不对吧,行列地址

使用特权

评论回复
15
yybj| | 2010-7-2 15:20 | 只看该作者
硬件连接没什么问题

使用特权

评论回复
16
txcy| | 2010-7-4 08:45 | 只看该作者
还是先检查一下原理图,再检查一下你的焊接

使用特权

评论回复
17
无冕之王| | 2010-7-4 09:54 | 只看该作者
楼主,请问问题解决了吗,是按图1接吗?

使用特权

评论回复
18
无冕之王| | 2010-7-4 09:55 | 只看该作者
如果解决了,就说出来让大家分享一下

使用特权

评论回复
19
hsbjb| | 2010-7-7 15:51 | 只看该作者
很有可能是焊接的问题

使用特权

评论回复
20
年轻不在| | 2010-7-20 23:25 | 只看该作者
把整个程序法 过来!

使用特权

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

本版积分规则

315

主题

1645

帖子

4

粉丝