对BOR,POR和PUC的理解

MSP430x5xx有三种复位信号:掉电复位(brownout reset, BOR)、上电 复位(power on reset, POR)和上电清除(power up clear, PUC)。下表列出了三种信号的触发条件和信号产生后设备的初始条件:
表1
在系统完成复位以后,用户软件必须根据应用需求初始化设备:

  • 初始化堆栈指针,一般是写入RAM顶端地址;
  • 根据应用需求初始化看门狗;
  • 根据应用需求配置外围模块。

对BOR的理解

在单片机系统中,一般采用电池或者市电供电。如果采用电池供电,则存在电池电压不断下降的问题;如果采用市电供电,则存在着电压波动和电源干扰的问题。其中,电源电压的不稳定,是造成单片机系统运行混乱甚至死机的重要原因之一。所以,通过BOR电路检测电源的电压, 一旦发现VCC下降到某一个门槛值时,就使单片机及时复位以免系统失控。这个复位状态一直保持到VCC重新上升到门槛值以上之后。

对BOR, POR和PUC之间区别与联系的理解

图1
BOR会在芯片上电或者掉电过程中检测电源电压,并产生POR信号,如上图所示。芯片上电过程中,当电源电压VCC超过VCC(start)后BOR电路产生POR信号,直到VCC超过V(B_IT+),然后再经过延迟t(BOR)后,POR信号撤销。如果VCC电压上升速率较慢,t(BOR)会相应的延长。芯片掉电过程中,VCC必须降到低于V(B_IT-)之后BOR电路才产生POR信号。这是个迟滞比较功能,V(B_IT+)和V(B_IT-)差值即为迟滞电压Vhys(B_IT-),通过迟滞比较避免错误产生POR信号。
BOR与POR(和PUC)信号一个重要不同之处在于POR和PUC信号不会造成芯片执行启动代码,即程序计数器(PC)会直接载入0xFFFEh地址。另一个重要的不同之处在于BOR、POR和PUC信号系统复位后会导致不同的寄存器初始值,如下表最后4行所示。
图2
例如SYSCTL寄存器的SYSJTAGPIN、SYSPMMPE和SYSRIVECT位的值保持置1直到系统产生BOR信号。
图3
下图用图形方式展示了BOR、POR和PUC的产生条件和三个信号之间的关系。可以看出BOR信号能够产生POR信号,POR信号能够产生PUC信号,但反之不然。
图4

参考资料