mattlincoln 发表于 2023-4-25 09:00

电机的启停影响单片机程序的运行,该如何解决?

  解决问题之前先要定位问题在哪里。电机启动瞬间电流特别大,如果电源供电不足,会把电压瞬间拉低,导致单片机发生低电压复位。如果电机启停瞬间产生的EMI干扰信号通过VDD窜入单片机,也会使单片机程序跑飞或者复位。
用示波器测量单片机VDD,可以有效的发现问题,观察电机启停瞬间VDD有波形。如果VDD在电机启停瞬间有拉低,很大可能是单片机发生了低电压复位。可以把单片机连接到仿真器,在程序里设置断点,进一步确定电机启停瞬单片机是否发生复位。

  如果在电机启停瞬间有尖峰出现,说明电机发生的EMI干扰信号已经通过传导或者辐射干扰到单片机的电源VDD了。同样可以把单片机连接到仿真器,在程序里设置断点,进一步确定电机启停瞬单片机程序跑飞还是受干扰复位了。

  02

  避免单片机低电压复位

  如果电压的变化不是太大,可以给单片机的VDD增加一个容量较大的电容。电压拉低一瞬间,电容会给单片机维持供电,避免发生低电压复位;如果电压拉低实在太严重,就需要检查电源的设计是否合理了。

  03

  滤除电机产生的EMI干扰

  针对电机产生的EMI干扰信号的频率,加入适合的高频电容、电感、磁珠。滤除窜进单片机VDD的干扰信号。

  04

  单片机复位后自恢复参数

  经过改善,消除了低电压复位或者EMI干扰是最好的解决方法。如果实在没办法解决问题,还可以通过软件来处理。打开单片机的看门狗,程序执行电机启、停指令前先把重要的参数保存下来;单片机发生复位后,根据状态标志位判断是否是电机启停产生的非正常复位,如果是非正常的复位,恢复之前保存的参数再继续运行程序。

tpgf 发表于 2023-5-10 17:13

一看题目我感觉是不是启停的电流变化大 产生了干扰呢

qcliu 发表于 2023-5-10 17:28

功率不够的话 确实会导致电压下降从而印象单片机的运行

drer 发表于 2023-5-11 08:21

有电机的系统 模拟地和数字地是不是应该分开呢

coshi 发表于 2023-5-11 09:00

单片机经常复位会不会对其寿命及正常使用有不好的影响呢

kxsi 发表于 2023-5-11 11:08

如果需要保存参数的话在非正常复位的时候需要对所需的所有外设进行初始化吗

wiba 发表于 2023-5-11 11:29

非正常复位的情况下 会接着复位瞬间的状态运行吗
页: [1]
查看完整版本: 电机的启停影响单片机程序的运行,该如何解决?