你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32烧毁的原因

[复制链接]
lg28702426 提问时间:2017-5-31 18:24 /
STM32烧毁的原因
自己想搞过平衡车,于是参照网上的最小系统搞了个电路图,很简单就是最小系统。控制两个步进电机,步进电机驱动芯片是A4988,就是那种3D打印机常用的电机驱动。
电路分两块,一块是最小系统,一块是步进电机驱动插板及电源模块。最小系统采用的是网上买的转接板,100脚的转接板,芯片是STM32F103VBT6。最小系统很简单,就是加个晶振,两个电容。然后就是去耦电容。去耦电容焊在两个杜邦插脚上。其实要更简单是晶振都可以不要。板子背面加了滤波电容,找了两个胆电容焊上。第一次用胆电容,本来一看以为是画线那边是负极,因为觉得跟二极管一样,还有就是普通的电解电容也标记的是负极。不过还是上网查了下,才发现胆电容画线那边是正极。差点犯错爆掉。另外还加了个贴片二级管做指示灯。就这样上电,ST-LINK V2,芯片很容易就读出来了。然后下载程序点灯,都OK。下载些网上的程序做各种实验一点问题都没有。最小系统是成功了。

然后是转接板了,用洞洞板,把网上买得1117-3.3v的电源模块焊上去。再加了电机驱动A4988的插座,以及最小系统的插座,还有网上买得MCU6050模块。然后是洞洞板飞线。飞线感觉好麻烦,好多线。电源采用的是普通12V开关电源。A4988驱动电机用12V。STM32用3.3V。


    电源接入方式是采用5.5*2.1MM 电源座 DC-005,没有安装开关。然后下载程序。测试。电机转动正常。试了下平衡,有些问题。开始调试,不过突然间,就闻到一股焦糊味道。发现1117电源芯片烧了。取下1117芯片测量电源短路,再把最小系统取下来发现就不短路了。 测了下最小系统电源正负极短路。原来STM32正负极短路了。      于是上网搜索,”STM32 短路发现好多搜索结果,都是STM32容易烧成VCCGND短路,包括意法半导体官方论坛都有这样的帖子。 有的说要加EVD什么,有的说电源要加什么压敏电阻,或双向二极管,以及什么防静电焊接等等。网上搜索了几十篇帖子,都是电源短路,但是都没有说清楚原因。    我想是不是因为我的 电源不好,于是在1117前面加了个7805芯片,先把电压降到5V,再降到3.3V 于是乎立马开始焊接,很快搞好,试机,OK。通电正常。      又开始测试平衡,心想这下没什么事了。可以没过多久,突然又出问题了。发现STM32又烧成电源短路。好心疼啊,上QQ群各种咨询,无果。还遇到共鸣,有的QQ好友也有这种情况。有的说A4988驱动需要光耦隔离等等意见,不过我发现我家的3D打印机,用的就是A4988驱动,与ARDUINO控制板IO都是直接连接并没有采用光耦隔离。      想了很久都没有想出问题的所在,于是想是不是飞线太多,那里短路了。于是想自己画电路板。于是开始了漫长的画电路板之路,没有多少时间,慢慢学习。半年多了才慢慢画出了电路板。 电源模块 步进电机模块。 晶振模块 启动设置及指示灯模块
USB模块
MPU6050和蓝牙模块插座。

最小系统模块
步进电机模块设置了4个,这样以后不用平衡车后,还可以做其他用途。可以多驱动两个步进电机。
这是PCB.

OK一切搞定,找人帮忙制作了PCB双面板。手工制作的双面板,过孔都是用电阻引线焊接的。
PCB正面。
PCB背面。
焊好原件,心里之爽啊。这下可以好好玩一下了。
这是我的平衡车,用两个35步进电机做的。平衡车支架是用3D打印机打的。网上有支架卖,但是有点小贵,还好家里有3D打印机自己DIY一个吧。
   好一切 组装到位OK,平衡车终于稳稳的站起来。不过程序不是自己编的,什么PID驱动不是很懂。只是把IO端口给改过来就OK了。
  可是好景不长,没多久,STM32又短路了。还把78M05电源芯片都烧了。感觉好困难啊,是不是不太专业的原因啊!又是上网搜索答案,QQ群里请教,还是没有找到真正原因。QQ群里面还有的人说已经烧了100多片STM32了。很恼火。网上搜很久都没有找到解决方案。烧了4片STM32后,我再也不敢试了,反复的想原因。
在未焊接STM32芯片的情况下用万用表测得5V,及3.3V的电源输出都很正常。还好家里买了台示波器,还是拿示波器先看看什么原因嘛。接上示波器一看吓一跳。原来在刚插上电源瞬间,又很高电压。瞬间的波动一下就没有了。大喜,以为找到原因了。是这个电源不好,另外又换了几个电源,都是这个情况。有点茫然了。
然后又到面包板电源上去实验,发现插上的瞬间也有这个情况。不过面包板电源有个开关,我关掉开关,再打开开关却没有瞬间的电源波动。按动开关和插拔插头,得到的是不同结果,于是仔细研究插头结构,发现这种DC-005插头每次插拔的时候是先接触到正极,再接触到负极。恍然大悟。一定要先接通负极再接正极。
接下来采取了三个措施防止STM32烧毁,1.在电源正极处加一个开关。2.在STM32与12V驱动模块连接IO口上加一个1K电阻。3.在STM32正极电源处加一个150mA的自恢复保险。(应为芯片规格书上说STM32最大电流150mA)。
然后把STM32芯片焊上去,开始试验。 就再也没有烧毁STM32。也不知道上面三种方案的那种起了作用。
最后偶然看到一篇文章“闩锁效应”,才知道真正原因是闩锁效应,是CMOS工艺所特有的寄生效应,严重会导致电路的失效,甚至烧毁芯片。闩锁效应是由NMOS的有源区、P衬底、N阱、PMOS的有源区构成的n-p-n-p结构产生的,当其中一个三极管正偏时,就会构成正反馈形成闩锁。
要真正解决“闩锁效应”当系统由几个电源分别供电时,开关要按下列顺序:开启时,先开启COMS电路的电源,再开启输入信号和负载的电源;关闭时,先关闭输入信号和负载的电源,再关闭COMS电路的电源。所有以前单电源5V供电就从来没烧过芯片。但是要满足这种开关顺序也是很麻烦,要用两个开关,而且不小心开关顺序出错还得烧毁芯片。
于是自行设计了个,双电源,高电压延迟通电电路。如图,当上电时用一个PMOS开关控制电源12V关闭。等到7805稳定输出电压后,给电容C5充电,然后Q4,三极管导通,带动Q3 PMOS导通,满足了先开信号电源,后开高压动力电源的要求。关闭时没有想到更好的办法就采用电容延迟的方法。 关闭12V电源后高压侧的电容小,低压侧采用大容量电容器。 所以就是先关闭了高压电源,低压侧由于电容储电量大,延迟一会儿再断开电源。于是彻底解决了困扰多年的STM32烧毁问题。(注:根据网上查询资料,讨论STM32烧毁的帖子,最早是在2010年)



收藏 2 评论8 发布时间:2017-5-31 18:24

举报

8个回答
CC4 回答时间:2017-5-31 20:29:45
看不到图啊
eagle0754 回答时间:2017-6-1 08:32:06
是不是从别的地方直接复制过来的,图全挂了
lg28702426 回答时间:2017-6-1 15:45:13
看不到图,可以看我的博客http://blog.sina.com.cn/s/blog_859350350102ww4o.html
五哥1 回答时间:2017-6-5 00:20:09
楼主的经验我们可以用到,谢谢分享
epochal 回答时间:2017-6-5 07:12:14
谢谢分享!!!
huigeataiban 回答时间:2017-8-9 11:39:02
谢谢分享
huigeataiban 回答时间:2017-8-9 11:41:24
你好,我也在学习用STM32+4988控制35步进电机,但是电机一直在振动,请问你是如何控制的?
absdjko 回答时间:2018-11-9 10:12:37
a4988很容易烧掉,还有楼上的震动是相序不对。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版