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