产品概述

单片机烧坏 电机启动时单片机死机故障的分析

小编 2024-10-12 产品概述 23 0

电机启动时单片机死机故障的分析

几天前,一个朋友碰到了一个棘手的技术问题,找到了我。

朋友应其客户要求找人设计了一款用于控制显示屏上下位置的装置,功能比较简单:

根据按键操作或者是蓝牙命令调节电脑显示屏的上下位置;

这样做好了,客户不远万里来到工厂一起调试样机。

在关键节骨眼上,样品掉了链子:只要一启动电机,单片机就死机重启。

反复测试和调整,始终无法解决问题。

无奈之下,找到了我这个有几十年工作经验的工程师。

我让朋友把电路图和PCB发给了我,如下图:

电路原理图

PCB

线性变压器将220VAC转为12VAC之后,经过桥式整流由电容滤成脉动直流由稳压成直流5.0V给控制电路供电;

12VAC还给电机供电。

单片机通过继电器控制电机运行;

该电路图和PCB有以下几点值得重点关注;

1) 桥式整流后级的储能电容是1个100uF/50V的电解电容;

2) RS485的A+,B-输出没有任何保护;

3) 给电机供电的导线,从top layer到bottom layer的连接,仅用两个0.3mm/0.8mm的过孔;

单片机死机重启,比较有可能有以下两个原因:

1) 电源跌落,电机运行瞬间,电机的磁场还没有建立,电机的阻抗为导线的直流等效电阻,此时的电流非常大,高达正常工作电流的近十倍。

由线性变压器供电的储能电容仅为100uF,是远远不够的,根据本人多年的经验,线性变压器共电的储能电容至少应该为几千uF。一般多用4700uF或者6800uF。

由二极管整流桥整成的直流为频率为50Hz的脉动直流,而不是一条恒定的直线。

根据I=Cdu/dt,我们可以根据负载电流大概估算出所需储能电容的大小。

电机启动瞬间的瞬态过程中,启动电流非常大,线性变压的输出可能被拉低,没有办法给+5V的稳压电路供电;

此时,由储能电容向控制电路供电,两个继电器线圈电流为100mA,启动时间如果为100ms,如果此时允许2v的电压跌落;

电容C=100mA*100ms/2=10000uF。

2) 干扰信号耦合到复位脚导致复位,电机启动瞬间,电流变化非常大。

其产生的变化磁场也非常大,如果复位脚的导线因为这个变化的磁场感应出干扰电压,也有可能导致复位。

从PCB板上来看,电机控制线离单片机还有几十cm的距离,而且PCB的走线也没有看出形成环路。

应该不至于有那么大的干扰导致复位。

综合以上两点考虑,我立即让朋友找客户做了以下事情:

1) 用示波器测试桥式整流之后的电压波形,其不是一条恒定直流,而是一条波动的线,在的果然在电机启动时,电压发生了跌落;

2)将100uF/50V的电容改成4700uF/50V的电容,故障消失,电机启动时,单片机不再死机;

至此,问题顺利解决,最后我让朋友对该电路图以及PCB进一步做了下述改进:

1)大电流的导线不能只用两个过孔来做层间连接,过孔的载流能力很差,印象中过孔的铜箔厚度仅为0.5OZ, 仅为17um,大电流时,直接就烧毁断路了。

2)RS485的输出脚A+, B-需要加TVS进行保护;

3)为了降低干扰,可以在电机控制输出端加上TVS吸引高压的反向电动势。

4)可以考虑在电机控制输出端加上自恢复保险丝PTC,做输出短路保护,避免输出短路时烧断铜箔。

MCU单片机死机或控制失效后,如何有效保护负载的电路

玩单片机的都可能遇到过因外部干扰或因软件BUG导致死机,这对于有功率负载的电路是极为不利的。现在MCU都有了WDT看门狗,当计数溢出就强制进行复位。但如果单片机因某种原因(如静电、浪涌等击穿)直接导致损坏,使其输入输出状态无法控制,且无法预料时,可能会造成不良后果甚至人身安全。如电机控制、逆变器等,当异常发生MCU输出端一直输出固定电平(这里假设高电平驱动)会导致线圈进入饱和,产生大电流发热烧毁线圈甚至是起火引发一系列不可预料后果。那如何去有效避免这类问题的发生呢?

电机/逆变驱动,任一MOS持续导通都会导致线圈饱和大电流发热

首先,最大的问题是单片机失效后,IO端口状态无法预料,只能切断负载供电,所以只要能检测到MCU是否正常工作,然后去控制负载供电开关就可以避免上述问题了。顺着这个思路,我们可以让单片机一个IO口一直输出50%占空比PWM信号,用一个电容进行隔离,当正常工作时PWM信号可以通过电容,经过整流滤波驱动MOS管导通,当死机后就没有PWM信号输出了,此时不管IO口是持续的高还是低电平,经过电容后级都没有电压了,此时MOS管截止负载供电被关断,这样就有效保护了负载。 最后结合上图重新梳理一遍保护过程。当单片机正常运行时IO1持续输出PWM信号,整流滤波后推动后级MOS管导通,提供负载供电;当单片机死机或失效后,就没有PWM信号输出,无论输出是持续的高或低电平,都没有整流电压推动后级MOS开关管,此时MOS管 截止,负载断电!本电路重点运用了电容的隔直流特性,既能让连续变化的PWM耦合通过,又可以阻止直流电压通过,从而有效检测MCU是否异常,同时控制负载供电开关。希望可以抛砖引玉,欢迎大家举一反三,提供宝贵建议共同学习。

专注原创技术干货分享,喜欢的话评论转发吧,加关注可享更多干货内容!

相关问答

单片机 是不是坏了?

如果采用电脑USB供电,单片机故障不会损坏电脑有关接口和部件,只要没有外部高电压输入,5V的信号电脑都能承受,即使单片机开发板短路,USB接口保护电路会起作用...

PIC 单片机 接的光耦容易 烧坏 ,为什么?

并不是PIC单片机接的光耦容易烧坏,与用什么单片机没有关系,主要看光耦的接法。另外,光耦烧坏了,查一下是发光二极管端还是光敏三极管端。发光二极管端被烧坏...

不烧程序进去,怎么判断 单片机 是否已被 烧坏 ?-ZOL问答

如果单片机在上电复位其间,各端口不出现高电平可判断为有问题;要接复位电路和晶振。为了,单片机不染病毒。1、这片子之前用过嘛,也就是说这片子...

继电器为什么不可以直接用 单片机 驱动?

你的电路接法是否错误呢?查看一下,单片机从理论上讲是不能直接驱动继电器的,不管你的接法如何,直接连接可能会烧坏单片机I/O口,你的原因可能是已经把I/O口烧...

单片机 怎么烧入程序?-ZOL问答

那要看你用什么单片机,比如STC的单片机,直接搞个串口,在搞个STCISP就能把程序烧进去,AVR的用专门的下载器,MSP430一般用JLINK烧写能否换个同型号的下载工具试试...

单片机 串口检测不到怎么办?

单片机串口检测不到可能有以下几种原因:1.串口线接触不良或者损坏。您可以检查一下串口线是否连接牢固,或者更换一条新的串口线来测试。2.串口驱动程序没...

单片机 直接驱动mos管会 烧坏 io口吗?

单片机直接驱动MOS管会存在一定的风险,因为MOS管是电压驱动的原件,在工作时可能会产生较大的电压和电流。如果单片机的供电电压小于MOS管的工作电压,可能会导...

如何解决 单片机 驱动电机问题?

你的电机是多大功率的?额定电压、电流时多少?你的三极管的驱动能力是多少?Beta是多少?有两种可能,1.三极管驱动能力较差,电机需要的电流较高,这时候相当...

单片机 LED点阵板为什么不亮?

单片机LED点阵板不亮可能有以下几个原因:1.电源问题,检查供电电压是否正常,电源线是否插好,是否有短路或开路现象。2.程序问题,检查程序代码是否正确,是...

程序员在写代码的时候bug太多会给计算机造成损坏吗?为什么?

原则上程序员写代码调试对于计算机的冲击是有限的,但编程来讲不是什么都是绝对的,如果是windows编程写的代码对于cpu或者硬盘有非常大的冲击,也会造成计算机损...

猜你喜欢