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.

[参考译文] MSP430FR2153:ADC 基准

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1242805/msp430fr2153-adc-reference

器件型号:MSP430FR2153

您好!

文档 SLAU445I - MSP430FR4xx 和 MSP430FR2xx 系列用户指南、表21-8。 ADCMCTL0寄存器说明中的说明指出、我可以将 ADCSREFx 设置为000b ={VR+= AVCC 和 VR–= AVSS}、此时将使用"AVCC"作为 ADC 基准。

我希望这实际上是 DVCC -在本例中为3.3V、并允许我测量系统 Vcc 电源范围内的任何东西。

在搜索 SLAU445I、SLASEC4D 和 DOCNUM-2.91.13.01中、我找不到 AVCC 的说明-它似乎没有出现在任何引脚上。 您是否能够确认 AVCC 实际是什么?

我还注意到读取内部温度传感器的一个奇怪结果。

在发现必须启用内部 Vref 之前、我读取了几项读数、发现使用 AVCC 作为 ADC ref 时内部温度非常低(几位)。 似乎内部 Vref 必须被启用、即使当它未用于 ADC 时也是如此、这样才能从温度传感器中获得合理的读数。

我按如下方式初始化 ADC:

//使用 ADC 的内置振荡器初始化 ADC
ADC_init (ADC_base、ADC_SAMPLEHOLDSOURCE_SC、ADC_CLOCKSOURCE_SMCLK、ADC_CLOCKDIVIDER_6);

//设置采样计时器以采样保持16个时钟周期
ADC_setupSamplingTimer (ADC_base、ADC_CYCLEHOLD_128_CYCLES、false);

//配置起始输入通道和基准电压
ADC_configureMemory (ADC_base、ADC_INPUT_DVCC、ADC_VREFPOS_AVCC、ADC_VREFNEG_AVSS);
// ADC_configureMemory (ADC_base、ADC_INPUT_DVCC、ADC_VREFPOS_INT、ADC_VREFNEG_AVSS);

ADC_setupSamplingTimer (ADC_base、ADC_CYCLEHOLD_4_CYCLES、ADC_MULTIPLESAMPLESENABLE);

ADC_setDataReadBackFormat (ADC_base、ADC_unsigned_binary);

ADC_setResolution ( ADC_BASE、ADC_Resolution_12bit );

//在每次测量就绪时启用中断。
ADC_enableInterrupt ( ADC_base、ADC_completed_interrupt_flag );

PMM_enableTempSensor ();

// PMM_enableInternalReference ();

// PMM_selectVoltageReference (PMM_REFVSEL_1_5V );

ADC_ENABLE (ADC_BASE);

然后、我触发了一个序列读取、以在中断时将所有通道转储到存储器阵列。

使用 AVCC 作为基准并在禁用内部 Vref 的情况下、我得到:

最右侧是 DVCC 输入(符合预期的最大值)、第二右侧是 DVSS (符合预期的0)、禁用的 Vref、所以很低、然后温度- 0x0027似乎很低。

启用 Vref (未注释上面的 init 中有2行)、我得到:

测得的 Vref 现在为0x073D、假设 ADC ref 为3.3V、给出的电压为1.492v、这符合预期。

测量温度现在为0x03E9或0.805v 或大约40°C、这似乎是合理的。


参考的文档。
SLAU445I -《MSP430FR4xx 和 MSP430FR2xx 系列用户指南》
SLASEC4D - MSP430FR235x、MSP430FR215x 混合信号微控制器
DOCNUM-2.91.13.01 -用于 MSP430FR2xx_4xx 器件的 MSP430 DriverLib

此致

吉姆·怀特豪斯

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

    您好、Jim、

    我正在研究该主题、并预计明天提供反馈。

    感谢您的耐心等待。

    B.R.

    萨尔

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

    您好、Jim、

    似乎内部 Vref 必须被启用,即使不使用它作为 ADC ,以从温度传感器获得合理的读数。

    我假设您应该使用温度传感器的内部 Vref、因为 温度传感器是使用内部电压基准进行校准的

    此外、用户指南中提到温度传感器偏移误差可能很大、对于大多数应用来说必须进行校准(有关参数、请参阅器件特定数据表)。

    B.R.

    萨尔