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.

[参考译文] TM4C129ENCPDT:使用 DMA 对8个 ADC 通道进行同步采样

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/595982/tm4c129encpdt-simultaneous-sampling-of-8-adc-channels-with-dma

器件型号:TM4C129ENCPDT

我已经从超声波阵列中采样8个信号,每个信号都由 ADC 通道以 ADC0的最大采样率(125kSPS)进行采样,问题是超声波信号在不同的时间到达与超声波源等离的传感器, 我想知道的是、如果8个通道的模拟数字转换不是同时进行的、我将使用一个用于 DMA 的计时器。

下面是 ADC 配置:

ADCClockConfigSet (ADC0_BASE、ADC_CClock_SRC_PIOSC | ADC_CClock_RATE_FULL、1);
ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_TIMER、0);
ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH19); // PK3
ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH18); // PK2
ADCSequenceStepConfigure (ADC0_BASE、0、2、ADC_CTL_CH17); // PK1
ADCSequenceStepConfigure (ADC0_BASE、0、3、ADC_CTL_CH16); // PK0
ADCSequenceStepConfigure (ADC0_BASE、0、4、ADC_CTL_CH0); // PE3
ADCSequenceStepConfigure (ADC0_BASE、0、5、ADC_CTL_CH1); // PE2
ADCSequenceStepConfigure (ADC0_BASE、0、6、ADC_CTL_CH2); // PE1
ADCSequenceStepConfigure (ADC0_BASE、0、7、ADC_CTL_CH3 | ADC_CTL_END | ADC_CTL_IE);// PE0
ADCSequenceDMAEnable (ADC0_BASE、0); 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您在"感应"中正确地认为 ADC "无法"执行"同步"转换。

    您提供的 NEAT 代码块-通过使用"ADCSequenceStepConfigure()",其中"Step"是"One at a time"操作的主要标识符! 我相信您的 MCU 有两个独立的 ADC 模块-因此(可能)能够执行"两个同步通道"的转换-但不能再执行了。 (您对 MCU 手册的详细阅读将显示)

    您(真的)是否知道每次模拟数据采集都会造成的代价-时间的"微小"变化-?
    可以以快得多的采样率运行 ADC -是不是? 这可以减少每次采集之间的延时时间。