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.

[参考译文] MSP430FG437:MSP430FG437是否具有内部温度传感器校准数据或 TLV 表?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/844871/msp430fg437-does-msp430fg437-have-internal-temp-sensor-calibration-data-or-tlv-table

器件型号:MSP430FG437

尊敬的香榭丽舍

MSP430FG437是否具有内部温度传感器校准数据或用于 ADC 校准数据的 TLV 表?

如果您有任何疑虑、请随时告诉我。

非常感谢。

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

    Janet、您好!

    感谢您将问题发布到 E2E。 MSP430FG437具有集成温度传感器、作为 ADC12模块的一部分。 这是从用户指南复制的图、说明了通道1010b 如何连接到温度传感器。  用户指南中的28.2.8节讨论了如何使用它。

    与我们的某些较新器件不同、我在 MSP430FG437数据表中找不到可用的 TLV 数据。 我确实找到了演示如何使用内部温度传感器的代码示例、但它没有显示如何校准传感器。 因此、我怀疑您需要手动校准(消除的偏移)每个器件的温度传感器。

    fet430_ADC12_10.c

    /*-版权所有-、BSD_EX
    *版权所有(c) 2012、德州仪器(TI)公司
    *保留所有权利。
    *
    *
    只要
    符合以下条件*、允许以源代码和二进制形式重新分发和使用:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    ***二进制形式的再发行必须在
    
    *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    ***未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *、
    
    不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
    *贡献者都不对任何直接、间接、偶然、特殊、
    *模范、 或相应的损害(包括但不限于
    *采购替代产品或服务;丧失使用、数据或利润;
    *或业务中断)、但出于任何责任理论
    、*无论是在合同中、严格责任还是由于
    使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
    、*即使已获悉可能会发生此类损坏。
    *
    ***
    *
    * MSP430代码示例免责声明
    *
    * MSP430代码示例是自包含的低级程序
    ,通常*以
    高度*简明的方式演示单个外设功能或器件功能。 为此、代码可能依赖于器件的加电默认
    值*寄存器值和时钟配置等设置、
    并且在组合多个示例中的代码时必须*小心以避免潜在的副作用
    *。 另请参阅 www.ti.com/grace 了解 GUI、并参阅 www.ti.com/msp430ware
    *了解外设配置的 API 函数库方法。
    *
    *--/版权--*
    //*********
    // MSP-FET430P430演示- ADC12、使用温度传感器
    //
    此示例显示了如何使用集成温度传感器来测量
    //温度。 当选择温度二极管通道(A10)进行
    //转换时、内部基准将自动作为
    传感器的源//。 但是、请注意
    、它不会自动选择用于//转换。 任何可用的基准都可用于转换。 在
    //此示例中,对温度二极管执行单次转换。
    //然后根据 A/D
    //转换值以摄氏度和 F 为单位计算温度。 通过在"_NOP()"处设置并运行到断点来进行测试。
    //要查看温度、请使用调试器打开观察窗口并查看 degC
    //和 degF。
    // ACLK = n/a、MCLK = SMCLK =默认 DCO、ADC12CLK = ADC12OSC
    //
    注意:这个示例不对温度传感器执行校准
    //在一个应用中可能需要一个温度传感器校准。 
    //有关温度传感器规格,请参阅器件数据表。 
    //
    // MSP430FG439
    // --------
    // | |
    // |A10 (温度) |
    // | |
    //
    M.Mitchell
    // Texas Instruments Inc.
    // 2005年2月
    //使用 CCE 生成版本:3.2.0和 IAR 嵌入式工作平台版本:3.21A
    //*********
    #include 
    
    static unsigned int ADCresult;
    static volatile unsigned long int degC、degF;
    
    int main (void)
    {
    volatile unsigned int I;
    WDTCTL = WDTPW+WDTHOLD; //停止看门狗计时器
    ADC12CTL0 = ADC12ON+REFON+REF2_5V+SHT0_6;//设置 ADC12、参考、采样时间
    ADC12CTL1 = SHP; //使用采样计时器
    ADC12MCTL0 = INCH_10+SREF_1; //选择通道 A10、Vref+
    ADC12IE = 0x01; //为
    
    (i=0;i<0x3600;i++)启用 ADC12IFG.0 //基准启动延迟
    {
    }
    
    ADC12CTL0 |= ENC; //启用转换
    __ENABLE_INTERRUPT (); //启用中断
    
    while (1)
    {
    ADC12CTL0 |= ADC12SC; //开始转换
    _bis_SR_register (LPM0_bits); //输入 LPM0
    
    // degC =(Vsensor - 986mV)/3.55mV
    // Vsensor =(Vref)(ADCresult)/4095)
    // degC ->((ADCresult - 1615)*704)/4095
    degC =((((long) ADCresult-1615)*704)/4095);
    degF =((degC * 9/5)+32); //计算 degF
    __no_operation(); //在此处设置断点
    }
    #if
    
    defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__)
    #pragma vector=ADC12_vector
    __interrupt void ADC12ISR (void)
    #elif defined (__GNU__)
    void __attribute__((interrupt (ADC12_vector)#if Compiler
    
    (void)(void))#defineer!
    #endif
    {
    ADCresult = ADC12MEM0; //移动结果、IFG 被清除
    __BIC_SR_REGISTER_ON_EXIT (LPM0_Bits); //清除 LPM0
    } 

    此致、

    James