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.

[参考译文] TMS570LS0714:使用 SPI 中断方法进行 DAM 数据传输

Guru**** 2589300 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/741667/tms570ls0714-dam-data-transfer-with-spi-interrupt-method

器件型号:TMS570LS0714

您好!

我正在使用 TMS570LS12x Hercules Launch Pad、使用中断方法评估通过 SPI 进行数据传输的 DMA 使用情况。

通过 e2e 论坛中的几个博客、我能够找到相关示例  

使用使用轮询方法的 SPI (example_mibspiDma.c)进行 DAM 数据传输  

SPI 主从器件数据传输( https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/469448/1687829

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    当使用 DMA 接口通过 SPI 发送/接收数据时、会使用 DMA 中断。 当发送/接收字符时、SPI 将使用 DMA 请求信号来使 DMA 控制器传输剩余的数据。

    在 example_mibspiDma.c 中、您可以看到如何配置 DMA。

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

    感谢您的快速响应。

    我能够使用 example_mibspiDma.c 并执行数据传输。 但我的问题是在 while 循环下面

    /*... 等待传输完成*/
    while (!(mibspiIsTransferComplete (mibspiREG1、0)))

    };

    我们是否不会浪费处理器周期等待传输完成? 传输完成时是否会生成通知/中断、以便我可以调用 mibspiGetData 来收集接收到的数据。

    我的目标是完成 SPI 传输、而无需等待数据传输完成。

    如果我使用 while 循环、它将与使用轮询方法相同、如果我错了、请说明如何比较轮询方法的高效 DMA 传输。

    谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试启用诸如 FTCA、LFSA、HCA 和 BTCA 等 DMA 中断、但在执行 mibspiTransfer 后、预期会进入 ISR 例程、但没有。
    请提供建议、这样做的任何示例都将有所帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Suresh、
    您成功了吗?

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

    我可以获得上述回复中提到的工作示例、但在传输完成但无法捕获中断时尝试捕获中断。
    请提供建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../7144.example_5F00_mibspiDMA.cI正在浏览 TI 论坛以查找我的问题的解决方案、我找到了此示例。 但是、这是针对 TMS570LC43x 完成的、有人想知道您是否可以为 TMSTMS570LS12x Hercules Launch Pad 建议类似的方法  

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

    您好、Suresh、

    请尝试以下操作: e2e.ti.com/.../3630.MIBSPI_5F00_DMA_5F00_TMS570LS1224PGE.ZIP

    此致、

    米罗

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

    例如、谢谢您、它与我让它工作的那个相同、但我的问题是、while 循环用于等待传输完成

    /*... 等待传输完成*/
    while (!(mibspiIsTransferComplete (mibspiREG1、0)))

    };

    我不想在这里使用此循环,因为它会终止处理器周期,当与较大的应用程序集成时,处理器周期可用于处理一些其他数据(请查看此处的示例)。

    示例我在之前的回复中发布的问题已解决、但它适用于 TMS570LC43x。

    任何帮助均已获得批准
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Suresh、
    在本示例中、传输后的数据将被读取。 这就是实现该环路的原因。 MCU 可以跟随其他一些代码、而不是这个循环。 但是、在使用发送的数据之前、用户应检查传输是否完成。

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

    谢谢 Miro、

    我想知道在接收数据准备就绪时是否可以生成中断、您能否分享一些有关这方面的信息。

    我尝试使用 FTCA DMA 中断、但对我来说效果不好。

    我在这里的目的是从从属方请求数据,并在从从属方提供数据时立即获取数据。

    谢谢

    Suresh J

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

    此致、
    米罗
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Suresh、
    您成功了吗?

    此致、
    米罗