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.

[参考译文] MSPM0G3507:有关 DMA 传输的多个问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1355608/mspm0g3507-multiple-questions-regarding-dma-transfer

器件型号:MSPM0G3507

尊敬的 Supportteam:

我实际上是在尝试使用 DMA、而不仅仅是在传输模式单次模式下。 由于我的传输大小、源地址和目标地址始终相同、我认为使用 Repaet Single 模式将是正确的模式。  

使用 DMA 通道0、表示全功能通道。 但在尝试在此模式下使用时、会出现几种挂起行为。  

设置启用时的第一个问题、传输永不停止。 或地址从不设置为原始值。  

我尝试将 DMA 与 SPI 结合使用。 在纯单模式下工作时、一切正常。  

它们是设置 CTL 寄存器中的 CONFIG 位所需的特殊序列、还是由触发引起的问题?

设置第一个传输大小和传输模式。 之后、当设置 ENABLE 或与触发器结合使用 ENABLE 时、传输将永不停止。  

不是我所期望的诚实

现在第二个问题、我是否正确理解了文档、另一个 DMA 不能中断正在运行的 DMA 传输?

我想在这里、尤其是在通过 SPI 运行的 DMA 上、以及为一些 ADC 通道开始第二次 DMA 传输。  

使用 SPI 接口的四字节深度 FIFO 进行 DMA 传输会发生什么情况、这是否意味着传输会立即结束并在接收到四个字节时成功接收到 DMA?
FIFO 大小限制为四个深度。  

我的目标是使用六个 ADC 通道、其采样率接近100kHz、并通过 SPI 从外部传感器传输800次、第二次传输9个字节。

三个 DMA 正在运行、但在8MHz 传输 SPI 数据时暂停、会中止我希望的 ADC 采样率、首先通过准备传输、其次通过正在运行的传输。

感谢您的任何建议或其他有用的回答。

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

    您好!

    由于我的传输大小、源地址和目标地址总是相同的,我想使用 Repaet single 将是正确的模式。  [/报价]

    TRM 告诉您:

    所有传输模式都是如此。

    Unknown 说:
    设置启用时出现第一个问题,传输永不停止。

    启用后、它永远不会停止。 当设置的数据大小已传输时、应将单个模式设置为自动停止。

    现在第二个问题,我是否正确理解了文档,是否正在运行的 DMA 传输不能被其他 DMA 中断?

    不对、DMA 传输将在触发器通信时开始传输。

    我认为您应该准备来自 ADC 结果的所有数据-9字节]

    然后、通过启用 DMA 通道开始 DMA 传输[在启用通道之前、用户应将 DMA 触发设置为 SPI TX FIFO 为空、传输大小为9、使用单次传输模式]

    B.R.

    萨尔

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

    主要错误是 SPI TX FIFO >= 1个条目、当按照您的建议设置为空时、我得到的是预期行为。