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.

[参考译文] MSP430G2553:将 LMT85-Q1模拟温度传感器与 MSP430G2553配对

Guru**** 2511985 points
Other Parts Discussed in Thread: LMT85-Q1, MSP-FET

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/735893/msp430g2553-pairing-the-lmt85-q1-analog-temperature-sensor-to-the-msp430g2553

器件型号:MSP430G2553
主题中讨论的其他器件:LMT85-Q1MSP-FET

这是我的电路。 我将从 MCU 的 P2.1馈送 LMT85-Q1。 MCU (A0)上的引脚2用于读取传感器的输出。  

#include 


/**
* main.c
*//

声明并初始化一些变量
volatile unsigned counter = 0;
volatile unsigned temp_arr[20];

void main (void)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

//馈送温度。 传感器
P2DIR = 0x02;
P2OUT = 0x02;

//从文档
中设置 ADC ADC10CTL0 = SREF_0 + ADC10SHT_3 + ADC10ON + ADC10IE + MSC;
ADC10CTL1 = INCH_0 + ADC10DIV_1 + ADC10SSEL_0 + CONSEQ_2;
ADC10TCD0


= ADC10ENC10 = ADC10C10/ ADC10SC 模块= ADC10ENC10/ ADC10CTR0

//启用中断
__ENABLE_INTERRUPT ();

}

#pragma vector=ADC10_VECTOR
__INTERRUPT void ADC10_ISR (void){//更改为 ADC10_香蕉

//中断逻辑出现在这里
if (counter < 20){
//将 ADC10MEM 值转储到 位置/索引 
temp_arr[计数器]= ADC10MEM;

//递增计数器
COUNTER++;
}

否则{

//重置计数器以避免 "超出范围"
计数器= 0;

//关闭 ACD10
ADC10CTL0 &=~(ENC + ADC10SC);
}
}

电压返回值与环境 温度不对应:  

我缺少什么?

根据文档、408mV 转换为138C。  

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

    ADC 的输出是计数、而不是电压。 您需要根据基准电压和总计数数量来进行一些数学运算以对其进行转换。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这些值来自 ADC10MEM、以 ADC 节拍为单位。 如果是10位且 Ref=3.3V、则得到408/1024*3.3=1.314或大约31C。

    您可能需要检查 Vcc。 许多 LaunchPad 以3.6V 的电压运行、这将使结果接近21C (约为我的实验中的温度)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的公式和解释。 VCC (从 MSP-FET 闪存到 MCU)恰好为3.330V。 我不确定1024来自哪里:408 (即 ADC10节拍数)/(1024)* 3.3V (MCU VCC)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    2^10位= 1024、即以 ADC 节拍为单位测量的满量程。