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.

[参考译文] TMS320F2.8377万D:在McBSP已配置时启动McBSP TX触发的DMA。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/584861/tms320f28377d-start-dma-triggered-by-mcbsp-tx-when-mcbsp-is-already-configured

部件号:TMS320F2.8377万D

您好,

我正在使用DMA在配置为SPI主控制器的McBSP上启动传输。 当我准备好要发送的数据时,我想启动DMA传输,从数据缓冲区传输到McBSP上的相关TX寄存器。

如文档和示例代码(C200ware)中所述,DMA应在McBSP之前配置,以便捕获启用McBSP后将触发的第一个McBSP TX事件。 但是我的DMA传输的大小有限,因此每次有新数据包时,我都需要能够重新启动DMA。

这意味着我需要在启用McBSP后重新启动DMA。 因此,我不能预期会为第一次突发触发TX事件(但 在第一次突发后,一切都应正常工作)。

是否应使用手动触发器(CONTINT.PERINTFRC)来启动第一个脉冲? 在此情况下,是否建议使用其他程序?

谢谢你。

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

    Javier,

    您将需要处理中断,以便使此功能正常工作。 我建议您在需要传输数据之前,保持禁用McBSP TX中断。 准备好开始传输后,即可启用McBSP TX中断。 DMA传输完成时,您将禁用TX中断。 这样可以使DMA始终准备好启动,并且只允许在准备就绪时触发。  

    这是否合理?

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

    Mark,您好!

    非常感谢您的快速响应。

    我在第一次脉冲中使用手动触发器进行了测试,如果这是推荐的程序,我的下一次测试将是尝试您的方法。

    在McBSP中,找到的唯一中断启用是MFFINT.XINTENA,但它始终被禁用,因此,我认为它不适用于McBSP TX DMA触发器。

    我应该使用什么中断启用?

    我还检查了禁用和启用TX (SPCR2.XRST)与DMA进行中会导致DMA从第一个突发开始。

    那么,建议的程序是什么? 如果使用手动触发器,是否有任何不希望的效果?

    谢谢你。