TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28035: TMS320F28035 ADC采用外部参考源3.0V如何计算CPU内部温度

Part Number:TMS320F28035

请教:TMS320F28035 ADC采用外部参考源3.0V如何计算CPU内部温度,offset值和slope值怎么计算呢

?? ?:

在线等

,

Yale Li:

我的建议还是使用内部参考电压会比较方便;

如果就是想用外部参考电压,offset可以通过在0℃时测量得出,slope可以通过如下公式换算,也可以通过测量整定。

内部

外部

,

?? ?:

芯片会发热  如何在0℃时测量? 

,

Yale Li:

我已经询问了相关工程师:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1269685/tms320f28035-internal-temperature-sensor-using-external-reference-voltage

,

?? ?:

太感谢啦

,

Yale Li:

客气啦

你看一下那边的回复,他是以使用2.5V外部参考为例进行计算的。

如果使用的是3.0V外部参考,则

0℃ offset = 1750 * (3.0 / 3.3) = 1591 LSBs

slope = 5.56 * (3.0 / 3.3) = 5.05 LSBs

即 1 / 5.05 = 0.20 °C/LSB

,

?? ?:

似乎还是有些问题,以下是我的代码:

_iq15 temp,IQslope,IQslope30;
Uint16 ofs,ofs30;IQslope = _IQ15(0.18);//
ofs = 1750;//ofs30 = ofs*3.3/3.0;
IQslope30 = _IQ15mpy( IQslope, _IQ15(3.3/3.0));temp = ((long)(AdcResult.ADCRESULT7 - ofs))<<15;
temp = _IQ15mpy( temp, IQslope);
chiptemperautre = _IQ15toF(temp);temp = ((long)(AdcResult.ADCRESULT7 - ofs30))<<15;
temp = _IQ15mpy( temp, IQslope30);
chiptemperautre30 = _IQ15toF(temp);

我的外部参考电压是3.0v, 当使用3.0v参考电压时,chiptemperautre30大约为31,当切换到内部参考电压时(调试器修改寄存器位ADCREFSEL),chiptemperautre 大约为27。

用红外测温设备测得芯片表面温度为49度,环境温度为28度。手摸芯片表面能感觉到芯片发热,所以我觉得测量得到的温度不正常,是我的代码有问题吗?用的芯片是28035PNT。

,

?? ?:

当修改代码为:

  IQslope =(*(int (*)(void))0x3D7E82)(); //_IQ15(0.18); ofs = (*(int (*)(void))0x3D7E85)();//1750;

使用外部电压参考时,chiptemperature30为61, 内部电压参考时chiptemperature为51。

所以,不知道哪个结果是正确的

,

Yale Li:

?? ? said:

当修改代码为:

  IQslope =(*(int (*)(void))0x3D7E82)(); //_IQ15(0.18); ofs = (*(int (*)(void))0x3D7E85)();//1750;

?? ? said:内部电压参考时chiptemperature为51。

这个是正确的。

这个时候读IQslope与ofs是多少?

上一条回复的代码中,slope与offset的计算可以在代码外完成。

,

?? ?:

这种方法,内部电压参考和外部电压参考两种方法的结果为啥差别这么大? 相差了10摄氏度 

,

Yale Li:

因为内部存储的offset和slope就是以内部基准为参考做的

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28035: TMS320F28035 ADC采用外部参考源3.0V如何计算CPU内部温度
分享到: 更多 (0)