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.

[参考译文] MSP430G2231:使用具有外部 VREF-的 ADC 10

Guru**** 2390955 points
Other Parts Discussed in Thread: MSP430G2231

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/783495/msp430g2231-using-adc-10-with-external-vref-

器件型号:MSP430G2231

我正在使用 MSP430G2231 ADC10进行一些测试,并且在使用外部 VREF-时看到意外的结果。 我不确定我是否设置错误、或者我误解了它应该如何工作。

在测试电路中、我可以改变 VREF-和 MSP430G2231电源 GND 之间的偏移。  我读取的输入信号也会被 VREF 偏移、因此、在 ADC 输入通道和 VREF 之间进行测量时、无论偏移如何、电压读数始终保持恒定。 我原本希望 ADC 读数保持恒定(误差裕度内)、但我看到的是 ADC 读数随着 GND 偏移的增加而增加。  

 如果能对建议有任何见解,将不胜感激。

 

这就是我配置 ADC10的方式。  

WDTCTL = WDTPW + WDTHOLD;

BCSCTL1 = CALBC1_1MHz;
DCOCTL = CALDCO_1MHz;

ADC10AE0 |= BIT3 + BIT7;
ADC10CTL0 = SREF_5 + ADC10SHT_3 + REFON;ADC10AE0 |= ADC10CL1 +


ADC10EN7周期
;ADC10CL1 = ADC10_INCH + ADC101000周期;ADC10_INCH = ADC10_0 + ADC10ENCK_7;ADC10_INCH = ADC10_CK_7周期;ADC10_INCH = ADC10_INCH + ADC10
while (ADC10CTL1 & ADC10BUSY);


Alastair

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

    请注意、您的 VREF+是保持不变的 VCC。 因此、当 VREF-发生变化时、即使 ADC 输入和 VREF-之间的差值相同、ADC 转换结果也会相应地发生变化。

    例如:假设 VCC = 3V
    当 VREF-= 0V 且 ADC 输入= 1V 时、转换结果为(1 - 0)/(3 - 0)* 1024 = 341
    当 VREF-= 1V 且 ADC 输入= 2V 时、转换结果为(2 - 1)/(3 - 1)* 1024 = 512

    因此、ADC 读数随着 GND 偏移的增加而增加、这与观察到的情况相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好、Philo

    当然、现在我看到了它! 我不想承认、我已经阅读了系列指南中的 ADC 部分多少次、但错过了它的实际工作原理。

    感谢您花时间提供帮助。

    Alastair