您好!
我们正在 AM62x 定制板的第一版上读取片上温度传感器(VTM 模块)、并正在进行热测试/评估、重点是上限测试。 我们需要了解在测试期间是否超过额定结温(计划使用工业温度105C 器件)。
我们从 TI 收到的最新信息是、这些温度读数精确到+/- 8摄氏度、等待完整器件资质审核。
TI 是否对这些温度传感器的精度进行了更准确的评估? 我们如何才能更准确地读取结温?
谢谢、
Dan
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.
您好!
我们正在 AM62x 定制板的第一版上读取片上温度传感器(VTM 模块)、并正在进行热测试/评估、重点是上限测试。 我们需要了解在测试期间是否超过额定结温(计划使用工业温度105C 器件)。
我们从 TI 收到的最新信息是、这些温度读数精确到+/- 8摄氏度、等待完整器件资质审核。
TI 是否对这些温度传感器的精度进行了更准确的评估? 我们如何才能更准确地读取结温?
谢谢、
Dan
我们从 TI 收到的最新信息是、这些温度读数精确到+/- 8摄氏度、等待完整器件资质审核。
[/报价]从软件的角度来看、我们可以在不同的温度下执行测试、并记下 ADC 计数值。
基于这些计数值、我们可以实现线性插值等算法或其他方法、以将您的 ADC 计数值与参考温度匹配。
但是、我不确定这些相同的偏移值是否可用于 AM62X SOC 的所有变体。
此外、您能否告诉我您对此温度信息有何看法?
请问您的具体要求是什么?
此致、
S.Anil。
您好、Swargam、
我 目前没有执行任何平均值计算 只需从两个温度传感器读取 ADC 计数、将每个传感器转换为摄氏度、然后打印出值即可。
示例:
//温度0
//----------------------------------
uint32_t SOC_CONT_MASK = 0x30;
uint32_t SOC_MASK = 0x20;
uint32_t CtrlReg =*(uint32_t *)(地址+ VTM_REG_VTM_TMPSENS_CTRL_0);
CtrlReg &=~SOC_CONT_MASK;//清除 SOC 和 CONT
CtrlReg |= SOC_MASK;//设置 SOC
*(uint32_t *)(地址+ VTM_REG_VTM_TMPSENS_CTRL_0)= CtrlReg;
while (1)
{
CtrlReg =*(uint32_t *)(地址+VTM_REG_VTM_TMPSENS_CTRL_0);
if ((CtrlReg & SOC_MASK)=SOC_MASK)
nanospin_ns (5000);
其他
中断;
}
uint32_t Temp =(*(uint32_t *)(Address + VTM_REG_VTM_common_0_STAT))和0x3FF;
浮点 TempInDegC = ConvertToDegC (温度);
printf ("Temp_Sensor_Main_0 (degC):%f\n"、TempInDegC);
浮点转换 ToDegC (uint32_t RawTenBitTemp)
{
//从 spruiv7.pdf 中的表6-3136中删除
const double A4 =-9.2627e-12;
const double a3=6.0373e-8;
const double A2 =-1.7058e-4;
const double A1 = 3.2512e-1;
const double a0 =-4.9002e1;
Double x = RawTenBitTemp;
float y =(float)((A4 * x*x*x*x*x)+(A3 * x*x*x)+(A2 * x*x)+(A1 * x)+ a0);
返回 y;
}
我们只是想在运行各种压力器件的同时确定结温、同时在产品的上限运行、并尝试验证结温是否保持在额定值以下。 现在、所述的精度为16摄氏度。 我没有特定的金额、但如果我们可以这样说、5摄氏度就更好了。 如果您可以在该上限范围(例如85degC++)内声明更严格的精度、这也就足够了。
我们目前正在使用 XAM6254 (GPU 禁用、单核);我们的目标是 AM6231 -我们将在~2个月内在下一个修订版中生产 AM6231。
谢谢、
Dan