EmbeddedRelated.com

Brown-out Reset

Category: Power | Also known as: brownout, brown-out, BOR, brown-out detection

A brown-out reset (BOR) is a hardware supervisory function that holds a microcontroller or SoC in reset when the supply voltage drops below a defined threshold, preventing erratic operation caused by insufficient voltage. When the supply recovers above the threshold (plus any hysteresis), reset is released and the device restarts cleanly.

In practice

BOR is commonly found as a built-in peripheral on many modern MCUs, including the STM32 family, PIC devices, AVR/megaAVR, MSP430, and many others, though it is not universal and some parts rely on external supervisors or different voltage-monitoring schemes. Where present, the threshold voltage and hysteresis are often configurable via fuse bits, option bytes, or register settings, though on some devices the threshold is fixed or only partially configurable. For example, STM32 devices offer several programmable BOR levels (the exact range varies by product line and part number); PIC microcontrollers have historically offered BOR voltage options selectable at programming time through configuration words. On simpler or older devices, a fixed threshold with limited or no configuration may be the only option.

The core motivation is correctness under real power conditions. When supply voltage sags -- due to a weak battery, a long cable run, an inrush event, or a regulator hiccup -- the CPU may execute instructions incorrectly, corrupt flash or EEPROM write operations, or corrupt peripheral state, all while appearing to run. BOR ensures the MCU stalls rather than misbehaves. This makes it especially important in battery-powered and automotive systems where supply rail variation is common. The blog post "How to Design Reliable Reset Circuits for Embedded Microcontrollers" discusses BOR alongside external supervisory ICs in the context of building robust reset networks.

BOR should not be confused with the power-on reset (POR), which fires only at initial power-up. BOR monitors the supply continuously during operation. Some MCU families implement both as distinct circuits with separate thresholds; others combine them. It is worth reading the relevant chapter of the datasheet carefully, because the BOR threshold on a given device may not be programmable, and the reset release behavior (immediate vs. after a stabilization delay) varies between vendors and even between product lines from the same vendor.

A practical pitfall is setting the BOR threshold too low, leaving a window in which the MCU runs unreliably before reset fires, or too high, causing nuisance resets from brief supply dips that the rest of the system tolerates without issue. When the built-in BOR circuit does not offer sufficient accuracy or response time -- for example, in safety-critical or high-precision applications -- an external voltage supervisor IC (sometimes called a reset IC or watchdog supervisor) provides tighter guaranteed thresholds and faster response. These external parts, such as the TPS3839 or MAX816 families, complement or replace the internal BOR function.

Discussed on EmbeddedRelated

Frequently asked

What is the difference between a brown-out reset and a power-on reset (POR)?
A power-on reset fires once when the supply ramps up from zero at initial power application. A BOR circuit monitors the supply continuously during normal operation and resets the device if voltage falls below the configured threshold at any point. On many MCUs -- for example, STM32 and various AVR devices -- both circuits exist in parallel with separate (though sometimes overlapping) threshold levels, though the exact relationship between POR and BOR thresholds varies by subfamily and implementation.
How do I choose the right BOR threshold voltage?
Set the threshold at or slightly above the minimum supply voltage at which your specific MCU is guaranteed to operate correctly at your target clock frequency. Datasheets list minimum operating voltage as a function of clock speed; running a high-frequency core at a voltage below its rated minimum is a common source of hard-to-reproduce faults. Leave enough headroom above the threshold for any hysteresis the circuit adds, so that a recovering supply does not cause repeated resets.
Should I rely on the internal BOR or add an external supervisor IC?
The internal BOR is adequate for many designs, but external supervisors offer tighter absolute accuracy (often +/-1.5% vs. +/-5% or more on internal circuits), faster response times, and features like watchdog integration or manual reset input. For safety-critical applications, medical devices, or automotive designs that must meet specific reset timing requirements, an external supervisor is often the better choice. The blog post 'How to Design Reliable Reset Circuits for Embedded Microcontrollers' covers the tradeoffs in more detail.
Does enabling BOR increase current consumption?
Yes, typically by a small amount. The BOR comparator circuit must remain powered during normal operation and often during low-power sleep modes. On some devices, the datasheet specifies BOR quiescent current on the order of a few microamps, though the actual figure depends heavily on the specific part and operating mode. In deeply power-constrained applications, check whether the BOR circuit can be disabled during sleep, and whether that tradeoff is acceptable given your supply stability.
Can a brown-out corrupt flash or EEPROM memory?
Yes, and this is one of the primary reasons BOR exists. Flash and EEPROM write operations require a stable minimum voltage throughout the entire write cycle. If voltage collapses mid-write, the memory cell may be left in an indeterminate state, corrupting the stored data or even the program itself. BOR prevents the MCU from initiating or continuing such operations when the supply is marginal. Some MCUs also have separate low-voltage detection (LVD) interrupts that allow firmware to abort pending writes before the BOR threshold is reached.

Differentiators vs similar concepts

BOR is often confused with power-on reset (POR) and low-voltage detection (LVD). POR is a one-shot event at initial power-up; BOR monitors continuously during operation. LVD (found on PIC, Kinetis, and other families) is a similar comparator circuit but on many devices generates an interrupt rather than an immediate reset, giving firmware a chance to take corrective action before a hard reset occurs; however, some implementations allow LVD to trigger a reset directly or offer configurable behavior. Some vendors use the terms interchangeably or nest one inside the other, so checking the datasheet's reset chapter for the specific device is essential.