您的位置: OpenADSP社区论坛 -> SHARC/TigerSHARC专区 -> 新手上路 -> SDRAM遍历不通过求解决
本帖共有1033个阅读者
发表帖子 发表投票 回复主题
SDRAM遍历不通过求解决
ymwlike(论坛新手)
ymwlike
头衔:社区公民
帮派:无帮无派
帖数:19
金钱:282
积分:30
注册时间:2012/8/5
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
SDRAM遍历不通过求解决

说明:

主芯片21369 型208脚,SDRAM型号:MT48LC4M32B2
板卡自己设置的,四层板。

问题:SDRAM遍历不通过,读到的值全为FFFF。

下面是我的SDRAM初始化:

#include <def21369.h>
#include <cdef21369.h>

void InitPLL_SDRAM(){

/********************************************************************************************/

int i, pmctlsetting;

//Change this value to optimize the performance for quazi-sequential accesses (step > 1)
#define SDMODIFY 1

    pmctlsetting= *pPMCTL;
    pmctlsetting &= ~(0xFF); //Clear

    // CLKIN= 24.576 MHz, Multiplier= 21, Divisor= 2, CCLK_SDCLK_RATIO 2.
    // Core clock = (24.576 MHz * 21) /2 = 258 MHz  
    pmctlsetting= SDCKR2|PLLM21|PLLD2|DIVEN;
    *pPMCTL= pmctlsetting;
    pmctlsetting|= PLLBP;
    *pPMCTL= pmctlsetting;

    //Wait for around 4096 cycles for the pll to lock.
    for (i=0; i<6096; i++)
          asm("nop;");

    *pPMCTL ^= PLLBP;       //Clear Bypass Mode
    *pPMCTL |= (CLKOUTEN);  //and start clkout
    // Programming SDRAM control registers and enabling SDRAM read optimization
    // CCLK_SDCLK_RATIO= 2.5
    // RDIV = ((f SDCLK X t REF )/NRA) - (tRAS + tRP )
    // (129*(10^6)*64*(10^-3)/4096) - (7+3) = 2015   0x7DF

    *pSDRRC= (0x7DF)|(SDMODIFY<<17)|SDROPT;

    //===================================================================
    //
    // Configure SDRAM Control Register (SDCTL) for PART MT48LC4M32B2
    //
    //  SDCL3  : SDRAM CAS Latency= 3 cycles
    //  DSDCLK1: Disable SDRAM Clock 1
    //  SDPSS  : Start SDRAM Power up Sequence
    //  SDCAW8 : SDRAM Bank Column Address Width= 8 bits
    //  SDRAW12: SDRAM Row Address Width= 12 bits
    //  SDTRAS7: SDRAM tRAS Specification. Active Command delay = 7 cycles
    //  SDTRP3 : SDRAM tRP Specification. Precharge delay = 3 cycles.
    //  SDTWR2 : SDRAM tWR Specification. tWR = 2 cycles.
    //  SDTRCD3: SDRAM tRCD Specification. tRCD = 3 cycles.
    //
    //--------------------------------------------------------------------

    *pSDCTL= SDCL3|DSDCLK1|SDPSS|SDCAW8|SDRAW12|SDTRAS7|SDTRP3|SDTWR2|SDTRCD3;

    // Note that MS2 & MS3 pin multiplexed with flag2 & flag3.
    // MSEN bit must be enabled to access SDRAM, but LED7 cannot be driven with sdram
    *pSYSCTL |=MSEN;

    // Mapping Bank 2 to SDRAM
    // Make sure that jumper is set appropriately so that MS2 is connected to
    // chip select of 16-bit SDRAM device
    *pEPCTL |=B2SD;
    *pEPCTL &= ~(B0SD|B1SD|B3SD);

}

线路板及原理图排布如下:

上传的图片
  201212711223826.bmp [ 985.41 KB 528×637 ] (缩略时请点击查看原图)

 



上传的图片
  201212711332926.bmp [ 508.65 KB 600×434 ] (缩略时请点击查看原图)

 

谢谢!





「该帖子被 ymwlike 在 2012-12-07 11:33:38 编辑过」

有容乃大,无欲则刚!!!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/7 11:26:08
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
顶一下,你这个板子真是多灾多难

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/12/7 16:49:40
ymwlike(论坛新手)
ymwlike
头衔:社区公民
帮派:无帮无派
帖数:19
金钱:282
积分:30
注册时间:2012/8/5
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

没办法呀,菜鸟级别,第一次做也没什么经验。  

请高手能指点一二,不甚感激!!!


有容乃大,无欲则刚!!!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/7 17:48:17
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你看一下你SDRAM用的BANK和你访问的地址是否一致。VDSP的Power_On_Self_Test下有SDRAM测试代码,提出来改一下看看。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/12/10 9:53:15
ymwlike(论坛新手)
ymwlike
头衔:社区公民
帮派:无帮无派
帖数:19
金钱:282
积分:30
注册时间:2012/8/5
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

BANK和访问的地址不会有错,遍历程序也能保证是正常,在官方的开发板上能通过。

现在疑点有以下几点:

1.我线路板PCB SDRAM的走线是否会太长?

2.没用到的MS脚是否需要加上拉电阻或者下拉电阻?

3.SDRAM型号是MT48LC4M32B2-6的能支持Clock 166 MHz. 而我的21369支持最高频率是266MHz,所以我分配到SDRAM的速度是130Mhz。

是否选的SDRAM型号和21369不兼容?


有容乃大,无欲则刚!!!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/10 11:09:23
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

1. 走线不算长。

2. 不需要增加。

3. 你所使用的型号与ADI开发板上的一致,不会不兼容。你的21369的频率为内核时钟,系统时钟通常最高都为133兆。你可以尝试降低系统时钟,以降低SDRAM的运行速度尝试测试。

你检查你板子的焊接,还有器件是否有损坏的。测量一些信号,看看和官方的板卡的区别。



这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/12/17 18:50:06
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154133 Call, 1 Queries, Processed in 0.046875 second(s),