0x00 前言
本文主要记录了再一次使用ST芯片的过程中,因为正常原因,发现在某些情况下引脚之间的互相影响。阅读本文,您可能需要掌握的知识:
技能 | 熟练度 |
---|---|
英语 | 熟练 |
知识检索 | 熟练 |
模电 | 简单 |
C语言 | 了解 |
0x01 现象
之前开发的时候,在我初始化某些引脚之前。产品出现了不可控的状态。导致整个产品出现异响(高频电流振荡带来的噪声)
0x02 原因
出现了故障,于是我就叫来了一起合作的硬件工程师。一番定位,终于找到了问题所在。
在ST单片机GPIO初始化之前,一般默认配置为浮空状态(纯灌电流高阻)。也就是在外部必须要给定引脚一个固定的电压。
但是经过我和工程师小姐姐再三确认,我们确实在外部加入了一个下拉电阻。于是乎,我们只能接着继续寻找真相。但是经过示波器观察,得到原因似乎是,在我频繁驱动别的引脚时,在某些情况下莫名其妙的影响到了当前引脚的状态。且似乎是在1ms内多次切换引脚电平才会产生这个情况。
上述情况,在初始化引脚之后,就会恢复正常,所以似乎是当前的数据引脚频繁切换导致某些电磁异常,影响到当前的引脚输出,因为引脚没有上、下拉电阻与MOS确定,且因为我们的外部的下拉电阻较小。于是在频繁切换别的引脚的时候就可能影响到该引脚的电流,而且下拉电阻的原因影响了。因为引脚本身有施密特触发器,自然会出现当前的这种拨动的情况。
0x03 结果
可以在系统最开始的时候就初始化,这样内部的MOS管就可以强制将引脚钳住。就可以固定一个默认的输出电压。这样就可以规避了这个问题。
0x04 后记
在系统开始的时候,就可以把所有的待用引脚初始化,这样就可以规避这个问题。
更多
本文首发自 记:一次Magic现象下ST芯片的故障现象。-我的博客,更多文章可进入我的博客详查。