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.

[参考译文] TMS320F28386D:ADC 精度

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1240861/tms320f28386d-adc-precision

器件型号:TMS320F28386D
主题中讨论的其他器件:C2000WARE

尊敬的专家:

我在工作中根据 TI 示例对 ADC 模块进行编程。

以下是主要设置:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
ADC_setPrescaler(ADCD_BASE, ADC_CLK_DIV_4_0);
ADC_setMode(ADCD_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
ADC_setInterruptPulseMode(ADCD_BASE, ADC_PULSE_END_OF_CONV);
ADC_enableConverter(ADCD_BASE);
DEVICE_DELAY_US(1000);
ADC_setupSOC(ADCD_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_SW_ONLY, ADC_SOC_NUMBER0, 15);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


考虑到 VREFH=3V 和 VREFL=0V、 等于1.4989V 的直流电压在等于2044的数字代码中进行转换。

根据计算、正确的代码为2046。  

请注意、器件校准是通过 TI 函数 ADC_setMode 进行的。

我在对 ADC 进行编程时是否执行了错误?

提前感谢您。

此致、

贝尼托

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

    您好 Benito、

    您能否检查您是否正确配置了 ADC 的基准电压? 请检查 SET_VREF ()是否配置正确。  

    此外、您能否提供提供提供给引脚的电压范围? ADC 转换结果取决于基准信号和将被转换的输入信号的精度。 结果仅关闭2个代码。 因此、我认为这是由于这些信号的准确性。

    此致、

    Meghavi

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

    尊敬的 Meghavi Tank:

    感谢您的支持。  

    您能否检查是否正确配置了 ADC 的基准电压? 请检查 SET_VREF()是否配置正确。

    这个函数在哪里? 我  在  C2000Ware_3_04_00_00中找不到它。

    F2802x 优先使用了一个类似函数(ADC_setVREF)、但 f2838x 缺少这个函数...

    此外,您能否提供该引脚的电压范围? ADC 转换结果取决于基准信号和将被转换的输入信号的精度。 结果仅关闭2个代码。 因此、我认为这是因为这些信号的准确性

    我  对应用于我的 F8388x 的 VREFHI 和 VREFLO 进行了实验测量。 实际值为3.0011V、而不是标称值 3V。

    考虑到 VREFH=3V 和 VREFL=0V、 等于1.4989V 的直流电压在等于2044的数字代码中进行转换。

    根据计算、正确的代码为2046。  

    [/报价]

    通过使用 VREFH=3.0011重复此计算、应在2045.7 (因此、约为2046)中转换直流电压...代码中的 ADC 结果为2044...

    因此、  基准信号的精度 非常高、而微小的差异(0.0011V)不能证明2个代码的差异...

    此致、

    贝尼托

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

    您好 Benito、

    抱歉,请忽略  ADC_setVREF ()函数。 它不用于 f2838x 器件。  

    您能否提供3V 基准电压和1.49V 直流电压信号的图形? 我想检查这些信号的精度。 此外、转换结果会受到所用模拟输入通道的阻抗的影响。 引脚上的任何电阻和电容都将影响采样保持时间设置、该设置足以对 ADC 的内部采样电容器进行充电。 有关此主题的更多信息、请参阅《技术参考手册》第15.13.2节(选择和采集窗口持续时间)。

    此致、

    Meghavi

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

    尊敬的 Meghavi:

    感谢您的建议。   

    我使用高精度万用表测量了直流电压(1.4989V 和3.0011V)。

    引脚上的任何电阻和电容都将影响采样和保持时间设置,该设置足以为 ADC 的内部采样电容器充电

    我评估的采样时间必须高于70us。 实际上、我将 ACQ 分频器设置为20、而不是 TI 示例中报告的15。

    Fullscreen
    1
    ADC_setupSOC(ADCD_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_SW_ONLY, ADC_SOC_NUMBER0, 20);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    不过、ADC 结果(2044)不会改变、  

    贝尼托

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

    您好 Benito、

    您能否尝试检查1.4989V 以外的其他输入电压、并告诉我结果?

    此致、

    Meghavi