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.

[参考译文] MSP430FR5994:开箱即用温度传感器数据-温度数据过高

Guru**** 2589245 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/824081/msp430fr5994-out-of-box-temperature-sensor-data---temperature-data-unrealistically-high

器件型号:MSP430FR5994

大家好、我正在使用开箱即用演示文件(特别是 LiveTempMode.c 和 main.c 中的校准代码)、我正在分析从温度传感器获取的数据。 我定义了两个变量、以便我可以在调试器中检查这些值。  

我在文档中找不到这些值表示的含义、但我假设您需要将温度数据的高字节和低字节组合在一起才能获得实际值。 使用以下命令对高字节进行组合= x06 (十进制为6)和低字节=~x1C (十进制为28):

温度=温度低|(温度高<< 8);

为我提供1564的温度值。 无论是摄氏还是华氏温度、这都太高了。 我不认为一个部分代表小数点之后的数字、因为高字节读数保持不变、只有低字节发生变化。

如何解读这些读数?

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

    尊敬的 Peter:

    首先、ADC{1.2、2.0、2.5、external}使用什么 VREF 电压?

    根据温度二极管@25C 上的预期电压(请参阅 MSP430FR5994系列用户指南中的下图)、我怀疑您使用的是2.0内部基准。  这就是为什么:您测量了1564个 ADC 计数。  12位 ADC 可测量多达4096个计数、因此1564/4096 x 2.0V = 763mV、这几乎完全符合图表的要求。

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

    啊、我看到、我获得的数据是 ADC 计数、而不是温度。 正确、我使用的 VREF 电压为2.0V、这是从 开箱即用演示代码复制的。

    在哪里可以找到根据图表将计数转换为温度的函数? 我在代码中没有注意到它。

    谢谢你

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

    在示例套件中对 msp430fr599x_ADC12_10.c 进行编程[SLAC710A、产品页面上的工具和软件选项卡] 显示了如何计算温度。

    校准常数在用户指南(SLAU367O)章节中进行了说明。 1.14.3.2

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

    有趣的是、源文件甚至不包含高/低字节的温度数据、但它起作用了! 非常感谢。

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

    尊敬的 Peter:

    听起来您的终端设备工作正常-对吧?

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

    是的、温度读数现在对我来说是有效的。 谢谢!