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.

[参考译文] TMS320F28P550SJ:ADC VREF 配置

Guru**** 2692745 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1597291/tms320f28p550sj-adc-vref-configuration

器件型号: TMS320F28P550SJ
主题: SysConfig 中讨论的其他器件

您好:

我们当前使用微控制器 f28p55x 获取 预期满量程电压为 3V3 的电信号。 我们希望使用由引脚 VREFHI 馈电的 3V3 外部基准、并在 3V3 的 ADC 中具有满量程电压。

我在配置模拟辅助基准寄存器时已编码了一个问题 、我将用一个示例更好地解释这一点。

我正在使用 ADC、VrefHI 3V3 和设置为外部(通过寄存器 REFPMUXSEL)的基准来测量 48V 的准电压。  测量电压的 I ADC 输入引脚、有 2.556V 的电压、应该会得到 3151 个计数的平均值。 我看到的问题是、感知到的计数为 1605 个计数、接收到的值为 24V。 我发现此问题是由于寄存器 ANAREFX1P65SEL 设置为 1 而引起的。 如果我将该寄存器置为 0、调试视图中显示的 ADC 计数按预期为 3100。

我的问题如下:

  • 我 认为、每当在技术参考手册中使用高于 2.95 的外部参考时、TI 建议设置 ANAREFX1P65SEL。  为什么会这样? 为什么我无法将该寄存器配置为 0 以使引脚电压为 3.3V?
  • 如果 寄存器 ANAREFX1P65SEL 设置为 1、是否意味着我无法将电压施加到高于 1.65V 的引脚? 如果是、为什么我使用的值为 1605 而不是饱和值来提供引脚上的电压为 2.556 且高于 1.65V?
  • 在测量中、这种/2 比例在哪里? 如何影响引脚上的基准电压为 1.65、但 VREFHI 为 3V3? 我不符合第 138 页数据表中的规范。(随附图片)。 我都不知道技术参考手册上的规范、该部分中说“当与外部参考配合使用时、
    对所有 VREFHI < 2.97V 使用 2P5 模式、
    对于 FSR 3.3V、在 1.65V 时使用 1P65
    应用于 VREFHI。“  image.pngimage.png

此致、

David

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

    您好、David:

    ANAREFx1P65SEL 位是导致您看到“/2"行为“行为的原因。 如果 ANAREFx1P65SEL = 0、则在外部基准模式下、ADC 满标量程 (FSR)= VREFHI 引脚电压。  因此、如果您驱动 VREFHI = 3.3V、ADC 范围为 0–3.3V、大约 2.556V 的输入在 12 位时应该读取 3170 个计数。

    如果 ANAREFx1P65SEL = 1、则在外部基准模式下、ADC FSR = 2 *(VREFHI 引脚电压)、并且 VREFHI 引脚预计约为 1.65V(≤VDDA/2)。  如果在该位为 1 时仍驱动 VREFHI = 3.3V、则 ADC FSR 变为 6.6V、因此读数会出现大约一半。 2.556V / 6.6V * 4095 = 1586 个计数、这与=1605 计数观察结果相匹配。 这就是为什么它不会饱和、因为 2.556V 仍然远低于 6.6V

    因此、为达到您的目标(外部 3.3V 基准、FSR = 3.3V)、通过 REF 多路复用器选择外部 基准、并为您使用的 ADC 基准块设置 ANAREFx1P65SEL = 0。

    此致、

    Masoud

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

    您好:

    感谢您的答复。 我还缺少另外两件事。  

    -为什么在注释的段落中指定我们需要使用 VrefHi 引脚电压<2.97V? 这似乎有点误导、因为在我们的示例中、VreHi 电压为 3.3V、因此、从注释部分中、我们无法选择。

    -为什么在 SysConfig 中不存在此选项? 它只允许我选择外部基准、但无法更改 ANAREFx1P65SEL 寄存器。 似乎不建议将 ANAREFx1P65SEL 设置为 0 并具有外部基准。

    此致、

    David

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

    您好、David:

    需要选择哪种模式。  对于正常的外部基准行为 (FSR = VREFHI)、使用 ANAREFx1P65SEL=0;  仅当您希望 FSR = 3.3V 且在 VREFHI 处施加= 1.65V 时(因为 ADC 在内部将其加倍)、才使用 ANAREFx1P65SEL=1。

    尽管措辞令人困惑、您可以将 VREFHI > 2.97V(例如 3.0V/3.3V)与 ANAREFx1P65SEL=0 一起使用、并且 Driverlib 使用相同的“外部+ 2_5V 枚举“来选择该模式。

    SysConfig 通常会通过 ADC_setVREF ()“基准电压“枚举将其抽象出来。  对于外部 VREFHI = 3.3V (FSR = 3.3V)、您通常需要:

    ADC_setVREF(ADCx_BASE, ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_2_5V);

    如果改为选择:

    ADC_setVREF(ADCx_BASE, ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_3_3V);

    这会将配置驱动为 1P65 模式(预计 VREFHI 上的电压为 1.65V)、 如果您实际馈电 3.3V、这正是产生半比例调节的情况。

    您可以 使 SysConfig 保持启用状态、但在 SysConfig init 运行后、添加/覆盖 init 中的 ADC_setVREF (... external、... 2_5V) 调用、因此它不会被覆盖。

    此致、

    Masoud

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

    尊敬的 Masoud:

    感谢您的解释。 我 选择“ADC VREF“覆盖。  

    此致、

    David