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.

[参考译文] TMS320C6713B:SDRAM 读写。

Guru**** 2587365 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/635919/tms320c6713b-sdram-read-write

器件型号:TMS320C6713B

您好!

这是我第三篇文章、用于寻求有关读取和写入连接到 C6713处理器的外部 SDRAM 的帮助。 正如此处 http://www.ti.com/lit/an/spra433e/spra433e.pdf 附录 A/B 所述、我已将 DSP 配置为16位配置。 但我仍然不知道如何读/写 SDRAM? 只有两行粗略的代码、即一行用于读取、一行用于写入、这将非常有用。 我尝试了以下操作、但未能正常工作。  

//读取
uint16_t 数据=*(volatile uint16_t) 0x12345678;//16位接口。

//写入
*(volatile uint16_t) 0x12345678 =数据; 

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

    Kowalski、

    如果您要设计一个新项目、我希望您考虑改用较新的 DSP、如 C6748。 如果这不是定制板、您是否正在使用 DSK6713?

    您是否已连接 JTAG 和 CCS 并为您的电路板工作?

    您在 SDRAM 编程 帖子中似乎具有正确的语法。 是否有理由将其更改为数据宽度?

    这是一个标准 C 语言编程问题、而不是与 DSP 相关的问题、所以这2个线程让我有点困惑。 如上所示、访问位于地址0x12345678的存储器的正确语法只需将该常量转换为指针、以便随后使用它来使用前导*访问存储器、如所示

    //读取

    uint16_t data =*(volatile uint16_t*) 0x12345678; //16位接口。

    //写入

    *(volatile uint16_t*) 0x12345678 =数据;

    但对于 DSK6713、SDRAM 可能位于 ChipSelect 0上。 从数据表中的存储器映射中、该地址从0x8000000开始、因此这是您应该使用的地址、而不是0x12345678。 地址0x12345678在保留的存储器空间内、所以不能使用它。

    当您通过 JTAG 进行连接并使 CCS 处于打开状态时、是否能够在"Memory Browser"窗口中上拉存储器范围0x8000000? EMIF 已正确初始化后、您应该能够读取和写入该存储器。

    建议您访问 TI.com 并搜索 TMS320C6x1x DSP 集成技术讲座。 这一较旧的实验课程已存档、并包含学生指南和实验。 这将向您传授有关处理器工作原理、工具使用方法以及如何使用某些主要外设、包括 EMIF 的大量知识。 这些实验将包含示例代码、用于执行您要执行的操作。

    此致、

    RandyP

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 RandyP。
    它实际上是基于 C6713的定制板。 我无法更改它。 它按照这种方式进行了解调、它应该位于 C6713芯片上。
    是的、我使用的是 JTAG 和 ccsv3.3。
    0x12345678只是一个用于说明的粗略地址。 在我的情况下、SDRAM 安装在 CE3地址 bb00000000000上。
    我使用了内存浏览器窗口。 一旦我执行第一个 WRITE 语句、整个 CE3空间就会在 MEMORY 窗口中填充相同的数据。
    当我读回它时... 最后写入的数据将被反映。 我不知道我们是否必须关闭与 SDRAM 的连接,或者我写什么内容。!!! 卡在那里。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还有一件事。 C6713仅支持4个字的突发模式。 如果 SDRAM 接口为32位、如何同时写入4个字。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kowalski、

    您有 DSK6713或任何已知良好的工作硬件吗? 当硬件无法正常工作时、您不能指望弄清楚 C 编程语法。 这是两个完全独立的东西。 您可以在不访问 SDRAM 的情况下测试 C 语法、只需将地址设置为内部存储器;语法相同。

    我建议您将此主题帖的最佳帖子标记为已回答、并打开一个新主题、以获得有关调试硬件和/或 EMIF 配置的帮助。 要了解 EMIF 如何与 SDRAM 进行交互、请参阅 C6713的 EMIF 参考指南。

    此致、
    RandyP