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.

[参考译文] AM6422:SDK8.6 R5F ADC 连续 DMA

Guru**** 2422790 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1530713/am6422-sdk8-6-r5f-adc-continuous-dma

器件型号:AM6422


工具/软件:

您好、

   我们目前正在使用 R5F 进行开发、并采用其内部 ADC 进行采样。 数据以连续模式采集、并通过 DMA 存储在双缓冲器配置中。 例如、当以 100K 的采样率运行时、我们设置 DMA 传输计数以生成事件中断。 中断每 100 个采样点发生一次、转换为每 1ms 发生一次事件中断。 一旦触发了第一个中断、ADC 就可以继续正常运行并将数据存储在第二个缓冲器中、从而避免数据覆盖。 提供的示例主要侧重于单次采样、并且提供了有关与 DMA 集成的有限信息。 如果您能提供一些指导来帮助我们开发我们提到的功能、我们将不胜感激。 非常感谢。

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

    您好、Wanglilli、

    你可能会得到延迟的答复,因为我在其他升级.

    我很快就会回来的。

    此致、

    Anil.

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

    您好、

      是任何关于这个问题的新闻?

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

    您好:

       是任何关于这个问题的新闻?

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

    您好、Wanglili、

    在 MCU+SDK v11.0 中、我们使用 PKTDMA(数据包 DMA)对 ADC 进行连续数据采样。

    由于 PKTDMA 不支持链接或链接的传输、因此每次传输完成后必须手动重新提交 DMA 传输请求 (TR)。

    例如、如果要以 100kHz 的频率进行采样、并且将 DMA 配置为每 TR 传输 100 个样本、则 PKTDMA 中断将每 1ms(100 个样本后)触发一次。 一旦发生此中断、您必须:
    1.处理已完成的缓冲区(或标记以供以后处理),
    2.为下一个缓冲区重新提交一个新的 TR 描述符 (TRPD),
    3.并重新启动到备用缓冲区的 PKTDMA 传输。

    通过这种手动重新提交、可以实现基于软件的双缓冲机制、这有助于保持连续的 ADC 采样而不会丢失数据。

    此致、

    Anil.

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

    您好、

      感谢您的回复。当前的 SDK 版本 8.6 是否不支持此场景? 具体来说、如果每 1ms 生成一次中断、并且在中断处理程序内、我们需要复制 100 个采样的数据点、同时为下一次 DMA 传输准备一个新的缓冲区(在 ADC 继续在后台对数据进行采样的情况下)、如果在此时间间隔内处理时间超过 10μs、是否会错过采样点? 是这样吗?

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

    您好 、Wanglili、

    以下链接提供了带有 DMA 的 ADC 示例。

    ADC 中断每 1ms 触发一次。 在此中断中、您需要更新新缓冲区并重新提交新 TR。

    这样就可以满足您的要求。

    ADC 处理时间超过 10usec。 那么问题是什么呢? ADC DMA 中断每 1ms 触发一次。

    C:\ti\mcu_plus_sdk_am64x_08_06_00_43\examples\drivers\UDMA\UDMA_ADC_READ

    此致、

    Anil.