对于很多熟练使用过ST的工程师来说,刚开始接触国产兼容型MCU时,第一反应是盗版,性能不行,从而一旦产品设计时遇到问题都会自然考虑是不是MCU本身的问题。今天给大家分享一个实际应用案例,让大家形成辨证的定位问题的思维。
信息整理如下:
客户: xx
产品: 环保数采仪-油烟监测
型号: APM32E103RET6-LQFP64
问题现象: 低温30℃,冷启动实验,偶尔起不来。
复现频率: 测试2颗,均概率性复现
因为产品需要销售全国,所以会做高低温试验,出现如上测试问题时,客户反馈说极海MCU有问题。
开始定位问题:
1.检查是否是晶振不起振,复现问题时用示波器测量外部晶体正常启振,排除了晶振因素
2.产品是手工PCBA板子,考虑高低温会凝结水珠可能有短路影响,刷三防漆测试,还是会复现问题,排除该因素
3.产品使用了看门狗,屏蔽看门狗测试,仍然复现,排除了看门狗影响
4.由于APM的BOOT引脚要求不能浮空,检查硬件BOOT引脚电路下拉电阻到地,正常。同时软件修改Flash等待周期,改大到3、4和软件修改外部晶体起振超时时间到0xFFFF,再测试,也均无改善,排除的主要差异点的影响。
重新了解情况发现:常温下,冷启动未复现过,-30℃低温不启动后,放在常温下重新冷启动,能正常启动
说明的确是低温导致了该问题。
继续进行ABA替换测试,发送APM32F103RET6-LQFP64和STM32F103RCT6-LQFP64在同一块板子上测试也会出现问题,说明问题非MCU导致,低温不止会影响MCU,外围器件也会受温度影响。于是检查外围器件选型,发现是电容温域不够。Vcap和复位电路处的电容选取,工作温度范围不合格。更换宽温域的电容后,问题不在复现。
附上贴片电容的规格:
最低温度 最高温度 允许容差
X = - 55℃ 4 = +65℃ P = ±10%
Y = - 30℃ 5 = +85℃ R = ±15%
Z = +10℃ 6 = +105℃ S = ±20%
7 = +125℃ T = +22/-33%
8 = +150℃ U=+22/-56%
9 = +200℃ V=+22/-82%
当制造商说这是一个X7R电容器时,这意味着电容器可以从-55°C到125°C运行,电容器的电容与其指定的标称值的变化不会大于或小于15%.
而客户新投板使用了非低温工作的电容,导致了该问题的发生。
问题前前后后测试了近半个月,终于找到了问题。说明平时我们考虑问题要辨证,不能有太主观的判断,要辨证的看问题。出现问题后,首先严格进行ABA的替换测试,肯定是某部分出现的问题再去深入排查,这样就会事半功倍,少走很多弯路。
|