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.

[参考译文] TMS320F280039:ADC 引脚测量航空

Guru**** 664280 points
Other Parts Discussed in Thread: REF5030, TMS320F280039, C2000WARE, REF3430, OPA320
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1244728/tms320f280039-adc-pin-measurement-daviation

器件型号:TMS320F280039
主题中讨论的其他器件: C2000WAREREF3430OPA320、REF5030

尊敬的专家:

我们当前正在开发适用于 TMS320F280039的应用、发现其中一个 ADC 测量值略高于预期值(AIO229)、并且引脚看起来为内部上拉。 我们将测量线性调频脉冲。

正在比较两个引脚( AIO229和 AIO248)以进行调试、检查后发现它们显然具有相同的配置( 无上拉、无反转、SYNC )、但   AIO229 显示了该"偏移"。

此外、使用测试仪 AIO229进行测量时、该值高于预期、  从电路断开 AIO229后、测量值返回到"预期"电压。

您知道这两个引脚之间是否有任何可能引发此问题的硬件差异吗? 或者、您可以预见任何可能导致此行为的特定配置吗?

此致、

马克·费雷尔

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

    Marc、您好!

    请提供更多信息以便澄清:

    - 描述连接至 AIO 引脚的电路(如果可能,请提供示意图);

    -与基准相比,您看到的偏移量是多少?  

    谢谢。
    伊袋

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

    你好,Ibukun,

    我是这个同一个项目中的硬件用户。

    原理图如下所示:

    基准电压(VREFHI)为3V、模拟电压(VDDA)为3.3V。

    以下测量显示了 TP1927 (AOU248)的误差(电压增加)、以及200V 时 VOLT_DCL_POS_1的 ADC 误差。

    特高压/V TP1924 / V TP1927/ V 参考值 容差 AD -原始
    电压_DCL _POS_1
    AD -原始
    电压_DCL _POS_2
    0 0.001 0.000 0 0 - 6 19 0
    100 0.298 0.301 405 395 - 414 404 408
    200 0.594 0.632 810 797 - 822 823 870
    300 0.89 0.935 1215 1199 - 1230 1225 1280
    400 1.188 1.235 1620 1601 - 1638 1627 1685
    500 1.484 1.533 2025 2003-2046 2028 2089
    600 1.781 1.830 2430 2406 - 2454 2431 2492
    700 2.075 2.125 2835 2808 - 2862 2831 2892
    800 2.376 2.424 3240 3210 - 3270 3233 3294
    900 2.676 2.726 3645 3612 - 3678 3637 3697
    1000 2.970 3.018 4050 4014 - 4086 4037 4095

    您可以看到、当电压分频时、TP1927上的电压较高。

    然后、我还在微控制器处于复位状态(引脚 nXRS 连接至 GND)的情况下重复进行高达300V 的测量、AOI229上的电压上升较小。

    特高压/V TP1924 / V TP1927/ V 以 V 为单位的参考值
    0 0 -0.001 0.000
    100 0.298 0.3 0.297
    200 0.593 0.614 0.593
    300 0.89 0.915 0.890

    然后、我从 AOI229引脚(引脚18)上断开信号"VOLT_DCL_POS_2"、并再次重复测量、直至达到300V。 (引脚 nXRS 仍连接到 GND) TP1927上的错误现已消失。

    特高压/V TP1924 / V TP1927/ V 以 V 为单位的参考值
    0 0 0 0.000
    100 0.297 0.297 0.297
    200 0.594 0.594 0.593
    300 0.89 0.89 0.890
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    同时、我们向以下3个电路施加相同的电压 UHV。 且运行方式符合预期:

    所选的 ADC 通道如下(如果我错、请帮我 Marc)

    电压_DCL_POS_1 AIO248 C1
    电压_DCL_POS_2 AIO229 A3
    伏相位 U AIO253 C11
    电压_相位_V AIO 230 B1
    电压_相位_W AIO227 A9
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Cedric 和 Marc、您好!

    这可能是很长的时间、但是您是否尝试过明确禁用 AIO 引脚上的所有上拉电阻? 基本上、将0xFFFFFFFF 写入 GPHPUD 寄存器。 它听起来好像内部上拉正在影响它、尽管它确实应该在默认情况下被禁用。

    偏移看起来也相当恒定-在50-60 LSB 左右的范围内。 此处的一种缓解选项可能是使用 ADC PPB 失调电压校准功能、该功能可以自动向 ADC 转换结果中添加-512至511的失调电压值。

    伊袋

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

    你好,Ibukun,

    我在 代码上找不到 GPHPUD 寄存器。 我在 C2000ware 上搜索未成功。  另外、 技术参考手册仅在2023年6月最后一次修订的文档中提到 GPHPUD、所以我之前使用的版本也没有映射此寄存器。 您是否认为不匹配可能与该问题有关?

    此外、我们还通过将 0xFFFFFFFF 写入 GPHPUD 寄存器应有的寄存器地址来进行测试、但结果是相同的。  

    提前感谢、
    马克

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

    我们做了更多的测试、我认为我们找到了问题的根本原因。

    在一个通道上、AIO226我们测量范围为0-75的 DCL 电压、以便具有更高的精度。 由于 DCL 电压可以高达1000V、我们添加了钳位二极管、但似乎、钳位并不强。

    当 TP1935上的电压超过3V 基准电压时、我们开始看到会对某些 ADC 通道产生影响、但并不是对所有通道都产生影响。

    与0V 相比在 UHV = 100V 时的影响  3.72V @ TP1936
     
    引脚 是/否 AIO-#
    14 AIO 228
    15 AIO226
    16 AIO 242
    17 AIO 224
    18 AIO229
    19 AIO239
    20 AIO237
    21 AIO244
    22 AIO232
    23 AIO231
    24 VREFHI
    25 VREFHI
    26 VREFLO
    27 VREFLO
    28 AIO238
    29 AIO248
    30 AIO251
    31 AIO245
    32 AIO252
    33 VSSA
    34 VDDA
    35 AIO249
    36 AIO225
    37 AIO240
    38 AIO227
    39 AIO236
    40 AIO 230
    41 AIO253
    42 AIO247

    您能简要介绍一下内部钳位吗?

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

    Cedric,

    听说您能够对此进行跟踪、这是一个好消息。 上图中的钳位机制实际上与器件中输入引脚单元处使用的机制相同。 这些二极管主要用于 ESD 保护、但只要输入电压超过工作范围、就会产生灌电流或拉电流的影响。 但是、并未指定二极管的确切正向偏置电压。

    在我的测试中、我发现钳位二极管在开启时会灌入大约几 mA 的电流。

    此致、
    伊袋

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

    需要说明的一点是:顶部二极管连接到 VDDA 电源轨、电压轨的标称值为3.3V (这与 VREF 不同、在您的情况下它是3.0V)。

    此致、
    伊袋

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

    是的、我们希望钳位机制在每个模拟引脚上都是连接到 VDDA 的二极管。

    我们知道、TP1935上的电压将超过3V 并可能高达40V、因此我们添加了外部跳线二极管和10k 串联电阻器将进入引脚的电流限制在大约30uA。

    如果(正如预期的那样)每个 ADC 引脚都有一个朝向 VDDA  的单独钳位二极管、我们应该有效地保护 ADC 引脚 VOLT_DCL_POS_3/AIO226/引脚15。

    我现在不明白的是、我们看到该电流对其他 ADC 引脚产生了影响。

    在 VOLT_DCL_POS_3 / AIO226/引脚15上、我们在 UHV = 100V 时测量到3.72V。 这低于最大值。 输入电压为4.6V 并且如上文所述、电流也限制在大约30uA。

    除了每个引脚上的钳位二极管、ADC 引脚是否也以某种方式进行分组? 它们需要以某种方式存在、以便查看电压上升对其他(但不是所有) ADC 引脚的影响。

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

    好的、我离解决方案更近了一步:

    我调节了 VOLT_DCL_POS_3/AIO242的钳位和测量电路、以将电压限制在3.3V 以下

      Ra = 300e、Rb = 1k、R1957 = 121k

    不过、我看到预期 ADC 的微小偏差会导致较低的电压。

    特高压/V TP1924 / V TP1927/ V 以 V 为单位的参考值 参考值 容差设计 AD -原始 AD -原始
    电压_DCL _POS_1 电压_DCL _POS_2
    0 0.000 0.000 0.000 0 0 - 6 17 0
    70 0.209 0.209 0.208 284 275 - 291 300 296
    100 0.298 0.298 0.297 405 395 - 414 421 417
    200 0.596 0.595 0.593 810 797 - 822 823 818
    300 0.892 0.893 0.890 1215 1199 - 1230 1225 1221
    400 1.190 1.189 1.187 1620 1601 - 1638 1626 1623
    500 1.490 1.489 1.484 2025 2003-2046 2028 2024年
    600 1.783 1.783 1.780 2430 2406 - 2454 2431 2426
    700 2.079 2.078 2.077 2835 2808 - 2862 2832 2828
    800 2.381 2.381 2.374 3240 3210 - 3270 3233 3229
    900 2.672 2.673 2.671 3645 3612 - 3678 3636 3632
    1000 2.974 2.973 2.967 4050 4014 - 4086 4039 4035

    我可以肯定地说、所有 ADC 引脚上的所有电压低于 VDDA。

    但我们使用多个 AIO 作为数字输入、它们通常始终处于高电平且不会切换、除非发生市长故障。 (这就是我将这些数字输入信号放置在备用 AOI 引脚上的原因。)

    是否有可能是全部持续3.3V 的 nFLT 和 RDY 信号在某种程度上影响 VOLT_DCL_POS_1和 VOLT_DCL_POS_2的高阻抗测量?

    如果是、可以采取什么措施?

    我猜是因为、VOLT_DCL_POS_1 (引脚29)和  VOLT_DCL_POS_2 (引脚18)的 nFLT 和 RDY 信号都在附近。 从根本上来说、相同电路的 VOLT_PHASE_U/V/W 高阻抗测量结果未显示任何不准确之处、且附近没有 nFLT 和 RDY 信号。

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

    好的、我现在尝试测试 AOI 引脚上的数字信号是否受 ADC 值的影响、而不是受到影响。

    我将 RDY 和 nFLT 信号上的电压降低到3V。 -> AD RAW 值无变化。

    我还对 特高压应用了70V 电  压、然后在其他 AOI 输入端单独更改为0V。 这也不会更改 测量的 AD RAW 值。

    您能帮助我们了解我们在通道 VOLT_DCL_POS_1 / AIO248和 VOLT_DCL_POS_2 / AIO229上看到的 ADC 误差吗?

    此致、

    塞德里克·加瑟

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

    Cedric 您好!

    我觉得夹紧问题已经解决了。 我现在在您的数据中看到的是一个基本的增益误差问题、这将主要是您的电压基准的一个特征。 增益误差约为0.72%。 在下图中、蓝色是测试点电压、橙色是 ADC 转换、它是线性的、但斜率(增益)略有不同。

    您能否介绍一下您的电压基准电路? 您正在使用哪些组件?

    我们可能还需要确认您是否正确使用了 ADC_setVref ()函数来启用外部基准并正确加载修整。 如果未使用 ADC_setVref ()、则在 ADC 工作期间可能会错误地修整器件。

    此致、
    伊袋

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

    你好,Ibukun,

    我也认为夹紧问题已经解决。 (至少我希望这样:-))

    在以下电路中、我们使用元件"REF3430-Q1"作为基准电压:

    至于我们如何使用 UC 中的参考函数、我必须参考 Marc。

    此致、
    塞德里克

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

    你好,Ibukun,

    我可以确认我们在三个 ADC 模块的初始化期间使用了 ADC_setVref (作为 ADC_reference_external 和 ADC_reference_3_3V)。在这之前、我们还调用 SysCtl_deviceCal。  

    此致、

    马克·费雷尔

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

    Cedric 您好!

    Vref 引脚上的200nF 电容太大。 REF3430的额定输出电容仅为10uF、而该12位 ADC 对于 VREFHI 电容器的容值应为2.2-4.7uF。

    伊袋

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

    你好,Ibukun,

    很抱歉、我不确定我是否理解您的建议

    目前 VREFHI 上的唯一电容是2x 100nF。 一个电容器靠近基准、一个电容器靠近微控制器。 如果我理解正确的话,这是不值得的。 (不能太多)
    我假设我应该用2.2-4.7uF 的电容器代替靠近微控制器的100nF 电容器?

    此致、Cedric

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

    Cedric 您好!

    我的意思是 REF3430不能支持100nF。 2x100nF 甚至更糟

    根据 REF3430数据表、总负载电容不能超过10uF。

    此致、
    伊袋

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

    但100nF 或200nF 是远低于10uF 的

    100纳法< 10微法

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

    道歉! 我的大脑今天早上有点杂乱。

    是的、100nF 值太小。 最小值应为2.2uF。 您可以在基准附近放置一个2.2uF 的电容、在引脚附近放置另一个2.2uF 的电容、这样就可以正常工作。

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

    你好,Ibukun,

    遗憾的是、纠正后的2x 2.2uF 电容未解决我们的问题:

    从0到300V 的测量值看起来仍然相同。

    特高压/V TP1924 / V TP1927/ V 以 V 为单位的参考值 参考值 容差设计 AD -原始 AD -原始
    电压_DCL _POS_1 电压_DCL _POS_2
    0 0.001 0.000 0.000 0 0 - 6 18 0
    70 0.209 0.209 0.208 284 275 - 291 300 296
    100 0.298 0.298 0.297 405 395 - 414 421 417
    200 0.594 0.594 0.593 810 797 - 822 823 819
    300 0.891 0.891 0.890 1215 1199 - 1230 1224 1220

    还有其他建议吗?

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

    现在我能想到的唯一相关的东西是 ACQPS 设置。 我相信您的团队以前已经完成了这项工作、但可能应该重新审视一下。 在这种情况下、采集时间不足可能会表现为增益误差问题(您可以看到、随着输入电压的增加/所需的 S+H 电容充电时间增加、转换到预期的差值会减小)。

    这连同一个 VOLT_DCL_POS_1上的偏移误差(在0V 时显示为18 LSB)可以解释我之前布置的特性图。 如果无法 在电路板上消除偏移、ADC 具有使用 PPB 偏移校准(PPBxOFFCAL 寄存器)自动校正系统偏移误差的功能。

    伊袋

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

    你好,Ibukun,

    我们尝试显著增加采集时间、结果是相同的。

    我们进行了第二项测试、将 SOC2信号与 SOC3信号交换(从 SOC3转换了 VOLT_DCL_POS_1和 VOLT_DCL_POS_2)。 执行交换之后、我们可以看到结果有如下差异:

    原始代码:

    特高压 /V TP1924 / V TP1927/ V 以 V 为单位的参考值 AD -原始 AD -原始
    电压_DCL _POS_1 电压_DCL _POS_2
    0 0.001 0 0 18 0
    70 0.209 0.209 0.208 300 296

    将 SOC2信号与 SOC3信号交换:

    特高压 /V TP1924 / V TP1927/ V 以 V 为单位的参考值 AD -原始 AD -原始
    电压_DCL _POS_1 电压_DCL _POS_2
    0 0.001 0 0 11 0
    70 0.209 0.209 0.208 294 281

    您是否认为这可能表明存储器串扰问题? 否则、您还有其他建议吗?

    提前感谢、

    马克

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

    Marc、您好!

    我将在星期一尝试跟进这一主题。 存在串扰。

    伊袋

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

    你好,Ibukun,

    为了提供更多信息、在假设我们可能遇到存储器串扰的情况下、我们还通过将 SOC0 信号与 SOC3信号交换来进行了测试。  (VOLT_DCL_POS_1和 VOLT_DCL_POS_2)。

    我们看到、在将 VOLT_DCL_POS_1和 VOLT_DCL_POS_2 移至 SOC0后、其值会更低(我们认为此结果与存储器串扰兼容)。 我们还可以看到在 SOC3上采样的信号的值更高(之前在 SOC0上采样)、但偏移没有其他信号高、因此我们想知道是否有其他变量需要考虑。

    希望这可能有助于获得更好的概览。

    提前感谢、

    马克·费雷尔

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

    Marc、

    存储器串扰的最直接解决方案是在转换之间对 VREFLO 进行采样、这显然是以可能降低总体吞吐量为代价的、具体取决于您的控制环路频率/预算。

    除此之外、我们还有一份应用手册、其中深入探讨了这一特定主题: 缓解 ADC 存储器串扰的方法

    最终、这是高阻抗信号源的固有问题;它成为成本与性能之间的一种折衷。

    但是、如果您知道系统偏移是相对静态/不可变的、则始终可以通过使用 ADC PPB (失调电压校准)来自动补偿系统偏移。 动态偏移要难得多。

    此致、
    伊袋

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

    尊敬的 Ibukun:

    我们已经对" 缓解 ADC 存储器串扰的方法"(采样 vreflow)建议的策略进行了测试。  我们看到的偏移随着测量的信号电压的增加而线性增加(假设这与存储器串扰问题一致)、因此我的理解是、在这种情况下我们不能使用 ADC PPB、对吗?

    是否有任何其他可以减轻这种影响的 ADC 配置、例如调整 Acq 窗口?

    另外、是否有任何方法可以再次检查我们实际上遇到的问题、即内存串扰?  

    提前感谢、

    马克·费雷尔

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

    Marc、

    这就是我之前所指出的-整个输入电压范围内线性增加的误差就是增益误差。 通常、该误差应与电压基准精度直接相关(可在转换阶段仔细检查 VREFHI 以查看剩余电压和负载调节行为、以确认其正确性、它在转换期间是否会略有下降?)。

    根据您之前提供的数据、我计算出的增益误差为0.72%、这远大于 REF3430的规格精度(0.05%)。 也许还有其他(动态?) 关键因素。 SAR ADC 上电压基准的理想配置是将串联基准器件(REF3430、REF5030)与 OPA320等高带宽运算放大器缓冲器相结合。ADC 本身的固有增益误差小于0.002% FSR、 因此、任何观察到的增益误差都归因于器件外部的因素。

    PPB 只对基准偏移误差有所帮助、而不对增益误差有所帮助(请注意、您可以同时使用这两者)。  增益误差的任何调整都必须在软件中完成。

    关于串扰问题、简单的测试是禁用所有其他 SOC/通道触发器、只需对被重复测试的信号进行采样。 您应该具有一个稳定、可重复的转换值。 如果第一个一两个转换较低而其余的转换较高、则表明 ACQPS 不够长(假设您从零采样电容状态开始)。 现在、如果启用其他 SOC/通道并进行转换时信号的精度发生变化、则可确认存储器串扰。

    此致、
    伊袋