本帖最后由 onemoren 于 2025-5-14 17:30 编辑
#技术资源# #有奖活动# #申请原创# @21小跑堂
一个案件让你了解APM32芯片IO的VIH VIL 问题描述:使用APM32芯片做产品,产线批量烧录后做功能测试,有5%的样机上电运行时会闪屏,排查发现是IIC总线一直处于BUSY,IIC为MCU内置模块,引脚为PB10/PB11。IIC相关连接如下图示。除IIC外其它功能正常;
2.2 人工复现 ● 测试方法:PCB板上电12V,观察SCL/SDA波形变化。 ● 测试结果:与产线反馈现象相同,板子上LED快闪,复现异常现象。检查波形,确认图中1位置SCL与SDA存在异常掉电,最低低于1.5V。此时SCL/SDA电平低于IIC总线正常电平,会导致0/1逻辑误判进入BUSY状态(逻辑分析仪此时也发生了误判,不停跳变)。 3.1 电源信号检查 ● 测试方法:IIC信号线是上拉到LCD电源的,故同步检查VDD/LCD电源波形 ● 测试结果:如图1位置,MCU电源VDD电平正常。但是LCD_3V3电源存在异常掉电,而IIC信号线是上拉到LCD_3V3电源的,LCD_3V3电源掉电会导致SCL/SDA电平异常。 3.2修改SCL上拉电源● 测试方法:修改SCL使用MCU上拉电源:LCD_3V3改为VDD,排除SCL掉电影响,观察现象。 ● 测试结果:busy现象消失,板子上LED正常慢闪。对比波形,图中1位置SCL波形下降幅度减少,不会低于2V,故逻辑分析仪也不会误判,SCL持续保持高电平。SDA波形依旧有异常降低,但是当LCD_3V3掉电恢复后,SDA最后必然存在上升沿,符合STOP条件波形(SCL高,SDA上升沿),不会造成BUSY状态。 3.3 VIL/VIH对比● 测试方法:引脚的逻辑电平取决于VIH/VIL。将芯片拆下,测试IIC两引脚PB10/PB11 VIH/VIL电平; ● 测试结果:实测不同芯片的VIL/VIH不完全相同。抽样仓库芯片正常片,实测值在SPEC范围内。注意到下表中1#NG芯片的SCL VIL为1.4V,SDA为1.44V,在上拉电压掉落的过程中,SDA理论上会先由1变0,SCL理论上会后由1变0,这就形成了START条件,触发忙标志。 样品 | PB10 VIH | PB10 VIL(SCL) | PB11 VIH | PB11 VIL(SDA) | | | | | | | | | | | | | | | | | | | | | | | | | | 3.4 IIC BUSY状态验证● 测试方法:测试SCL/SDA不同的时序,对BUSY状态的影响。 ● 测试结果:由下表第2行数据可以看出,SDA比SCL稍提前下降,就能触发START信号。SCL/SDA突然掉电再回升对逻辑时序的影响,可能会触发START而无法触发STOP,导致总线一直处于BUSY状态。具体验证结果如下表与波形图。 SCL与SDA同时掉电时序 | 对START信号影响 | STOP信号影响 | | | | | | | | | | | | | | | |
由下表第3行数据可以看出,SDA与SCL同时上升,不能触发STOP信号。而此案中SDA/SCL在掉落电压后回升过程中,SDA/SCL是同时上升的。 SCL与SDA同时上电时序 | START信号影响 | STOP信号影响 | | | | | | | | | | | | | | | |
3.5 VIL、VIH角度分析 在SCL/SDA掉电的场景中,如果IO电平不在手册中规定的VIL/VIH电平范围内,会出现逻辑判0、判1异常的情况。如果要得到逻辑0,根据数据手册中VIL的最大值,SCL/SDA电平需要掉到1.36V以下;如果要得到逻辑1,根据数据手册中VIH的最小值,SCL/SDA电平需要升到1.85V以上。此案应用场景出现了1.4V左右的电平(在1.36V-1.85V的区间),需要MCU判0、判1,则会出现误判风险。
综合分析来看,此案应用场景遇到的失效现象发生过程为:程序运行过程中,IIC上拉电源LCD_3V3发生10ms以上、1.4V左右的异常掉电。SCL/SDA在上拉电源突然掉电再回升的过程中,SCL/SDA电压和逻辑时序(ns级别)的组合会存在触发START而无法触发STOP的可能,导致总线一直处于BUSY状态。 在SCL/SDA掉电的场景中,如果IO电平不在手册中规定的VIL/VIH电平范围内,会出现逻辑判0、判1异常的情况。如果要得到逻辑0,根据数据手册中VIL的最大值,SCL/SDA电平需要掉到1.36V以下;如果要得到逻辑1,根据数据手册中VIH的最小值,SCL/SDA电平需要升到1.85V以上。此案的应用场景出现了1.4V左右的电平(在1.36V-1.85V的区间),需要MCU判0、判1,则会出现误判风险。 受到制造工艺影响, 每个芯片个体VIL/VIH的实际电压有差异(返回芯片的实测值在手册范围内),应用场景需满足手册中关于VIL/VIH电平参数的规定。 规避方法:优化PCBA硬件电路,使IIC的SCL/SDA上拉电源稳定,预防电源过低掉电电压的情况。
|
由APM32的IIC外设异常引起的MCU GPIO的VIH VIL测试思考,作者对问题的现象捕捉灵敏,并通过大量实验探究VIL/VIH的深层思考,态度值得肯定,测试方法和结果具有较高的价值。