根据你的参数来看,你的芯片应该是使用的CC2430,ADC转换器为14位转换,参考电压为1.25V。这些你应该写上的,没有硬件条件,很难判定你的公式使用环境!寻找这个条件就费了我很大功夫!!!
这个公式是简化后的公式,并且为了增加计算速度,将除法转换成了右移4位!将温度计算补偿合并成了常数 315。
你可以看看TI公司的参考文档:DN102(参考资料),这个文档里详细说明了CC1110 • CC1111• CC2430• CC2431• CC2510 • CC2511几个芯片的温度计算原理及方法。下边我把我的理解写上!
根据文档,可以得出计算温度的公式(考虑有偏移误差)为:
T = (Voutput[mV] - (V0[mV] + Offset[mV]))/Temp coefficient
其中:
Voutput:AD转换取得电压。计算公式为:Voutput = ADC_VALUE*1250/8191。
V0:0℃时传感器输出电压。
Offset:温度偏移电压。计算公式为:Offset = V25 - (Temp coefficient * 25 + V0)。V25为25℃时传感器输出电压。
Temp coefficient:电压-温度关系系数。此处,cc2430应该为2.45mv/℃。
将公式展开:
T = ADC_VALUE*1250/8191/Temp coefficient - (V0[mV] + (V25 - (Temp coefficient * 25 + V0)))/Temp coefficient
将参数带入,可得:
=ADC_VALUE/16.05436 - (V25 - 61.25)/2.45
根据你的计算公式,进行的是近似计算,不是每个产品都进行了率定,所以那个315应该是一个经验值!
晕啊!没有分啊!!我在网上查了好长时间资料,看文档、推导公式是很耗时间滴啊!!!