做温度实验时,温度超过40度,9B96就死机,此时时钟,电压都正常。9B96的ADC有温度传感器,死机是否与温度传感器有关,温度传感器在缺省状态是开的,但不知道温度传感器是如何干预CPU的系统。动作的温度是多少?
做温度实验时,温度超过40度,9B96就死机,此时时钟,电压都正常。9B96的ADC有温度传感器,死机是否与温度传感器有关,温度传感器在缺省状态是开的,但不知道温度传感器是如何干预CPU的系统。动作的温度是多少?
1. 温度超过40度,9B96就死机...
你说的温度是指环境温度吧,有办法测得这个时候芯片的温度吗?
2. 查一下你的内核电压设置的是多少?把内核电压提高点,看能不能解决你的问题。
3. 9B96的环境温度可以做到85度,所以温度传感器是不会影响芯片的温度特性的。
这个只是MCU的一种配置,算不上BUG,就好比IO口的驱动电流配置一样,根据外接器件驱动电流大小,更改GPIO的驱动电流配置。
void SysCtlLDOSet(unsigned long ulVoltage)
{
//
// Check the arguments.
//
ASSERT((ulVoltage == SYSCTL_LDO_2_25V) ||
(ulVoltage == SYSCTL_LDO_2_30V) ||
(ulVoltage == SYSCTL_LDO_2_35V) ||
(ulVoltage == SYSCTL_LDO_2_40V) ||
(ulVoltage == SYSCTL_LDO_2_45V) ||
(ulVoltage == SYSCTL_LDO_2_50V) ||
(ulVoltage == SYSCTL_LDO_2_55V) ||
(ulVoltage == SYSCTL_LDO_2_60V) ||
(ulVoltage == SYSCTL_LDO_2_65V) ||
(ulVoltage == SYSCTL_LDO_2_70V) ||
(ulVoltage == SYSCTL_LDO_2_75V));
//
// Set the LDO voltage to the requested value.
//
HWREG(SYSCTL_LDOPCTL) = ulVoltage;
}
LM3S9B96的LDO不能调整, 1.288是正常的值。
这个温度不会出问题的!有客户做过更高温度的测试,都没有问题!
有没有办法进一步定位出错的地方呢?
给你个可操作的建议,来定位问题点:
1> 找一块TI 9B92的评估板
2> 使用TI的程序做高温测试,检查结果
3> 把你的程序写进去9B92评估板,做高温测试,检查结果
4> 如果以上没有问题,则把你出问题的芯片和9B92评估板的芯片对调,再做测试。
我想可以通过以上的方法,大体判断出是软件的问题还是硬件的问题!
我们的产品出厂前都要在60度温箱进行老化测试,从未出现过你说的死机现象。
你可以从外围硬件和软件着手找原因。
片上的温度传感器对芯片的工作状态没有任何影响,我觉得这个传感器的功能就是当你需要知道mcu核心温度的时候可以给你提供数据而已。
另外,你能不能做一个简单的实验,拿电吹风或者热风枪(温度调低,保持合适的距离),甚至那杯热水放在mcu上面,仅对mcu加热,你看看温度升高会死机吗?如果没有死机,那肯定是外围电路的问题啦。
还有你说的时钟,电压都正常,是示波器抓出来的吗?
如果一个MCU 40度以上就挂了,那MCU的生产厂家也该倒闭了,哈哈
1. 我不建议你在还没找到真正原因的时候就轻易换芯片,因为即使换芯片也不一定能解决你的问题。
2. 从我看到的客户情况来看,还没发现有在温度试验死机的情况。我这里有个案例可以给你参考一下,是我去年在一个客户那里发生的,我们做了大概20天的试验来测试MCU的温度。
1) 现象和你描述的比较相识,客户在MCU中嵌入了系统。由于温度试验的条件有限,客户拿热风枪在PCB板背面对单板加热,然后用红外的温度枪在芯片侧进行测试。MCU定时会通过UART口传送数据出来,接在PC的调试工具观测接收到的数据。温度枪测试到50度附近芯片就不能正常工作了。也是部分芯片能工作,部分不能工作。
2) 根据现象,我们先后做了一下几个对比试验,我们交换了不出问题和出问题的芯片,在不同的板子上做试验,发现坏的芯片始终是不能正常工作的。所以,一开始我们也是判定是芯片的问题。
3) 我们把出问题的4个板子,放在了恒温箱里做试验,其中2个仍然跑客户的代码,另外2个板子下载我们的测试代码,只有UART端口使能,定时的发送固定数据,环境低温从-40度做到-10度,高温从60度做到85度,。结果发现4个板子都不在出问题。
4) 然后我们做了一个实验,再在这4个板子上用热风枪吹,温度达到60度附近的时候,发现又有死机的现象。
5) 所以,我建议不要用热风枪和红外的温度枪来进行环境温度试验,这样做试验的时候,芯片可能整体温度并没有达到固定的85度,但某些局部点,温度会很高。加上红外枪的精度并不高。这样做环境试验并不准确。
3. 如果你能确定你的现象一定是环境温度造成的,我建议你把芯片上的丝网漏印值发出来,交给TI当地的工作人员,让他们帮你查一下这个芯片的批次和编号,一般来讲,同一批次的芯片不可能出现太大的差异。如果确实有问题,那么这一批次的其他芯片都是有很大可能出问题的。TI的工作人员可以协助查看下其他在使用该批次芯片的客户是否发生类似的情况。