打印
[疑难问答]

如何有效避免MCU单片机死机问题

[复制链接]
1677|39
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
janewood|  楼主 | 2023-8-20 19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

首先,最大的问题是单片机失效后,IO端口状态无法预料,只能切断负载供电,所以只要能检测到MCU是否正常工作,然后去控制负载供电开关就可以避免上述问题了。顺着这个思路,我们可以让单片机一个IO口一直输出50%占空比PWM信号,用一个电容进行隔离,当正常工作时PWM信号可以通过电容,经过整流滤波驱动MOS管导通,当死机后就没有PWM信号输出了,此时不管IO口是持续的高还是低电平,经过电容后级都没有电压了,此时MOS管截止负载供电被关断,这样就有效保护了负载。

最后结合上图重新梳理一遍保护过程。当单片机正常运行时IO1持续输出PWM信号,整流滤波后推动后级MOS管导通,提供负载供电;当单片机死机或失效后,就没有PWM信号输出,无论输出是持续的高或低电平,都没有整流电压推动后级MOS开关管,此时MOS管 截止,负载断电!

本电路重点运用了电容的隔直流特性,既能让连续变化的PWM耦合通过,又可以阻止直流电压通过,从而有效检测MCU是否异常,同时控制负载供电开关。


使用特权

评论回复
沙发
kkzz| | 2023-9-12 15:53 | 只看该作者
要避免使用可能导致死循环的算法和逻辑,避免程序进入无法退出的状态。

使用特权

评论回复
板凳
bartonalfred| | 2023-9-12 16:59 | 只看该作者
要采用模块化的设计思想,将系统功能划分为独立的模块,并且每个模块应该具有独立的存储空间和运行时状态。

使用特权

评论回复
地板
bestwell| | 2023-9-12 18:14 | 只看该作者
可以采用看门狗技术来保证单片机的正常工作。

使用特权

评论回复
5
earlmax| | 2023-9-12 19:41 | 只看该作者
需要采取适当的措施来应对死机问题。要尽快采取行动,并且尽可能采取有效的措施

使用特权

评论回复
6
janewood|  楼主 | 2023-9-12 21:27 | 只看该作者
代码是避免单片机死机问题的关键。需要确保代码的正确性和可靠性,避免出现逻辑错误、死循环等问题。

使用特权

评论回复
7
mollylawrence| | 2023-9-12 22:09 | 只看该作者
避免对单片机进行频繁的复位操作,这可能导致程序的意外中断或死机。

使用特权

评论回复
8
kmzuaz| | 2023-9-13 10:41 | 只看该作者
合理管理单片机的内存资源,避免内存泄漏和溢出。

使用特权

评论回复
9
timfordlare| | 2023-9-13 10:57 | 只看该作者
适当的硬件和软件优化可以帮助 MCU 单片机避免死机问题。

使用特权

评论回复
10
beacherblack| | 2023-9-13 11:34 | 只看该作者
要保证电源的稳定和可靠,采用滤波和稳压措施来避免电源的大幅度波动和干扰。

使用特权

评论回复
11
mickit| | 2023-9-13 12:39 | 只看该作者
要保证电源的稳定,避免电源的大幅度波动和干扰,确保单片机的正常供电。

使用特权

评论回复
12
vivilyly| | 2023-9-13 13:15 | 只看该作者
进行代码优化和性能优化,减少程序的复杂度和冗余。

使用特权

评论回复
13
uptown| | 2023-9-13 16:52 | 只看该作者
避免过多的动态内存分配和频繁的内存操作,以减少内存管理问题对单片机的影响。

使用特权

评论回复
14
yorkbarney| | 2023-9-13 17:48 | 只看该作者
完善的测试和调试可以帮助 MCU 单片机避免死机问题。

使用特权

评论回复
15
mollylawrence| | 2023-9-13 20:05 | 只看该作者
在 MCU 单片机的设计和系统需求阶段,需要进行合理的分析和规划。要充分考虑系统所需的资源,包括内存、处理器、存储器、输入输出设备等,并且要避免对系统资源产生过大的压力。

使用特权

评论回复
16
uytyu| | 2023-9-13 21:03 | 只看该作者
堆栈是单片机存储局部变量和函数调用信息的地方,如果堆栈大小设置不合理,可能会导致堆栈溢出,从而导致单片机死机。

使用特权

评论回复
17
wwppd| | 2023-9-13 21:54 | 只看该作者
在 MCU 单片机中,死机问题是一个常见的问题,会对系统造成严重的威胁。

使用特权

评论回复
18
jonas222| | 2023-9-13 22:53 | 只看该作者
确保单片机的电源供应稳定和可靠。使用适当的电源滤波电路和稳压器来减少电源噪声和波动。

使用特权

评论回复
19
weifeng90| | 2023-9-14 08:18 | 只看该作者
看门狗,进程监控。

使用特权

评论回复
20
bestwell| | 2023-9-17 07:13 | 只看该作者
需要避免资源竞争,采用合适的同步机制来保证资源的正确访问。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

1087

帖子

1

粉丝