欠压复位(以下称为BOR)是单片机可靠性的一项重要功能,通常用于解决电源问题,下面将介绍欠压复位的另一个问题。
单片机的“电量不足”是电源电压不足或暂时降低,低于可靠运行所需的水平。许多单片机具有保护电路,该电路可检测电源电压何时低于此水平,并将设备置于复位状态,以确保在电源恢复时正确启动。此操作也称为“欠压复位”,英文缩写为“BOR”。类似的功能称为低电压检测(LVD),它更复杂,增加了对多个电压电平的检测,可以在触发复位之前产生中断。
BOR通常由控制寄存器中的某个位使能。通常,当BOR引起复位时,状态位会置1。该状态位在复位后仍然有效,并允许程序检测到问题并执行其他恢复或记录事件。
如果BOR被禁用会怎样?一般情况下,其表现为电源电压稳定下降。至于原因,可能是电源老化或电池放电。
如上图所示,V1是正常电源电压。V2是微控制器可能无法可靠运行的点。我将V3显示为操作完全停止的点。在V2和V3之间是一个“危险区域”,在该区域可能发生错误并且操作不可靠。当电源进出危险区域时,该设备可以正常工作数年,然后损坏!出现故障。BOR级别设置为高于V2,并通过复位设备来代替危险区域。重置不太可靠,但总比不确定好。接下来,我介绍一种情况,其中电源正常运行,但使用BOR解决了另一个问题。
当电源关闭时,电压不会一直下降。相反,其他电源将电源电压保持在危险区域。这种电压的另外一种叫法是“虚假电量”。目前,没有BOR可以检测到这种情况并引起复位。再次打开电源时,设备可能无法正常上电,因为可能不会触发上电复位电路。由于电源电压低于最小值并且没有复位,因此后续操作不确定。
以Microchip的单片机为例,在验证是本人用的是PIC16F877-20I/L。这该单片机是工业版本,工作温度范围为-40°C至+85°C。采用16MHz时钟时,电源范围为+4.0V至+5.5V。模块内部的工作电压(V1)是+5V。显示器显示的是,单片机(V2)上的虚假电量电压约为+1.5V。
还有其他两种情况,“RAM数据保持电压(VDR)”为+1.5V,“典型值”。“VDD启动电压”(VPOR)以确保内部上电复位为0V,“典型值”。将所有这些情况加在一起可以告诉我们,该设备处于危险区域之内。由于电压远高于此电压,因此无法预期上电复位(VPOR)。此外,由于虚假电量处于RAM保持电压下,因此也无法预期的欠压会使设备保持活动状态(VDR)。谁知道设备的其余部分在做什么?
为什么打开BOR可以解决此问题?欠压复位触发规范(VBOR)的范围是+3.7V至+4.35V,典型值为+4.0V。虚假电量电平远低于BOR的触发电压。问题解决了。但是,为什么微控制器在实验室中可以正常工作并以许多次电源循环正常运行仍然是个谜。
总结,虚假电量可能有几种情况:外部信号,电路中的多个电源,电容器需要时间才能完全放电。