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.

[参考译文] RTOS/EK-TM4C1294XL:用一个触发器对8个 ADC 输入进行采样的最巧妙方法

Guru**** 2478185 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/688679/rtos-ek-tm4c1294xl-most-elegant-way-to-sample-8-adc-inputs-with-one-trigger

器件型号:EK-TM4C1294XL

工具/软件:TI-RTOS

您好!

对于我的项目、我需要背对背读取12个模拟值。 最巧妙的方法是什么、因为最大序列仅对8个输入进行采样?

此外、我还需要 DMA 将这些值存储在存储器中、以便几乎不会占用任何 CPU 时间。

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我建议您使用两个采样序列发生器(即 SS0和 SSI)、总共12个通道。 在 uDMA 中、您需要分别为 SS0和 SS1设置两个 DMA 通道。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    那么、我将使用相同的触发器触发两个序列、并且只将 ADC_CTL_END 用于第二个序列发生器的最后一次转换? 还是两者都需要它?

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    由于两个采样序列发生器有两个独立的 DMA 通道、因此您需要对这两个序列发生器执行此操作。 如果您仅基于第二个采样序列发生器的 ADC_CTL_END 生成 DMA 请求、则仅传输第二个 DMA 通道。 与第一个采样序列发生器相对应的第一个通道从未收到 DMA 请求。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过重新定义每个 HWI 中的序列0输入来解决该问题。 在1KHz 触发频率时、周期就足够了。

    此致、感谢您的帮助!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    这也会起作用、但会牺牲一些 CPU 带宽。 这是您的选择。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    "使用一个触发器对>8个 ADC 输入进行采样的最巧妙方法"

     

    答案很简单:

    0、找人为您做。

    1.查找具有>8个 ADC 模块并可由一个信号触发的 MCU;

    2.查找可触发8个外部 ADC 模块的 MCU;

    3.查找>8个具有>1个以上 ADC 模块的 MCU,以单独触发它们;

    4.查找 ADC 采样序列大于8且可由一个信号触发的 MCU;

    5.放弃。

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

    鉴于"简单"的答案0是一个笑话、标题是"RTOS/EK-TM4C1294XL:使用一个触发器对>8个 ADC 输入进行采样的最巧妙方法"、我不知道您的答案对我问题的解决方案有什么影响。

    但无论如何、谢谢。