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 采样应用

Guru**** 2391335 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1071893/tms320f28388d-adc-sampling-application

部件号:TMS320F28388D

你好,查普,

我正在为我的客户寻求帮助。

对于他们的应用,这是一个四相同步降压拓扑。

它将使用 ePWM 触发 ADC SOC。

以下列出了采样信号量和采样频率信息。  

它包括4相电流(5us),1个平均输出电流(15us)和4个 OTP 信号(1ms)。

因为应用程序非常关注分辨率,并且希望 尽可能降低噪音。

因此,我的策略是在 PWM 循环中每两次执行一次采样过量。 这是一种好方法吗?

此外,我认为采样时间序列及其在 ADC 模块中的采样方式也可能会影响结果的性能。

我是否可以让专家评论 什么 是适合客户应用的最佳信号采样策略?

感谢您的支持。

此致。

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

    你好,约翰尼,

    如果应用目标是最高分辨率和最低噪声,它们肯定应该考虑使用16位差分采样。  

    16位转换大约需要1us,并且有4个 ADC 可以并行运行,因此控制环路中肯定有时间对2x 进行采样。  您只需权衡采集2个样本并将其平均化而不是采集1个样本的额外延迟是否值得额外降低噪音。   

    对于平均输出电流,采样速是否需要变慢?  每5 us 采样4相电流+ 1个平均电流可能会更容易(而且应该有时间)。 如果需要,您可以在三个5us 周期内达到平均值。  

    因此,总的来说,快速采样可能是这样的:

    • ADC-A:SOC0 = i1,SOC1 = i1,SOC2 =平均电流
    • ADC-B:SOC0 = i2,SOC1 = i2  
    • ADC-C:SOC0 = i3,SOC1 = i3  
    • ADC-D:SOC0 = i4,SOC1 = i4  

    每个 ISR 都将 SOC0和 SOC1平均在一起。  每一家 ISR 您还需要将平均电流相加,然后每三家 ISR 进行一次除法,以获得您的总体平均电流。

    加入较慢的 OTP 样本可能取决于要求。  这些是否还需要16位分辨率?  它们是否需要尽可能低噪声(差分)或是单端输入?   

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

    德文:

    很抱歉答复晚了。 我只是赶着去了解更多关于这位客户这几天申请的信息,这才是农历新年假期的原因。

    以下是客户 的设计信息的第一个版本。

    目前 ,4相电流全部由16位差分采样 ADC (ADC-A)采样,每5 us 采样一次。

    此外, 对于平均输出电流,采样率为每15 us 一次。

    您建议对 客户的下一版式进行采样并并行操作。  

    如何在较慢的 OTP 样本中添加? 此外 ,每1毫秒还采样4个 OTP 信号,但不需要16位分辨率。

    但是,据我了解,不支持同时将任何单个 ADC 的少数通道配置为12位单端和16位差分,对吗?  如果是, 4个 OTP 信号也可能需要16位分辨率。

    如何安排这样的采样顺序?

    • ADC-A:SOC0 = i1,SOC1 = i1,SOC2 =平均电流, SOC3 = OTP1
    • ADC-B:SOC0 = i2,SOC1 = i2                      ,SOC3 = OTP2
    • ADC-C:SOC0 = i3,SOC1 = i3                      , SOC3 = OTP3
    • ADC-D:SOC0 = i4,SOC1 = i4                      , SOC3 = OTP4

    感谢您的任何评论。 我很感谢。

     

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

    你好,约翰尼,

    如果使用16位 ADC,您希望避免以不会锁定的方式运行 ADC (请参阅 TRM 部分“确保同步操作”)。  这包括将一个或多个 ADC 专用为12位,将一些其他 ADC 专用为16位,然后同时触发它们(12位和16位 ADC 有不同的时间安排,因此它们不会同步运行)。  

    可以将一些 ADC 指定为12位 ADC,将一些 ADC 指定为16位,只要它们不同时运行,那么一个解决方案就是在这3个 ADC 之间分配4相电流和平均电流(设置为16位差分模式) 4个 OTP 采样到另一个在12位单端模式下运行的 ADC。  然后,您需要为16位样本完成后出现的12位 ADC 使用延迟 ePWM 触发器:

    • ADC-A (16位 DE):SOC0 =(i1,ePWM1A),SOC2 =(i4,ePWM1A),SOC3 =(i1, ePWM1A)  
    • ADC-B (16位 DE): SOC0 =(i2,ePWM1A),SOC2 =(i4,ePWM1A),SOC3 =(i2, ePWM1A)  
    • ADC-C (16位 DE): SOC0 =(i3,ePWM1A),SOC2 =(平均,ePWM1A),SOC3 =(i3, ePWM1A)  
    • ADC-D (12位 SE): SOC0 =(OTP1,ePWM1B),SOC2 =(OTP2,ePWM1B),SOC3 =(OTP3, ePWM1B),SOC4 =(OTP4,ePWM1B)   

    注:

    • ePWM1B 触发器的 ePWM CMP 设置为在 ePWM1A 触发器后发生3us (或最长的16位采样链需要较长的时间)
    • 您可以使用“突发模式”使 ADC-D 只能转换每个触发器中的一个 SOC,而不是始终转换所有4个 SOC
    • 注意:如果 ePWM1没有备用比较,您可以使用与 ePWM1同步的备用 ePWM 模块来生成延迟触发器。   您还可以设计一个电子 PWM 运行速度慢得多(但仍保持同步)的方案,以便以更低的速率对 OTP 信号进行采样
    • 在上述信道分配中,i4在两个 ADC 上同时采样,然后平均值。  这将使 ADC 中的噪声达到平均值,但不会影响外部噪声(如果输入中出现一些噪声,两个 ADC 都很可能捕获噪声,因为它们同时采样)。  通道14 + 15连接到内部所有 ADC 以实现此目的。 选择此方案是为了获得所有4个相位的平均时间进行对齐(它也使平均电流读数对齐)

    ---

    另一种可能性是在 ADC ISR 中手动采集 OTP 样本一次:

    • (假设输入 ISR 时所有16位转换均已完成)
    • 检查是否需要在1ms OTP 样本中触发一次,如果是:
      • 将所有 ADC 的模式交换为12位单端模式
      • 触发(理想情况下同时触发)所有4个 ADC 以转换每个 OTP 信号
    • 收集并处理来自4相电流和1平均电流的数据
    • 如果这次采集了 OTP 样本
      • 等待 OTP 样本完成(上述正常 ISR 处理时间 可能已足够,因为一个12位样本仅为~300ns)
      • 处理 OTP 样本
      • 将 ADC 切换回16位差分分辨率
    • 正常 ISR 清理

    注:setAdcMode 函数需要很长时间,因为它在12位和16位模式之间交换了最佳线性和偏移微调。  如果您将16位微调保留在中,则12位性能仍然很好,因此可以随意直接切换分辨率和信号模式位,以节省时间(如果需要)。  

    --

    最后,如果要对 OTP 样本使用16位模式,请注意,您可以在16位差分模式下运行某些 ADC,同时其他 ADC 以16位单端模式运行(计时相同) 因此,您可以始终将所有 OTP 信号置于 ADC-D 上,然后执行如下操作:

    • ADC-A (16位 DE):SOC0 =(i1,ePWM1A),SOC2 =(i4,ePWM1A),SOC3 =(i1, ePWM1A)  
    • ADC-B  (16位 DE): SOC0 =(i2,ePWM1A),SOC2 =(i4,ePWM1A),SOC3 =(i2, ePWM1A)  
    • ADC-C  (16位 DE): SOC0 =(i3,ePWM1A),SOC2 =(平均,ePWM1A),SOC3 =(i3, ePWM1A)  
    • ADC-D  (16位 SE): SOC0 =(OTP1,ePWM1B),SOC2 =(OTP2,ePWM1B),SOC3 =(OTP3, ePWM1B),SOC4 =(OTP4,ePWM1B)   

    这将导致 OTP 信号被高速采样,如果您想使用“收费共享”驱动程序 design...see https://www.ti.com/lit/an/spracv0/spracv0.pdf 来保持信号调节电路的廉价,这可能是不可取的