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.

[参考译文] TMS320F28375S:EMIF2上的 SDRAM

Guru**** 2539130 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/678015/tms320f28375s-sdram-on-emif2

器件型号:TMS320F28375S
主题中讨论的其他器件:C2000WARE

您好!
我的客户制造了一个原始电路板。 它们在 EMIF2上放置了一个 SDRAM。
它们处于其功能检查的初始阶段。
 
当它们将0xA5A5写入 EMIF2_CS0n 起始地址0x9000:0000、然后回读时。
结果是0xA5A5、还可以、但问题是下一个地址再次读取0xA5A5。

您是否明白了为什么 addr 0x9000:0001读取0xA5A5?


我的客户提供了转储列表。
我们正在尝试收集更多数据、但这需要几天时间。
非常感谢您的建议或检查点。

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

    Hideaki-San、

    您能否在 SDRAM_CR 寄存器中检查 nm 字段的值? EMIF2是16位接口、因此应将其设置为"1"。

    此致、

    Vivek Singh

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

    Hideaki-San、

    如果遵循 Vivek 的建议后 SDRAM 仍然运行不正常、 EMIF 应用报告 还介绍了 C2000Ware 中的 EMIF 配置工具和一些常见的存储器故障模式。

    Tommy

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

    Vivek 和 tlee、

    感谢您的意见。

    -我的客户提供了一个寄存器转储。 我愿意分享。

    从转储中可以看到,nm 的位字段很好。

    - EMIF 配置工具:我正在处理它。

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

    Hideaki-San、

    EMIF2时钟频率是多少?  它是否向下分频至100MHz?

    Tommy

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

    我会分享一些数据:

    - 4月6日客户设置的波形:我将分享一些示波器波形图。 我正在处理这些问题。

    -Tommy 的新 SDRAM 设置:内存转储没有变化。 没有比这更好的了,也没有比这更

    /cfs-file/__key/communityserver-discussions-components-files/171/180410.zip

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

    Hideaki-San、

    重复的值通常用于寻址错误。  我建议向每个地址写入唯一的值、以便更容易识别故障信号。

    例如:

    * 0x90000000 =(UINT16) 0x0000;
    * 0x90000001 =(UINT16) 0x0001;
    * 0x90000002 =(UINT16) 0x0002;
    * 0x90000003 =(UINT16) 0x0003;
    * 0x90000004 =(UINT16) 0x0004;
    
    … 

    Tommy

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

    我的客户尝试了 Tommy 的测试代码:

    * 0x90000000 =(UINT16) 0x0000;
    * 0x90000001 =(UINT16) 0x0001;
    * 0x90000002 =(UINT16) 0x0002;
    * 0x90000003 =(UINT16) 0x0003;
    * 0x90000004 =(UINT16) 0x0004;


    * 0x90000002 =(uint32) 0x0001;
    * 0x90000004 =(uint32) 0x0002;
    * 0x90000006 =(uint32) 0x0003;
    * 0x90000008 =(uint32) 0x0004;


    代码告诉我我我的问题描述不正确。
    我很抱歉。 让我修改一下。 (我尝试进行了解压缩、但提取 ZIP 文件将是更好的选择):

    /cfs-file/__key/communityserver-discussions-components-files/171/180412-TestCode-Results.zip

    [写入和读取16位]
           -在所有偶数地址上镜像最新写入的值。 存储器窗口中的许多红色值。
           -在偶数地址写入:该值从+1个较大地址读取。
           -在奇数地址写入:该值从+1个较大地址读取。 +1地址是偶数、因此所有偶数地址镜像。 它们将在下一步中被覆盖。

    [写入和读取32位]
           写入的值会移位+16位,但不再有错误的位置更改。

    从结果中、我试图找到根本原因、但没有好主意。 一旦我想知道最低地址线是开放的或固定的,但这不足以解释所有内容。

    我可以问您的想法吗?

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

    Hideaki-San、

    32b 读取比16b 读取生成的 SDRAM 指令(和地址)更少。  其中一个信号可能正在缓慢转换、而不是卡住。  您的客户是否尝试降低 EMIF 频率?  这将是检查时序灵敏度的好方法。

    如果一个非常慢的 EMIF 时钟仍然有问题、我建议再次查看信号映射和引脚多路复用器配置。

    Tommy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tommy、
    所有的错误都被一个较慢的时钟、或者一个较大的 SYSCLKDIVSEL.PLLSYSCLKDIV 值所消除。
    这是一个时序问题、所以我将再次读取 SPRAC96。 第9页可能正常。