前不久有朋友大概问了这么一个问题:博主,在复杂的环境下,干扰有点大,有必要外接一个复位IC吗?
1 写在前面
我们都知道在复杂环境,比如一些工厂,特别是在有大型机电设备的环境下,我们的电源信号、通信信号都有可能受到干扰。
那么,在这种情况下,我们软件和硬件都有必要做一定预防处理。
除了需要外接复位IC,同时,为了系统能稳定长期的工作,我们可能还有必要添加看门狗。
本文就围绕复位IC、看门狗展开相关内容的讲解。
2
MCU电路为什么要使用复位芯片?
STM32都有一个最低工作电压(比如1.8V),当电源电压跌落到低于MCU所要求的最低值时,MCU工作可能发生混乱,造成程序跑飞,引起整机死机、误动作等现象。
使用复位IC的原理是通过确定的电压值(阈值)启动复位操作,同时排除瞬间干扰的影响,又有防止MCU在电源启动和关闭期间的误操作,保证数据安全。
3
看门狗设计和复位
STM32具有IWDG独立看门狗、WWDG窗口看门狗两种类型的看门狗。
独立看门狗由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。而窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
看门狗复位就是超过一定时间没有喂狗,看门狗就会发出一个复位信号。
4
看门狗和复位IC同时存在的注意事项
之前有工程师遇到一个问题:STM32外接了复位IC,发现自己的看门狗不起作用,也就是说看门狗不能复位。
这个问题可能很少有人遇到过,我这里就先给大家讲讲原因,避免以后你以后入坑。
想要明白这里面原因,就需要对复位电路结构和原理做一定的了解。
1.STM32复位
1. NRST引脚上的低电平(外部复位)
2. 窗口看门狗计数终止(WWDG复位)
3. 独立看门狗计数终止(IWDG复位)
4. 软件复位(SW复位)
5. 低功耗管理复位
STM32复位内部结构图
出现问题的电路图如下:
如果外界了复位IC,这里就需要大家认真看上面两图。
一个重要的信息:外接复位IC驱动类型为 CMOS 推拉型驱动。
相信大家看到这里已经明白了为什么。其实,解决办法就是:将电路中0Ω电阻改为 1K 电阻。
本文就讲到这里,希望你以后遇到类似问题,不再有犯这种低级的错误。
推荐阅读与复位相关的文章:
1.STM32片上外设时钟使能、失能和复位的区别
2.STM32复位类型/来源
3.有一种修饰符能使变量在处理器复位而不被初始化
4.STM32内核复位与系统复位区别及应用