This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28377D:读取和写入 SDRAM 的问题

Guru**** 2562120 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE, TMS320F28377D

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/956723/tms320f28377d-problems-of-reading-and-writing-sdram

器件型号:TMS320F28377D
Thread 中讨论的其他器件:controlSUITEC2000WARE

尊敬的团队:

我的一位客户发现、当通过 emif2操作外部 SDRAM (MT48LC4M16A2P)时、将数据写入 CS0芯片选择的固定地址时、所有地址都将成为数据。

通过引用 controlSUITE 中的 emif1_16bit_SDRAM_FAR_cpu01和 EMIF_32IT_SDRAM_cpu01项目、他将两个演示的 emif1配置更改为 emif2进行测试。  以下是测试结果和代码:

void main (void)
{
int i = 0;

InitSysCtrl ();
InitGpio ();//针对此示例跳过
DINT;//禁用中断
InitPieCtrl ();

//禁用 CPU 中断并清除所有 CPU 中断标志;
EALLOW;
IER = 0x0000;
IFR = 0x0000;
EDIS;

InitPieVectTable();

EALLOW;
EINT;
EDIS;

//#Step1
EALLOW;
ClkCfgRegs.PERCLKDIVSEL.bit.EMIFF2CLKDIV = 1;
EDIS;

EALLOW;
//#STEP2

//#STEP3
EMif2ConfigRegs.EMIFF2ACROT0.ALL = 0x0;

/#STEP4
F2RECOM.EMIRCMT.1+





















;EMIF2RF2.1+= 0x000+;EMIF0_EMIF2REGRAM1+= 0x000+;ENTR.INTR.EMIF0_INTR.ENTR_EMIF2RF2.1+= 0x000+;ENTR_EMIF0_EMIF0_EMIF0_ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.INTR.ENTR.ENTR_EMIF2EMIF2= 0x160_ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.ENTR.EM





emif2Regs.SDRAM_TR.bit.T_RAS = 4;
emif2Regs.SDRAM_TR.bit.T_RC = 5;
emif2Regs.SDRAM_TR.bit.T_RRD = 1;
emif2Regs.SDR_EXT_TMNG.bit.T_XS = 6;
emif2Regs.SDRAM_RCR.bit.refrrrrr率= 1562;// Clif2Regs.drgSDRAM

= 100MHz;emif2rgdr.emi2rgr.dr.em2r.emi_dr.rgr.emi2r.r.r.emi_drgr.r.r.rgb = 1




;emifrf2 = 1;emifrf2 drgrf2 drgrgrf2 = 1;emi2rfrgrfrgrgrfr.rf2 = 1;emi2r.rfrgrfr.r.rgr.r.rgr.rgr.r.em
emif2Regs.SDRAM_CR.bit.PAGESIGE = 0;
EDIS;



}


//仅读取数据
char SDRAM_READ_write2 (uint32 start_addr、uint32 mem_size)
{
uint16 mem_rdl;
uint16 mem_wdl;
uint32 xMEM_p;uint32



mem_size


= 0x32 mem_rdp;
uint32 m_dr = uintm_dr;uint32 m_dr = u+ I = 0xm_dr;uint32 m_dr;uintm_dr = u_dr;u+ I = 0m_dr;uint32 m_dr = u+


XMEM_p = XMEM_p+2;
mem_wdl += 0x0001;
}
}

//io
void setup_emif2_pinmux_SDRAM_16bit (uint16 cpu_SEL)
{
int i;

for (i=53;i<=68;i++)
{
GPIO_SetupPinMux (i、cpu_sel、

i = 96;for}(i = 63;i = 68;i) i<=121;i++)
{
GPIO_SetupPinMux (I、CPU_SEL、3);
}

//
//为异步模式配置数据引脚
//
针对(I = 53;I <= 68;i++)
{
GPIO_SetupPinOptions (I、0、0x31);
}

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Green Deng、

    我建议使用 C2000Ware 中的配置工具检查 EMIF SDRAM 设置:~\C2000Ware_XXXXX\boards\TIDesigns\F28379D_EMIF_DC\C2000-EMIF_ConfigurationTool.xlsx

    还有这个 EMIF 应用手册 、其中包含一些设计、使用和调试指南。

    Tommy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tommy:

    感谢你的答复。

    我的客户使用工具检查了配置、 没有发现任何问题。

    然后、他想问为什么 tms320f28377d 没有与突发长度和行地址行大小相关的字段。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    绿色、

    JEDEC 标准提供了兼容性行为指南。  EMIF 仅针对允许根据标准变化的参数进行配置和指定。

    Tommy