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.

[参考译文] AM2431:通过 FSS/OSPI 对 SPI RAM 的存储器映射访问

Guru**** 2511985 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1554332/am2431-memory-mapped-access-to-spi-ram-via-fss-ospi

器件型号:AM2431


工具/软件:

尊敬的专家:

我想回顾一下之前讨论过的一个主题、但我认为仍然缺乏决定性答案:
AM2431:XIP 存储器映射写入 (MRAM)

问题在于 OSPI 外设(基本上在 ALX 上作为四路 SPI 运行)是否可用于实现对外部 SPI PSRAM 的完全存储器映射访问。
具体而言、我的目标是直接通过指针读取和写入外部 RAM 上的变量、就像标准存储器一样。

典型的 Flash-XIP 用例中明确支持存储器映射读取。 然而,根据章节 12.3.2.4.9.  OSPI 直接访问控制器 (DAC) 、也可以进行内存映射写入:

直接访问是指数据接口访问直接触发对闪存存储器读取或写入的操作。 它采用存储器映射、可用于从外部闪存访问和直接执行代码。

闪存所需的扇区擦除通过 STIG 手动完成、因此如果连接 PSRAM、可以轻松省略该操作。

例如、我正在考虑使用 PSRAM 芯片、比如此处所示的“四通道 RAM“: https://www.issi.com/ww/pdf/SerialRAM.pdf
它支持与闪存兼容的 SPI 接口、这意味着从 OSPI 外设生成的操作码应兼容:

具有 DS NOR 闪存兼容接口的 JEDEC 标准四路 I/O (4S-4D-4D)  

从理论上讲、这种设置是可行的、但我非常想倾听 TI 专家或任何尝试过这种设置的人的心声。
是否有人使用 OSPI 成功实现了对外部 SPI PSRAM 的存储器映射读取/写入访问?

此外、我不确定 CPU 和高速缓存控制器是否按照我想要的方式完全支持此模式、特别是对外部 RAM 进行基于指针的无缝访问。

这一功能将成为 Sitara 控制器的一项显著优势。 2MB 的内部 SRAM 不足以满足我们的应用需求、因此我们不能使用支持 DRAM 和 GPMC 的更大 ALV 封装。
虽然闪存中的 XIP 有助于重定位代码、但我们的主要需求是为大型数据缓冲区扩展 RAM、从而使外部 PSRAM 成为潜在的理想解决方案。

提前感谢您的见解和经验!

此致、
Stefan

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

    您好 Stefan、我们有一个使用修改后的 AM243x EVM 的示例、它将 OSPI PSRAM (APS6408L) 与 OSPI 闪存连接在一起

    对于这款修改后的 AM243x EVM、我们使用存储器映射 (DAC) 创建了 OSPI PSRAM 驱动程序和示例代码。  在·Texas Instruments/Beyond-SDK·GitHub 中、代码是 beyond-sdk/am243x/examples/ospi

    针对您参考的常见问题解答: (+)【常见问题解答】AM243X:可以使用 MCU-PLUS-SDK PSRAM 作为存储器扩展吗? -基于 Arm 的微控制器论坛 — 基于 Arm 的微控制器 — TI E2E 支持论坛

    谢谢您、

    Paula

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

    您好 Paula、

    这是很棒的!

    在您的 XIP 示例代码中 、展示 您已成功从 PSRAM 执行代码。
    我也注意到一些直接的内存操作测试,然而,所涉及的变量和地址似乎位于 MSRAM 区域。

    您是否也尝试过在 PSRAM 区域中执行类似的直接存储器操作?

    此外、我对高速开关的需求也很好奇。 OSPI 支持四个片选引脚、因此不能简单地切换片选输出吗?

    谢谢、此致、
    Stefan

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

    嗨、Stefan、如果我记得正确、IO 应用程序会将数据从缓冲区复制到 PSRAM、然后再进行比较。 我还有其他代码在测试 memcpy () 时也进行了测试、但它不在 TI 的 GitHub 上。 在任何情况下、这都是经过测试的。
    关于您的问题、比如说为什么我们没有使用 CS0 来表示 OSPI 闪存、CS1 来表示 OSPI PSRAM、而我们的硬件团队增加了高速开关、我得到的解释是避免布线到这两个器件的线路上反射。  

    谢谢您、

    Paula

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

    好的、明白了、谢谢!