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.

[参考译文] LP-MSPM0G3507:使用 DMA 的 ADC 重复序列

Guru**** 2391415 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1519005/lp-mspm0g3507-adc-repeated-sequence-with-dma

器件型号:LP-MSPM0G3507

工具/软件:

您好 TI、

我有一个 ADC 器件 3. 通道按顺序、由硬件定期触发。

在第三次通道转换完成后、我需要通过 DMA 将转换结果从 ADC 复制到 uint16_t 软件缓冲器 、并为此序列继续重复、以便读取每个缓冲器索引对应于通道的最新数据。

在使用 syscfg 的 ADC 中、我的 DMA 样本计数、传输大小和 DMA 触发器配置应该是什么?您能否以比 TRM 更清晰的方式解释这些参数?

此致、

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

    大家好、需要注意的是、

    由于 DMA 访问 ADC FIFO 宽度为32位、因此两个 ADC 结果将一起复制到 RAM 中。

    您正在使用3个通道、建议您设置4个 ADC MEM 以适应 DMA 32位访问端口。

    MEM0 ->通道0、MEM1 ->通道1、MEM2 ->通道2、MEM3 ->通道2。

    MEM3结果将被忽略。

    一旦 DMA 大小向下计数到0、将触发 DAM 完成中断。

    下面是代码示例:

    e2e.ti.com/.../adc12_5F00_sequence_5F00_DMA_5F00_G3507.zip

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

    您好 Helic Chi、感谢您的答复、但现在如果我有5个信 道、我需要创建3个虚拟信道、还是有其他解决办法?  

    旁注:对于我的用例、我不需要在缓冲区中存储多个读数、只需要最新的读数、因此对于我使用的3个通道、传输大小为2。

    时间对我来说也很重要、因此我认为对于3个通道的情况、我必须在 MEM3 && MEM7&& MEM11触发、以便在每次触发时获取新鲜样本。

    5个通道会怎样?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我有5个通道 、是否需要创建3个虚拟通道?  [/报价]

    5通道、需要添加 ADCMEM0~5可以、一旦您使用 MEM5作为 DAM 触发源、DMA 需要通过1个触发器传输3次。

    我不需要在缓冲区中存储多个读数、只需要最新的读数、因此对于3个通道、我使用的传输大小为2。

    DAM 大小需要设置为3、但不需要执行此操作。

    因为您可以在需要时直接读取 ADC MEM 结果寄存器。

    您可以将 ADC 配置为序列重复模式、ADC 将自动更新结果 MEM。

    您只需要读取 ADC Result MEM 0 ~ 2来获得3个结果。

    如果您使用 DMA 并将大小设置为3、则需要在 DMA 完成时每次都重新启用 DMA。

    ADC DMA 需要处理的是重新启用 DMA、重新设置 DES 地址、重新设置大小、这些步骤比从 ADC 存储器直接读取结果要慢。

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

    我同意、对于我的用例、DMA 不会对性能增加太多。 但我只是想确认、我需要添加类似填充通道、以保持复制的数据在缓冲区中的相同位置保持一致。 谢谢你。