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.

[参考译文] TMS320F28388D:与其他 ADC 相比、一个 ADC 随机延迟 1 个样本

Guru**** 2574655 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1568578/tms320f28388d-one-adc-is-randomly-delayed-by-1-sample-compared-to-other-adcs

器件型号:TMS320F28388D


工具/软件:

您好、

我们在 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) 个样本。

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

    您好:

    每个 DMA 通道都由一个 不同的 ADCINT1 标志做好准备。 DMA 控制器为首先到达的请求提供服务。 由于这四个标志是在  一时钟周期中设置的、因此 DMA 仲裁器任意选择一个标志(通常是通道编号最低的标志)。 其他三个请求在 接下来的 DMA 周期中得到处理、这相当于 1‑ePWM‑TB‑CLK(≈10‑20ns)  移位

    尝试使用同一个 DMA 通道来检查它是否有所帮助。 如果必须保留四个、则根据触发所有四个 DMA 通道  ADCINT1.

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

    您好、Stevan、感谢您的答复。 我们能够解决这个问题。  我们在代码中遇到了一个错误、该错误将 ADC A 设置为 ADCINT1、以便在“转换结束“时触发、但其他 ADC 的设置方式不同。 因此、ADC 的配置方式并不完全相同。 修复此错误后、ADC 行为正确、不再存在随机采样偏移。  
    感谢您的评分

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

    欢迎您! 很高兴您能解决该问题!