MCU有哪些复位因素

在调试MCU时,经常会遇到复位的情况。要找到复位的原因,我们就需要了解到有哪些因素会导致MCU复位。

1. 外部输入复位

当我们改变MCU的reset引脚的电平,并保持一段时间,就可以复位MCU。

外部输入复位是重启MCU最有效的方式了。

2.上电复位  (LVD)

我们发现MCU不接外部复位电路,也能正常启动起来,这就是上电复位在发挥作用。

如下图,当电源电压达到POR释放电压后,MCU开始内部初始化,一定时间后开始执行用户程序。

当然,如果电源电压掉到了POR检测电压以下时,MCU会被复位住。

3.低电压复位(LVD)

 当我们希望MCU不在某一电压以下运行时,开启LVD是一个很好的选择。

当电源电源下降到LVD检测电压以下时,MCU会被复位住。

当电源电压上升的LVD释放电压以上时,MCU会被释放,重启运行。

4.看门狗复位(WDT)

当MCU因为干扰等因素导致进入死循环,这个时候需要一种机制让MCU重新启动,这种机制就是看门狗。

在开启看门狗后,如果不及时喂狗,那么它将毫不犹豫的复位MCU,使其重新开始执行用户程序。

5.系统时钟复位

如果系统时钟的设置,使MCU进入死锁状态,那么就会发生系统时钟复位。

6.修整数据复位

低电压复位(LVD)的检测值是可以由用户的选择的。

根据用户选择,得到修整数据,从而调整电阻梯以形成不同电压的比较值。

如果这个修整数据因为噪声等原因发生改变,那么将发生修整数据复位。

7.闪存待机复位

当设置闪存flash进入待机状态,如果这个时候试图去读取闪存flash中的数据,那么就会发生闪存待机复位。

除了第一种外部输入复位为外部因素外,其他复位都是内部因素。

当发生复位时,我们如何判断是哪一种因素导致的呢?

如果是使用东芝TLCS-870/C1系列的TMP89FM42或TMP89FS60,可以通过它寄存器IRSTSR来判断。

IRSTSR是一个特殊只读寄存器,它只能被外部输入复位或者上电复位(POR)初始化。

当发生复位时,我们去查看这个寄存器哪个位被置位了,就能知道是哪种内部因素导致的复位了。

如果发生复位后,这个寄存器没有被置位,那么我们就要去考虑是外部输入复位导致的,还是上电复位(POR)导致的了。

原文地址:https://www.cnblogs.com/freesun/p/13190598.html