Robustness: Brownout

When a circuit designer designs a circuit, it specifies a range of supply voltages that will allow for the correct operation of the circuit. A microprocessor, no matter how big or complicated, is still a circuit. The supply voltage feeding it should be within a predefined range for proper operation. If the voltage drops too low, the processor starts to deviate from its expected behavior. This deviation can get to the point that the processor makes mistakes. For example, it can calculate 2 plus 2 and get 5, or it may skip performing an instruction altogether. These mistakes can have catastrophic or unpleasant consequences depending on the type of application the processor is running. A cheap and simple solution to avoid these mistakes is to turn off the processor when the supply voltage drops too low and turn it back on when it goes back up. This mechanism is called a brownout reset. Brownout reset is not an ideal solution because it cuts off the processor's service to the user, which on its own, is not pleasant and could be catastrophic. Nevertheless, this is a simple solution that works for applications that are not critical, and correctness and dependable behavior has more priority over the availability of service. 

Suppose we have a digital logic circuit where the optimum supply voltage is 5V. However, the circuit can tolerate supply voltages down to 3.5V. In current CMOS technology, a drop in supply voltage results in the slower operation of the microcontroller. So, it is safe to allow the processor to run up to 3.5 V. We have to turn off the processor when it reaches 3.5V in brownout reset. Now, what if the processor's supply voltage goes back up to 3.51V? Should we turn it on immediately? The answer is no. If the supply voltage hovers around the threshold voltage of 3.5V, the processor will oscillate between on and off, which is not desirable. So, instead, we use two threshold voltages. The lower threshold is used for turning the processor off, and the higher threshold is used for turning the procssor on. This is similar to the concept of a Schmitt-trigger, where we use hysteresis to avoid oscillation. 

The images below show examples of a brownout reset, one with a single threshold (left) and another with two thresholds. The top chart shows the supply voltage of the processor with respect to time. The bottom chart shows the processor's status, i.e. on or off, also with respect to time.