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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1128610/msp430fr5994-unable-to-read-internal-temperature

器件型号:MSP430FR5994

我正在尝试读取 msp430FR5994器件的内部温度。  我的自定义代码始终读取0x0FFF。  我从 https://dev.ti.com/tirex/explore/node?node=AJrQUiceAYbtEIq1GixWhA 编译了"msp430fr599x_ADC12_10.c"的示例代码 。  示例代码执行了相同的操作。  返回 ADC12MEM0的值为"0x0FFF"。

e2e.ti.com/.../msp430fr599x_5F00_adc12_5F00_10.c

我能够从外部引脚进行 ADC 转换。   

我甚至不知道从何处开始调试它。  如果示例代码对我不起作用、接下来该怎么办?  这都是芯片内部的、所以我不会觉得硬件有问题

感谢你的帮助。

Bill

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

    您好 Bill、

    由于示例代码 会生成相同的结果、我们来看看一些特定于器件的项目。

    1. 您能为我提供器件的批次代码吗?
    2. CALADC12_12V_30C 和 CALADC12_12V_85C 的值也是?
    3. 这种情况是否也发生在其他器件上、还是仅发生在一个器件上?

    此致、

    Luke

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

    您好 Luke -

    板上有2个器件。  两者的行为方式相同。  器件上的标记为:

    81AOXSWG4  - MSP430 FR5994 REV C  (也可以是81AQXSWG4)。  很难分辨。

    器件1

    CALADC12_12V_30  = 0x0AA8

    CALADC12_12V_85  = 0x0C81

    器件2

    CALADC12_12V_30  = 0x0AC2

    CALADC12_12V_85  = 0x0C88

    谢谢

    Bill

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

    您好 Bill、

    我相信 您会在 MSP430FR5994器件勘误表中看到 ADC 67的勘误表。

    请应用变通办法。

    此致、

    Luke

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

    您好 Luke -

    这不能成为解决办法。  在应用任何校准数据之前、我从 ADC 传感器读取的数字是0x0FFF。  0x0FFF 不是有效的温度读数。  它是 ADC 的满量程。   

    Bill

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

    您好 Bill、

    我在 MSP430FR5994 Launchpad 上运行了示例代码、 并获得了下图。  

    您是否在定制 PCB 上运行? 考虑到您处于 FSR、可能会有一些因素导致 ADC 或 VREF 不稳定。

    让我们将内部基准从1.2V 更改为2.5V、看看 ADC 是否为我们提供了不同的值(以下是需要进行的3次代码更改)。 您还可以设置其中一个引脚来输出 VREF、并检查该值是否接近预期值。

    //Change the calibration data from the 1.2V ref to the 2.5V ref. 
    #define CALADC12_25V_30C  *((unsigned int *)0x1A22)   // Temperature Sensor Calibration-30 C
                                                          // See device datasheet for TLV table memory mapping
    #define CALADC12_25V_85C  *((unsigned int *)0x1A24)   // Temperature Sensor Calibration-85 C
    
    //Change the reference from 1.2 to 2.5 - line 92
    REFCTL0 |= REFVSEL_2 + REFON;

    此致、

    Luke

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

    对于2.5V 基准、读数不是最大值、但仍然远高于本应值。  读数为0xC7D。  30C 校准值为0xAA8。  85C 校准值为0xC81。  芯片的温度应该是26°C 左右的蜜蜂   

    我查看了基准引脚输出。  它在万用表上的读数为2.5伏。  在示波器上、线是平坦的、没有噪声。

    Bill

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

    您好 Bill、

    1.  由于2.5 VREF 为您提供数据、因此要使用相同的器件、您需要在2.5 VREF 附近进行校准。
      1. 温度传感器规格数据表中:TI 建议进行单点校准、以最大限度地减小内置温度传感器的偏移误差。 这也有助于对齐值。
    2. 器件的批次代码很旧、您可以订购新器件的样片、以获取不受 ADC 67勘误表影响的器件。  

    此致、

    Luke

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

    我将与硬件工程师合作以获取样片。  我们需要知道未来的批次/日期是好的、这样我们就不会购买更多的"旧"器件。  我们无法手动校准这些部件。   如果我们今天去 DigiKey 买了一堆东西、他们会工作吗?   

    谢谢

    Bill

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

    您好 Bill、

    任何批次代码高于87xxxxx 的产品都将更正校准数据(例如88xxxxx、89xxxxx、90xxxxx 等)。 我不知道 DigiKey 有什么库存、也不知道他们的器件有多旧、因此这对他们来说是一个问题。  请℃、电位偏移为±30 μ V、因此单点校准仍然是有益的。

    此致、

    Luke