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.

TMS320F28379D: 关于Tempture Sensor的疑问

Part Number: TMS320F28379D

上图为28035数据手册中对内部温度传感器偏移量及当量的参数描述

下图为TRM中对内部温度传感器的描述

问题1. 我在28379D及28388D数据手册和TRM中均没有找到类似上面两张图片中的描述。请问哪里有28379及28388内部温度传感器TSLOPE及TOFFSET的介绍?

对于28379的adc_ex3_temp_sensor例程中的函数ADC_getTemperatureC有以下疑问

利用28379D的LaunchPad在调试过程中看了下上面两个地址的数值

问题2.0x7036E和0x70372的数值均为0x28A9,请问0x28A9代表什么含义呢?

问题3.这个问题和问题1是类似的,28379数据手册或者TRM里我都没有找到关于TOFFET和TSLOPE的描述,请问这是为什么?如果不是看了035的TRM,我不会知道TSLOPE是Q15格式的,按照调试过程中观测到的slope数值0x14A5(5285)推算,28379D的内部温度传感器当量为5285Heavy division sign32768=0.16℃/LSB,这一数值与035近似;

问题4.不太理解下面高亮部分代码的原理,不过这段代码的目的从调试看应该是把浮点类型的temp转换为整型吧?不过还是希望了解一下原理

问题5.关于内部温度传感器参数的描述,28388的数据手册和TRM里我也没有找到,麻烦TI的工程师提示一下

  • 对于问题4,看起来涉及摄氏度和绝对温度的转换

     temp是Q15格式的摄氏度,后面加0x4000(16384),这相当于加了0.5摄氏度

     这部分代码,应为0摄氏度对应绝对温度273K,前面的temp是Q15格式的摄氏度,多以为了把结果转换为绝对温度,这个273也要转换为Q15格式,即乘以0x8000(32768)

    以上两部分求和,就得到了Q15格式的绝对温度,再将这个Q15格式的绝对温度数值转换为Q0格式的绝对温度数值,即Heavy division sign0x8000(32768)

    最后用Q0格式的绝对温度减去摄氏度与绝对温度的差值273,就得到了摄氏度的结果

    请问为什么要做上面这些处理呢?

    可不可以将temp(Q15格式的摄氏温度数值)除以32768,然后强制类型转换为整型,作为结果回传

  • 感谢您对TI产品的关注!已为您咨询TI资深工程师,一旦得到回复会立即回复给您。

  • 我正在研究 F2837x 的温度传感器函数,它比F2838x 开发得更早,我需要查看过去的日志和代码以了解其函数调用的细节,我需要一段时间才能得出计算背后的解释。请注意上述例程与 F2838x 上的有很大不同。

  • 是的 感谢您的帮助

    如您所说,28388例程的计算方式和29379确实不太一样,除了本帖,我还两外发了一个28388温度传感器例程的帖子,是Cherry Zhou工程师负责的

    答复的第一段我看懂了,对于28388,温度传感器是在2.5V基准下测定的,从答复的结果看,码值变化560代表温度变化95摄氏度(95 x 0.0036V = 0.342V,0.342V Heavy division sign 2.5V Heavy multiplication x 4096 = 560)。

    当基准设计为3V时,0.342V Heavy division sign 3V Heavy multiplication x 4096 = 467,在这个情况下,码值变换467表示温度变换95摄氏度。

    为了统一为码值变换560 表示温度变化95摄氏度,所以在3V基准的时候转换结果要乘以1.2这个系数

    这个过程我目前理解了

    不过对于Cherry Zhou的第二关答复,我还不太理解,需要时间想一下

    不过,28379例程中,temp的计算原理还是很清楚的,乘以1.2的系数之后减去偏置在乘以斜率,相比而言,28388例程的计算公式我目前还是不太理解

  • 已将您的疑问转达至TI工程师,稍后会给您回复

  • 关于 F2837x 的第一个问题,即您在帖子开头指出的关于内存位置中内容的问题:

    0x7036E 和 0x70372:包含指向计算温度传感器斜率和偏移量的函数的指针。我仍在尝试找到该函数以更好地理解斜率和偏移量的表示方式。

    0x7036F:包含斜率(我仍然需要验证单位是什么,如果它是根据 lsb、电压和数字表示)

    0x70373:包含偏移量

    对于 F2838x 温度传感器,我在 Cherry 的帖子中发布了另一个回复,您可以在此查看(4) TMS320F28388D: Internal temperature sensor acquisition - C2000 microcontrollers forum - C2000Tm︎ microcontrollers - TI E2E support forums。基本上,斜率以伏特/ºC 为单位。偏移量以伏特为单位。温度传感器结果以 ADC 代码表示,因此温度传感器计算中的第一项 tempResult*vref/4096.0F 将传感器读数从 LSB 转换为 V。其余计算很简单,在应用斜率和偏移后得到的单位值将以 ºC 为单位。

  • 您好 感谢帮助

    斜率以伏特/ºC 为单位。偏移量以伏特为单位”,确实,按照您的这句解释,我理解28388例程中的公式了

    可能388与035和379都不同,035和379的斜率单位应该都是℃/LSB,偏置的单位应该都是码值