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.

[参考译文] TMS570LC4357:通过 DMA 将 SPI 更改为 SRAM、时序问题

Guru**** 2478765 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/955291/tms570lc4357-spi-to-sram-via-dma-timing-question

器件型号:TMS570LC4357

团队、

客户对通过 DAM 服务 SPI、将数据复制到 SRAM 有疑问:

(笑声)

目标是了解 DMA 是否可以足够快地将数据从 SPI 模块传输到 SRAM。

处理器的工作频率如下:

•GCLK 240MHz
•HCLK 120MHz
•VCLK 60MHz
•SPICLK 25MHz

SPI 在25MHz 的受控模式下运行、MibSPI 模块1至4在连续模式下使用、每个 SPI 传输高达1500字节、方向传输。 所有数据应在500us 内传输。

也就是说、每个 SPI 在接收中应该有一个 DMA 通道、在发送方向上应该有一个 DMA 通道。
第一个 DMA 传输由软件启动、之后通过通道链开始进一步的传输。

-->如何在此处配置 DMA 传输,以便在 SPI 缓冲器和 SRAM 之间尽快进行数据传输?
-->以及数据传输需要多少个时钟周期?
--> DMA 使用哪个时钟运行?

下面是我们假设的 DMA 传输序列、每个步长有怀疑的时钟周期数。

-->这些假设是否正确? 或者、您能否完成/改进流量和时序信息?
-->是否可以进一步并行化/优化?

 •软件 DMA 请求

 o DMA 通道0和1读取它们的主控制包6个周期
 o 通道0和1将数据写入工作映像3个周期
 o 仲裁可能需要1个周期
 o 可能需要等待状态??? 周期
 o 通道0和1执行 DMA 传输周期数=(每个元素的读取+写入) X 块中的元素数量

 •2.通道2和3的 DMA 请求

 •…μ A

 •对于通道0和1的下一个传输、请跳过"切换至工作图像"步骤

 -->读取或写入操作(在元件中)是否需要时钟周期?

(笑声)

谢谢、此致、
 Robert

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

    您好、Robert、

    我们没有与您的帖子中提到的 DMA 访问周期信息。 我将必须检查我们是否有可以提供的带宽测量。

    此致、Sunil

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

    您好、Oak 先生、

    由于 TMS570将用于安全关键型应用、我们需要在所述条件下为 DMA 速度提供经证明的最坏情况值。 测量可能不足以满足这一要求。

    您还能回答其他问题吗?

    此致、

    Katja Zimmermann

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

    您好 Katja、

    参阅下面的蓝色备注

    -->如何在此处配置 DMA 传输,以便在 SPI 缓冲器和 SRAM 之间尽快进行数据传输?

    >>在每个缓冲区中接收到的数据为16位宽(状态的16个额外位)。 因此、MibSPIRX 缓冲器的每次单独读取将为16位。 写入共享 SRAM 的数据总线宽度为64位、因此您可以将写入元件的大小配置为64位。

    当读取元素大小和写入元素大小不同时、DMA 支持对数据进行打包/解压缩。 在这种情况下、在对共享 RAM 进行64位写入之前、它将从 MibSPI RX 缓冲区中读取4个16位值。 这最大限度地减少了 DMA 在互连上必须进行的访问次数。 有关 DMA 的包装/解包操作的更多详细信息、请参阅参考手册。

    -->以及数据传输需要多少个时钟周期?

    >>这取决于多个方面、包括时钟配置、激活的 DMA 通道数量、CPU 和 DMA 访问之间的任何仲裁要求(如果有)。

    --> DMA 使用哪个时钟运行?

    >> DMA 控制器使用 HCLK 进行操作。

    -->这些假设是否正确? 或者、您能否完成/改进流量和时序信息?

    >> DMA 通道0和1不能并行工作、因为两个通道的源地址和目标地址都来自相同的 inteconnect 从目标。 所有 MibSPIx RAM 通过 PCR3 (外设中央资源3)访问。 这些将必须按顺序完成。

    -->是否可以进一步并行化/优化?

    >>如何将 DMA 传输与 MibSPIx 通信状态同步? 软件何时触发第一个 DMA 通道? 所有 MibSPIx 模块从器件都是同一个主器件吗?

    我们可以进行离线对话、以便我更好地了解要求。 我将请 Robert 为这一过程提供帮助。

    此致、

    Sunil

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

    您好、Sunil、

    非常感谢您的回答! 我们非常感谢下周举行离线对话、以便我们能够解决 问题。

    此致

    Mathieu  

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

    讨论继续离线进行。 关闭此主题。