2011年4月21日星期四

28035内部温度传感器的使用

在TMS320F28035的Analog-to-Digital Convert (ADC)模块中,内置了一个温度传感器,在进行ADC的时候可以设置ADCINA5通道为内部温度传感器,并且对其进行采样。

1. 需要将设置ADCCTL1[Bit0:TEMPCONV]设置为1,以开启内部的温度传感器。
2. 根据说明,读取出厂预标定值,包括斜率(slope)和偏移(offset)。
0x3D7E82 - Slope (ºC / LSB, fixed-point Q15 format)
0x3D7E85 - Offset (0 ºC LSB value)
3. 设置转换。
以最快转换速度进行转换(ACQPS = 6; // 7 ADC Clock @ 60MHz):需要连续两次转换,并且读取后一次的值为准;
以超过550ns的速度进行转换(ACQPS >= 32; // 33 ADC Clock @ 60MHz ),可只读取一次。
4. 以公式进行转换
Temperature = (sensor - Offset) * Slop
5. 你会发现转换后的值不对。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

经试验,在室温20摄氏度的时候,采集到的值约为2190,slope 约等于 0.217,offset 为1750,计算得到的值为126摄氏度。
使用Fluke561红外温度监测仪进行扫描,CPU外壳部分温度约为30~34摄氏度,与计算得到的值相差较大。
将计算得到的温度值:126作为华氏度转换为摄氏度后,温度约为52.2摄氏度。考虑到温度传感器所采集的位置为结温,会高于外壳温度,因此,得出结论:
TMS320F28035处理器的ADC模块内部温度传感器所采到的值应该是华氏度,而不是摄氏度。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
华氏度 - 摄氏度转换公式:

华氏度=32+摄氏度×1.8
摄氏度=(华氏度-32)÷1.8

相关文档:
TMS320x2802x, 2803x Piccolo Analog-to-Digital
Converter (ADC) and Comparator Reference Guide

TMS320F2803x Piccolo MCU Silicon Errata
TMS320x2802x, 2803x Piccolo Datasheet

增加分类"MCU"

最近有一部分工作是使用mcu,因此增设MCU分类。

接触到的芯片为STM32F100C8, 属于Cortex-M3内核。