MCU单片机死机?如何有效保护负载电路
玩单片机的都可能遇到过因外部干扰或因软件BUG导致死机,这对于有功率负载的电路是极为不利的。现在MCU都有了WDT看门狗,当计数溢出就强制进行复位。但如果单片机因某种原因(如静电、浪涌等击穿)直接导致损坏,使其输入输出状态无法控制,且无法预料时,可能会造成不良后果甚至人身安全。如电机控制、逆变器等,当异常发生MCU输出端一直输出固定电平(这里假设高电平驱动)会导致线圈进入饱和,产生大电流发热烧毁线圈甚至是起火引发一系列不可预料后果。那如何去有效避免这类问题的发生呢?
电机/逆变驱动,任一MOS持续导通都会导致线圈饱和大电流发热
首先,最大的问题是单片机失效后,IO端口状态无法预料,只能切断负载供电,所以只要能检测到MCU是否正常工作,然后去控制负载供电开关就可以避免上述问题了。顺着这个思路,我们可以让单片机一个IO口一直输出50%占空比PWM信号,用一个电容进行隔离,当正常工作时PWM信号可以通过电容,经过整流滤波驱动MOS管导通,当死机后就没有PWM信号输出了,此时不管IO口是持续的高还是低电平,经过电容后级都没有电压了,此时MOS管截止负载供电被关断,这样就有效保护了负载。
最后结合上图重新梳理一遍保护过程。当单片机正常运行时IO1持续输出PWM信号,整流滤波后推动后级MOS管导通,提供负载供电;当单片机死机或失效后,就没有PWM信号输出,无论输出是持续的高或低电平,都没有整流电压推动后级MOS开关管,此时MOS管 截止,负载断电!
本电路重点运用了电容的隔直流特性,既能让连续变化的PWM耦合通过,又可以阻止直流电压通过,从而有效检测MCU是否异常,同时控制负载供电开关。
希望可以抛砖引玉,欢迎大家举一反三,提供宝贵建议共同学习。