本章分享一个不良反馈,为偶发性的功能异常。经测试并非 MCU 的异常,而是不满足 POR(Power-on Reset)条件导致。大家遇到相似的问题可以尝试从这个角度去做分析。
问题反馈
首先是客户邮件反馈 NXP LPC824M201JHI33Y 有 1pcs不良,不良现象是内部 IRQ_FLAG->GFLAG0,地址0x4000 40f8 寄存器损坏。
与客户研发取得联系,研发表示,该寄存器包含 MRT(Multi-Rate Timer) Timer 0 通道的标志位,在客户实验室环境下不断的上下电,有概率会导致程序识别不到 Timer 0 的中断,导致程序停止运行。且按键 Reset无法恢复正常,需要完全放电之后再上电才可以恢复。
复现不良现象
偶发性的不良,需要保证能够复现出异常现象,才能继续定位产生不良的原因。
经过一番折腾之后,客户修改了一段可复现的测试代码给我们,此时验证是 WKT(Wake-up Timer)出现的问题,同样需要不断上下电才能复现。
拿到客户板子之后进行测试,发现不断上下电无法复现该问题,只能通过杜邦线轻触 3.3V 电源口才能复现。
不良分析测试
不规范的上电导致的问题不一定是 MCU 本身的问题,有可能是 POR(Power-on Reset)的问题。
数据手册上对上电条件做了如下说明:
图 1 NXP LPC82x datasheet 截图
当 VDD 上电之前存在 200mV 的电压,MCU 就有概率部分功能不运作,且通过引脚复位没办法恢复。
根据理论,测试流程如下:
1. 硬件: 客户 PCBA 板(目前仅有一例不良)2. 软件: 客户提供的测试代码 (GPIO toggle and WKT interrupt)
3. 测试结果:
3.1 正常情况下,VDD 上电前电压为 0, WKT 定时触发中断
CH1(黄线): VDD, CH2(蓝线): GPIO
图 2 正常板测试波形
3.2 异常条件下, VDD 上电前存在 500mV 的电压,WKT 不能被正常触发
CH1(黄线): VDD, CH2(蓝线): GPIO
图 3 不良板测试波形
4. 结果分析
- 从现象上看,上电前电源在200mv以上,即上电斜坡条件不符合数据表要求,上电复位(POR)可能不完全成功,且使用外部复位引脚复位芯片无法恢复。
- 当启动斜坡条件符合数据表要求时,问题无法复制。
- 故该问题是由于启动斜坡条件不匹配导致的,MCU 本身不存在不良问题。
再次认证
客户收到分析结果后,对电源上 500mV 的条件存在疑问。
与客户重新在其实验室复现不良现象,同时观察板上电源(Power Input、VDD)的波形。
图 4 客户实验室复现不良时的测试波形
证实在客户的 DC 电源关断后,板上会有较长时间存在 600mV 左右的电压,导致 MCU 上电启动失败,而非 MCU 损坏。
结果反思
由于个体化差异,当 VDD 上电之前存在 200mV 的电压,有概率会出现上电启动失败的现象,且每颗芯片上电没能启动的外设功能也不同,有可能是 WKT(Wake-up Timer),也有可能是 MRT(Multi-Rate Timer)。
但相同的一点是出现异常之后,通过引脚 Reset是不成功的。偶发性、不可引脚复位,当存在这两种现象时可以考虑检测一下 VDD 引脚的上电电压,说不定就能找到问题根源。
推荐博文
关于 NXP LPC824,有几篇教大家如何配置外设功能的博文,在这里也推荐给大家。
评论