大家好,
我的一位客户刚刚生产了一批新的6块板, 其中一块板的读数很差(预计在25°C时为5°C); 在地址0x001A00通过CCS中的内存浏览器窗口检查校准值时,我们发现前两个字节相同,但后两个字节完全不同。 我们怀疑这是不同温度读数的结果。
您是否可以确认这些校准字节应该相同,或者解释其他因素可能导致不同的温度读数。
提前感谢您的参与,
胡安
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.
大家好,
我的一位客户刚刚生产了一批新的6块板, 其中一块板的读数很差(预计在25°C时为5°C); 在地址0x001A00通过CCS中的内存浏览器窗口检查校准值时,我们发现前两个字节相同,但后两个字节完全不同。 我们怀疑这是不同温度读数的结果。
您是否可以确认这些校准字节应该相同,或者解释其他因素可能导致不同的温度读数。
提前感谢您的参与,
胡安
您好,Juan,
请参阅数据表中的设备描述符表。 您提到的后两个字节实际上是CRC值,设备之间的值可能不同。
温度传感器校准数据从地址0x1A1A到0x1A25。 设备之间的值也不同。
请尝试以下代码示例以读取温度并查看其是否工作。
/*--版权--,BSD_EX
*版权所有(c) 2015,Texas Instruments Incorporated
*保留所有权利。
*
**
允许以源代码和二进制格式重新发布和使用,无论是否进行*修改,只要
满足以下条件*:
*
****重新发布源代码必须保留上述版权
*声明,此条件列表和以下免责声明。
*
***以二进制格式重新分发时,必须在
随分发提供的*文档和/或其他材料中复制上述版权*声明,此条件列表和以下免责声明。
*
***
未经事先书面许可,不得使用德州仪器(TI)公司的名称或*其贡献者的名称来支持或促销由本软件衍生的产品*。
*
*本软件由版权所有者和贡献者"按原样"提供
*,
不提供任何明示或暗示的担保,包括但不限于*对适销性和特定*用途适用性的暗示担保。 在任何情况下,版权所有者或
*贡献者均不对任何直接,间接,附带,特殊,
*示范, 或后果性损害(包括但不限于
*购买替代商品或服务;使用,数据或利润损失;
(*或业务中断),但根据任何责任理论
,*无论是合同,严格责任还是侵权行为(包括疏忽或
*其他),均因使用本软件而导致*
,即使已被告知此类损害的可能性。
*
******************
*
** MSP430代码示例免责声明
*
MSP430代码示例是独立的低级程序
,通常*以高度
*简洁的方式演示单个外设功能或器件功能。 因此,代码可能依赖于设备的开机默认
值*寄存器值和设置(如时钟配置),
在合并多个示例中的代码时必须*小心,以避免潜在的副作用
*。 另请参阅www.ti.com/grace了解GUI,并参阅www.ti.com/msp430ware
*了解外围设备配置的API功能库方法。
*
**--/copyright--*//************************************************************************************************************************
// MSP430FR5x9x演示- ADC12_B,样品A10温度并转换为oC和//
////描述:在A10上使用内部参考电压
// 1.2V制作单个样品。 软件手动将ADC12SC设置为开始采样和转换,并且
//在EOC自动清除。 它使用ADC12OSC转换样本。
//主环路使MSP430在LPM4中处于休眠状态,以节省电源,直到ADC转换
//完成。 ADC12_ISR在从中断
//处理程序退出时强制从LPMM退出,以便主循环可以执行并计算oC和oF。
// aclk = n/a,MCLK = SMCLK =默认DCO ~ 1.045MHz,ADC12CLK = ADC12OSC
////
设备之间未校准的温度测量值因
//设备之间的斜率和偏移差异而异-请参阅数据表。
//注意:此示例使用TLV校准温度计算
//温度
//(TLV校准数据存储在信息段中,请参阅设备数据表)
////
MSP430FR5994
// --------
// /|\\| |//
|| |//
--|RST |//
| |//
|A30. |////
William Goh
// Texas Instruments Inc.
// 2015年10月
//采用IAR嵌入式6.30 工作平台和Code Composer Studio 6.1 /******************************************************************************************************构建
#include <MSP430-h>
#define CALADC12_12V_30C *(unsigned int *) 0x1A1A)//温度传感器校准-30 C
//参见TLV表内存映射的设备数据表
#define CALC12_12V_85C *(unsigned int *)0x1A1C)//温度传感器校准-85 C
无符号int温度;
挥发性浮点温度DegC;
挥发性浮点温度F;
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; //停止WDT
//初始化共享参考模块
//默认情况下,REFMSTR=1 => REFCTL用于配置内部引用
同时(REFCTL0和REFGENBUSY); //如果ref发生器忙,请等待
REFCTL0 |= REFVSEL_0 + REFON; //启用内部1.2V参考
//初始化ADC12_A
ADC12CTL0 &=~ADC12ENC; //禁用ADC12
ADC12CTL0 = ADC12SHT0_8 + ADC12ON; //设置采样时间
ADC12CTL1 = ADC12SHP; //启用采样计时器
ADC12CTL3 = ADC12TCMAP; //启用内部温度传感器
ADC12MCTL0 = ADC12VRSEL_1 + ADC12INCH_30;// ADC输入通道A30 =>温度感应
ADC12IER0 = 0x001; //转换结果ADC_IFG - ADCMEMMO
while (!(REFCTL0 & REFGENRDY)); //等待参考发生器
//结算
ADC12CTL0 || ADC12ENC;
同时(1)
{
ADC12CTL0 |= ADC12SC; //开始采样和转换
__bis_sr_register(LPM0_bits + GIE);//启用中断的LPM4
__no_operation();
//以摄氏度为单位的温度。 请参阅中的设备描述符表部分
//系统重置,中断和操作模式,系统控制模块
//设备用户指南中的章节,了解有关的背景信息
//使用的公式。
温度DegC =(浮点)(((浮点)温度- CALADC12_12V_30C)*(85 - 30))/
(CALADC12_12V_85C - CALADC12_12V_30C)+ 30.0f;
//华氏温度TF =(9/5)*TC +32
温度DegF =温度DegC * 9.0f / 5.0f + 32.0f;
__no_operation(); //在此处设置断点
}
}
#if defined(__TI_Compiler_version__)|| defined(__IAR_systems_ICC__)
#pragma vector=ADC12_B_vector
__interrupt void ADC12ISR (void)
#Elif defined(__GNUC__)
void __attribute__((interrupt (ADC12_B_vector)) ADC12ISR #void )
#endif
{
Switch(__偶 数_in_range(ADC12IV, ADC12IV__ADC12RDYIFG))
{
CASE ADC12IV__NONE: 中断;//矢量0:无中断
CASE ADC12IV__ADC12OVIFG:中断;//矢量2:ADC12MEMx溢出
CASE ADC12IV__ADC12TOVIFG:中断;//矢量4:转换时间溢出
CASE ADC12IV__ADC12HIIFG:Break;// Vector 6:ADC12BHI
CASE ADC12IV__ADC12LOIFG:中断;//矢量8:ADC12BLO
CASE ADC12IV__ADC12INIFG:中断;//矢量10:ADC12BIN
CASE ADC12IV__ADC12IFG0: //向量12:ADC12MEM0中断
TEMP = ADC12MEM0; //移动结果,IFG被清除
__BIC_SR_REGISTER_ON_EXIT (LPM4_bits);//退出活动CPU
中断;
CASE ADC12IV__ADC12IFG1:Break;// Vector 14:ADC12MEM1
CASE ADC12IV__ADC12IFG2:中断;//矢量16:ADC12MEM2
CASE ADC12IV__ADC12IFG3:中断;//矢量18:ADC12MEM3
CASE ADC12IV__ADC12IFG4:中断;//矢量20:ADC12MEM4
CASE ADC12IV__ADC12IFG5:中断;//矢量22:ADC12MEM5
CASE ADC12IV__ADC12IFG6:Break;// Vector 24:ADC12MEM6
CASE ADC12IV__ADC12IFG7:中断;//矢量26:ADC12MEM7
CASE ADC12IV__ADC12IFG8:中断;//矢量28:ADC12MEM8
CASE ADC12IV__ADC12IFG9:中断;//矢量30:ADC12MEM9
CASE ADC12IV__ADC12IFG10:中断;//矢量32:ADC12MEM10
CASE ADC12IV__ADC12IFG11:中断;//矢量34:ADC12MEM11
CASE ADC12IV__ADC12IFG12:中断;//矢量36:ADC12MEM12
CASE ADC12IV__ADC12IFG13:中断;//矢量38:ADC12MEM13
CASE ADC12IV__ADC12IFG14:Break;// Vector 40:ADC12MEM14
CASE ADC12IV__ADC12IFG15:中断;//矢量42:ADC12MEM15
CASE ADC12IV__ADC12IFG16:中断;//矢量44:ADC12MEM16
CASE ADC12IV__ADC12IFG17:Break;// Vector 46:ADC12MEM17
CASE ADC12IV__ADC12IFG18:中断;//矢量48:ADC12MEM18
CASE ADC12IV__ADC12IFG19:中断;//矢量50:ADC12MEM19
CASE ADC12IV__ADC12IFG20:中断;//矢量52:ADC12MEM20
CASE ADC12IV__ADC12IFG21:中断;//矢量54:ADC12MEM21
CASE ADC12IV__ADC12IFG22:中断;//矢量56:ADC12MEM22
CASE ADC12IV__ADC12IFG23:Break;// Vector 58:ADC12MEM23
CASE ADC12IV__ADC12IFG24:中断;//矢量60:ADC12MEM24
CASE ADC12IV__ADC12IFG25:中断;//矢量62:ADC12MEM25
CASE ADC12IV__ADC12IFG26:Break;// Vector 64:ADC12MEM26
CASE ADC12IV__ADC12IFG27:中断;//矢量66:ADC12MEM27
CASE ADC12IV__ADC12IFG28:中断;//矢量68:ADC12MEM28
CASE ADC12IV__ADC12IFG29:中断;//矢量70:ADC12MEM29
CASE ADC12IV__ADC12IFG30:中断;//矢量72:ADC12MEM30
CASE ADC12IV__ADC12IFG31:中断;//矢量74:ADC12MEM31
CASE ADC12IV__ADC12RDYIFG:中断;//矢量76:ADC12RDY
默认值:break;
}
}
此致,
林氏六音
我在显示低温的设备上运行了此示例。 主板处于室温,读数显示约为2C。 这种低读数与我通过自己的代码获得的读数相似,它导致我与Juan和TI的初次接触。 接下来的步骤是什么? 我尝试在显示结果的调试窗口中粘贴,但未显示,但我成功复制了以下内容:
名称:TemperatureDegC.
默认值:1.9907.3982万
十六进制:0x3FFED090
十进制:1.9907.3982万
八进制:7.7775万50220</s>5.022万
二进制:0.1111万111110101101000010010000b</s>11.111万 10.1101万0.001万1万
你好,Neil,
我看不到TLV数据文件。 您能否将数据发送至ling-zhu@ti.com?
与校准值相比,“故障”芯片的ADC样本数据不合理(太小)。 请你
1.尝试使用1.2V和2.5V参考再次采样温度。 并向我发送ADC原始数据,该数据可以从ADC12MEM0读取。
2.使用其它外部ADC通道对特定电压进行采样,以检查转换结果是否正确。
谢谢。
此致,
林氏六音
在坏设备上,在室温下使用您的示例代码,该示例代码针对不同的参考而修改:
Ref = 1.2V T = 2.84C ADC12MEM0 = 0x0A49
Ref = 2.0V T = 3.07C ADC12MEM0 = 0x062B
Ref = 2.5V T = 2.50C ADC12MEM0 = 0x04EC
使用我的代码:
测量外部V (在A/D通道0x1F处对MSP430的数字电源):
电压表= 3.290V,A/D = 3.289V
你好,Neil,
感谢您提供这些信息。 我们仔细查看了该"故障"芯片的TLV数据,但所有数据看起来都很好。 根据我们的经验,这种情况以前从未发生过。 为了帮助进一步检查,我们希望重新运行测试,以获取30C和85C以下的ADC转换数据,并使用一些内部参考电压(1.2V或2.0V或2.5V),这与我们运行以获取这些校准数据的情况相同。 我不确定您是否可以继续支持我们尝试;如果您不容易在30C和85C下采样数据,您可以帮助将该芯片发送给我们,请随时分享您的想法!
你好,Collins,
我认为此时,我必须将设备提供给您,以便您可以执行测试和故障分析。 我要尽快解决的问题是,我没有技术人员可以随时移除设备,因此我无法将其发送给您。 我可能最终拥有这种能力,但不确定何时。 另一个选项是,我将此器件上的PCB组件(在保密情况下)发送给TI的您,以便那里的人可以将其卸下,如果可能,请更换另一个5962 (如果您需要我也可以发送)。 一旦设备被拆除和更换,我将请求立即将PCB发回给我。 我希望尽早就这一问题取得进一步的结果,因此这是首选办法。
请告诉我您想做什么,并提供您的发货地址,无论是PCB组件还是最终设备本身。 谢谢!