记:一次Magic现象下ST芯片的故障现象。

0x00 前言

本文主要记录了再一次使用ST芯片的过程中,因为正常原因,发现在某些情况下引脚之间的互相影响。阅读本文,您可能需要掌握的知识:

技能 熟练度
英语 熟练
知识检索 熟练
模电 简单
C语言 了解

0x01 现象

之前开发的时候,在我初始化某些引脚之前。产品出现了不可控的状态。导致整个产品出现异响(高频电流振荡带来的噪声)

0x02 原因

出现了故障,于是我就叫来了一起合作的硬件工程师。一番定位,终于找到了问题所在。

在ST单片机GPIO初始化之前,一般默认配置为浮空状态(纯灌电流高阻)。也就是在外部必须要给定引脚一个固定的电压。

但是经过我和工程师小姐姐再三确认,我们确实在外部加入了一个下拉电阻。于是乎,我们只能接着继续寻找真相。但是经过示波器观察,得到原因似乎是,在我频繁驱动别的引脚时,在某些情况下莫名其妙的影响到了当前引脚的状态。且似乎是在1ms内多次切换引脚电平才会产生这个情况。

上述情况,在初始化引脚之后,就会恢复正常,所以似乎是当前的数据引脚频繁切换导致某些电磁异常,影响到当前的引脚输出,因为引脚没有上、下拉电阻与MOS确定,且因为我们的外部的下拉电阻较小。于是在频繁切换别的引脚的时候就可能影响到该引脚的电流,而且下拉电阻的原因影响了。因为引脚本身有施密特触发器,自然会出现当前的这种拨动的情况。

0x03 结果

可以在系统最开始的时候就初始化,这样内部的MOS管就可以强制将引脚钳住。就可以固定一个默认的输出电压。这样就可以规避了这个问题。

0x04 后记

在系统开始的时候,就可以把所有的待用引脚初始化,这样就可以规避这个问题。

发布了2320 篇原创文章 · 获赞 98 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/cpongo2/article/details/103361288