工具/软件:
您好、
我们在 MCU063B controlCARD 上使用 TMS320F2838x 器件。 我们需要以 1Msps 的速率对 4 个独立信号进行采样、每个信号均使用 4 个 ADC、并要求每个 ADC 同时采样(同步采样)。 为了确保同时对信号进行采样、我使用相同的 PWM (EPWM1) 来驱动所有 4 个 ADC。 EPWM1 之后、每个通道都有 ADC SOC、ADC 和 DMA。 换言之、4 个 ADC 用于 ADCINT 和 4 个 DMA 通道以及 4 个 ADC 缓冲器。
EPWM1(所有 ADC 都相同)-> ADCx SOC0 -> ADCx 样本然后在转换结束时生成 ADCINT1 -> Dmax 由 ADCx 的 ADCINT1 触发-> GS RAM 中的数据缓冲器 x 用于样本
每个 ADC 的 DMA 通道均配置为将样本传输到数据缓冲区、并在传输结束时触发中断。 我会等待所有 DMA 通道都完成 N 个样本的传输、方法是将每个 DMA 通道配置为设置不同的标志。 所有 DMA 通道完成传输后、我会显示数据和/或将其发送到计算机进行分析。
注意:我首先执行所有外设配置、然后最后启动 EPWM1 时钟、以开始使用相同的 EPWM1 时钟触发 ADC、希望该方法能够确保 同时对所有 ADC 进行采样。
问题:
我使用上面的配置收集了样本、可以看到 1 个 ADC 与其他 3 个 ADC 相比具有随机采样延迟。 换句话说、3 个 ADC 完全对齐、1 个 ADC 偏移+1、–1 或 0 个样本。 使用调试模式时、ADC-A(第一个要配置的 ADC)几乎总是等于相对于其他 3 个 ADC 偏移的 ADC。
当我将程序刷写到闪存中并从闪存运行时、与其他 ADC 相比、ADC B(第二个待配置的 ADC)通常会偏移。
与其他通道相比、延迟看起来是随机的、但始终为 (+1、0、–1) 个样本。 