花了一天的时间来细看MSP430F1611的AD温度传感器的寄存器的编程及使用.晚上1点了,编写并修改N个程序才发现AD温度传感器的精度太不高了.相差太远.而且得到值后的算法难以实现. 对于AD温度传感器使用到AD12及其最大值为4095. 值的范围0~4095共4096个数.在datasheet中看到最大偏差20度了.真的有点... 况且是温度范围分工业级与民用级.不好认定温度的范围... 所以要用温度传感器还是用一总线结构的好. 以下的资料供给参考.
参考文献:<<基于MSP430内嵌温度传感器的温度告警系统>> 作者:赵陆文 屈德新
MSP430内嵌的温度传感器实际上就是一个输出电压随环境温度而变化的温度二极管,表1是它的一些基本电气特性。按照TI公司提供的资料,这个温度二极管输出的电压和对应的温度近似成简单的线性关系。所测温度可由公式(1)求出:
T=(VST-V0℃)/TCSENSOR (1)
其中,T:测量温度,单位℃;
VST :ADC模块的通道10测量到的电压,单位mV;
V0℃:0℃时传感器的输出的电压,单位mV;
TCSENSOR:传感器的传感电压,即输出电压随温度的变化情况,单位mV/℃。数值上等于温度每升高1℃,增加的输出电压。
对于12位的ADC模块,VST可以通过下面的A/D转换公式求得:
VST=ADC12CH10/(212-1)×(VR+-VR-)+VR-
(2) 其中,ADC12CH10:通道10所测得的温度传感器的12位A/D值;
VR+:正参考电压,可以取内部参考VREF+ 、AVcc或者外部参考VeREF+,单位mV;
VR-:负参考电压,单位mV。通常取VR-=AVss,在这种情况下,求VST的公式进一步简化为:
VST=ADC12CH10/(212-1)×VR+
(3) 由(1)式和(3)式可见,把A/D转换所得的结果VST经过简单转换就可得到对应的温度。
表1:MSP430微控制器温度传感器电气特性表
参数 测试条件 最小值 典型值 最大值单位
V0℃ Vcc= 2.2V/3V 986 - 5% 986 986 + 5% mV
TCSENSOR Vcc= 2.2V/3V,TA=0℃ 3.55 -3% 3.55 3.55 +3% mV/℃
tSENSOR Vcc= 2.2V/3V 30 μs