打印

关于SDRAM与DSPC6713 EMIF配置的问题

[复制链接]
4126|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ldsh104|  楼主 | 2012-4-24 21:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                                 问题描述:SDRAM :MT48LC4M32B2TG-7
DSP :TMS320C6713EMIF时钟:75MHz
EMIF 配置 (SDRAM相关的)
             0x57116000,              //SDCTL
EMIF_FMKS(SDTIM,XRFR,OF(1))                |
        EMIF_FMKS(SDTIM, CNTR, OF(1))         |
        EMIF_FMKS(SDTIM, PERIOD, OF(0x61a)),
        EMIF_FMKS(SDEXT, WR2RD, OF(0))              |
        EMIF_FMKS(SDEXT, WR2DEAC, OF(2))         |
        EMIF_FMKS(SDEXT, WR2WR, OF(0))       |
        EMIF_FMKS(SDEXT, R2WDQM, OF(1))           |
        EMIF_FMKS(SDEXT, RD2WR, OF(0))               |
        EMIF_FMKS(SDEXT, RD2DEAC, OF(1))      |
        EMIF_FMKS(SDEXT, RD2RD, OF(0))                |
        EMIF_FMKS(SDEXT, THZP, OF(2))                   |
        EMIF_FMKS(SDEXT, TWR, OF(1))                    |
        EMIF_FMKS(SDEXT, TRRD, OF(0))                  |
        EMIF_FMKS(SDEXT, TRAS, OF(3))                   |
        EMIF_FMKS(SDEXT, TCL, OF(1))
程序验证:
      for( gDebugVar0 =0;gDebugVar0 <ScreenTableNum;gDebugVar0++)
             * (UINT32 * )(0x80000000+gDebugVar0*4)=0x00000000;
      for( gDebugVar0 =0;gDebugVar0 <ScreenTableNum;gDebugVar0++)
             * (UINT32 * )(0x80200000+gDebugVar0*4)=0xFFFFFFFF;
      f or( gDebugVar0 =0;gDebugVar0 <ScreenTableNum;gDebugVar0++)
             * (UINT32 * )(0x80400000+gDebugVar0*4)=gDebugVar0;      
      for( gDebugVar0 =0;gDebugVar0 <ScreenTableNum;gDebugVar0++)
             * (UINT32 * )(0x80600000+gDebugVar0*4)=0x5a5a5a5a;
0x80200000中全写1均没有问题
0x80000000中全写0有出错情况,但比较少
0x80004250:出现0x0000A800

0x80400000中递增写数据,出错情况较多



0x80400018:  0x00008806
0x80400028:  0x0000A80A
0x8040002c:  0x0000800B
0x80400030:  0x0000800C
0x80400038:  0x0000880E
0x8040003C:  0x0000880F
0x8040004C:  0x00008813
0x8040005C:  0x00008817
0x8040006C:  0x0000881B
0x80400074:  0x0000801D
0x80400088:  0x00008022
0x80400098:  0x0000A826
0x804000A8:  0x0000A82A
0x804000AC:  0x0000802B
0x804000B0:  0x0000882C
0x804000B8:  0x0000A82E
0x804000BC:  0x0000A82F
0x804000CC:  0x00008833
0x804000DC:  0x0000A837
0x804000E4:  0x00008839
0x804000EC:  0x0000A83B
0x804000F4:  0x0000A83D




0x80600000中写数据,出错情况较多
0x80600004:  0x5A5ADA5A  0x5A5AFA5A  0x5A5ADA5A
0x80600010:  0x5A5ADA5A  0x5A5A5A5A  0x5A5AFA5A  0x5A5AFA5A
产生错误数据的地址不固定,产生错误数据的位固定,一般是 [F,D,B]位上的数据发生变化0x88xx,0xA8xx,0x80xx

       解决方案:
1.刷新频率变快,
EMIF_FMKS(SDTIM,XRFR,OF(1))                |
        EMIF_FMKS(SDTIM, CNTR, OF(1))            |
        EMIF_FMKS(SDTIM, PERIOD, OF(100)),//SDTIM
错误不变。
刷新频率再变快,
EMIF_FMKS(SDTIM,XRFR,OF(1))                |
        EMIF_FMKS(SDTIM, CNTR, OF(1))             |
        EMIF_FMKS(SDTIM, PERIOD, OF(1)),//SDTIM
经过检查,
0x80408EB0:  0x000023AC   0x000023AD   0x0000A3AE   0x000023AF
错误依然存在,但是已经很少了。
2.把EMIF时钟变成100MHz,
问题解决。
请专业人士分析下,原因是什么?

相关帖子

沙发
ldsh104|  楼主 | 2012-4-24 21:32 | 只看该作者
虽然自己把问题解决了,但是更想知道原因,也同时跟大家分享一下关于SDRAM的学习

使用特权

评论回复
板凳
ldsh104|  楼主 | 2012-4-26 15:27 | 只看该作者
怎么没人回复?是我描述的不清吗??

使用特权

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

本版积分规则

0

主题

3

帖子

1

粉丝