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 数据传输稳定性的 MibSPI

Guru**** 2472080 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1011784/tms570lc4357-mibspi-with-dma-data-transfer-stability

器件型号:TMS570LC4357

这是参考之前的讨论 https://e2e.ti.com/support/microcontrollers/other-microcontrollers-group/other/f/other-microcontrollers-forum/995129/tms570lc4357-mibspi-with-dma-buffer-transfer-cs-issue

MibSPI 和 DMA 传输借助大数据缓冲器(E_COUNT 64和 F_COUNT 4)在15MHz 时钟频率下保持稳定

将更新模式5与 BTC 中断一起用于启动 TX。

 在20MHz 时钟下、观察到帧重叠。 有关详细信息、请参阅前面的讨论。

在先前的讨论中提出的问题很少,但尚未得到答复。 请求提供您的观察结果。

当 BTC 中断被命中时、我将重新配置 DMA 通道以触发 TX。 可能是这不正确。 请告诉我、正确的方法是什么。

为了在两个通道之间同步 TX 和 RX、我使用缓冲模式5 (等待直到 TX 满)。 请注意、我的通信是在两个不同的控制器之间进行的、我需要以尽可能低的延迟创建全局数据缓冲区的镜像。 是否需要使用不同的缓冲模式来实现正确同步。

最高时钟速度可与 MibSPI 实际搭配使用。

4.I 正在 ETPWM 中断中使用电机控制 FOC、该中断配置为25KHz 周期时间。 此中断对 DMA 传输有什么影响吗?

谢谢。 Chandra

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

    您好、Chandra、

    如果使用相同的 DMA 数据包配置、则无需重新配置。 需要 重新启用 DMA 通道(HW 或 SW)、并且 MibSPI DMA 通道也应重新启用。 例如:

      dmaSetChEnable (DMA_CH1、DMA_HW);

      mibspiREG1->DMACTRL[0]|=(1 << 20)|(0 << 16);
      mibspiREG1->DMACTRL[0]|= 0x8000C000;

    SPI 从器件中的 VCLK 是什么? 从器件侧的最大输入 SPICLK 为 VCLK/2。 如果在从器件中未使用 SPIENA、则 SPI 主器件应在每次传输之间插入6个 vclk 延迟。

    最大 SPI 时钟为25Mbps

    DMA 在 SRAM 和 MibSPI RAM 之间传输数据、CPU 处理 SRAM 中接收到的数据。 如果 ePWM 中断服务例程花费的时间太长、DMA 传输可能会覆盖 SRAM 中尚未由 CPU 处理的数据。