上电复位芯片以电压阈值为准判断供电是否可用,比RC定时复位可靠一个数量级
MCU复位电路若只用"电阻+电容"做上电延时,供电爬升缓慢或跌落时芯片可能在电压不足的状态下"半复位"启动,造成嵌入式产品偶发死机、初始化错乱这类最难排查的隐性故障。工程上更可靠的方案是三引脚上电复位芯片:它在电源电压低于设定阈值时立即拉低复位信号,回升后再保持复位至少 140ms 才释放,让MCU 总在电压充足的条件下开始取指。本文基于《价廉物美的复位芯片》技术资料(贝利尔 B809/B810,可直接代换 MAX809/MAX810),给出六档阈值选型表、3.3V/5V 系统档位匹配方法、最小接线电路与 STM32 复位原因检测代码,适用于物联网终端、仪器仪表与各类工控主板的可靠启动设计。
现场反馈的典型故障是:设备上电后有时正常、有时不启动,面板灯半亮半灭,按一下复位键就恢复;或者批量生产 10 台上电测试有 1~2 台首启动失败。多数工程师第一反应查晶振、查程序,但真正原因常在复位释放时机与电源上升沿的配合上。RC 复位电路的原理是:上电瞬间电容电压为 0,复位脚保持低电平,RC 充电到 MCU 复位门槛电压后释放复位。它存在三个与生俱来的缺陷。
第一,没有电压阈值判断。RC 只"计时"不"测压",它不知道 VDD 是否真的稳定在最低工作电压之上。当系统带大容量电容、电池内阻大或开关电源软启动时,电源爬升斜率很慢,RC 计时结束并释放复位的时刻,VDD 可能仍处于 MCU 数据手册禁止工作的中间区(例如 3.3V 芯片在 1.5~2.5V 区间),此时取指执行必然出错。第二,时间常数受元件离散性左右。复位门槛本身分散、电容随温度与老化漂移,批量一致性差,同一批板子表现参差不齐。第三,无毛刺与跌落响应能力。电源上的快速跌落或干扰脉冲,RC 网络既不能快速响应拉低复位,也容易把干扰耦合进复位脚造成误复位。故障本质是:复位释放条件用的是"时间到了",而不是"电压够了"。
解决上述问题有三条技术路线,选型维度包括是否具备电压阈值判断、复位时序是否精确、能否响应电源跌落、静态功耗与成本。对比如表 1 所示。
| 对比维度 | RC 阻容上电复位 | 上电复位芯片(B809/B810、MAX809/MAX810 类) | 带看门狗复位监控 IC |
|---|---|---|---|
| 电压阈值判断 | 无,只计时 | 有,内部精密比较器逐档设定 | 有,阈值可选 |
| 复位释放时序 | 随 RC 离散漂移 | 出厂校准,回升后保持≥140ms | 同左,另加看门狗超时输出 |
| 电源跌落响应 | 无法快速响应 | 跌落穿阈值后约10µs内拉低复位 | 同左 |
| 低电压下复位有效性 | 不确定 | VCC 低至约1V仍保持复位有效 | 同左 |
| 外围元件 | 电阻+电容 | 仅芯片本身,SOT-23 三脚 | 同左 |
| 静态功耗 | 微安级 | 微安级,适合电池供电 | 略高,含看门狗振荡器 |
| 附加功能 | 无 | 无(B810 支持高电平复位型 MCU) | 死机自恢复看门狗 |
| 成本 | 最低(约0.1元级) | 低(约0.3~0.8元级) | 中等 |
带看门狗的复位监控 IC 解决的是"运行中死机自恢复"问题,与上电复位芯片解决"上电可靠启动"问题互补,二者并不冲突——程序跑飞自恢复可参考本站《看门狗与抗跑飞设计》一文;本文聚焦上电与掉电时刻的复位时序本身。
贝利尔公司推出的 B809(低电平复位输出)与 B810(高电平复位输出)是面向电源管理、嵌入式控制、无线通信、手持与智能仪器仪表的低成本复位芯片:工作电压范围宽、温度范围宽、功耗低、性能稳定,SOT-23 封装,温度范围 -40~+105℃,可直接代换 MAX809/MAX810(数据来源:《价廉物美的复位芯片》技术资料,其复位电压档位与 MAX809/MAX810 系列数据手册逐档对应)。复位输出为推挽结构:VCC 跌落穿过阈值后约 10µs 内把复位信号拉至有效电平;VCC 回升越过阈值后,内部定时器继续把复位保持至少 140ms 再释放(数据来源:MAX809/MAX810 数据手册,ADI)。B809/B810 各提供六档复位电压,如表 2 所示。
| 型号 | 复位电压(V) | 输出极性 | 典型适配系统 | 封装 | 温度范围 |
|---|---|---|---|---|---|
| B809LK3 / B810LK3 | 4.63 | 低有效 / 高有效 | 5V 系统(提前于 5V TTL 不确定区) | SOT-23 | -40~105℃ |
| B809MK3 / B810MK3 | 4.38 | 低有效 / 高有效 | 5V 系统 | SOT-23 | -40~105℃ |
| B809JK3 / B810JK3 | 4.00 | 低有效 / 高有效 | 5V 系统(允许较深跌落) | SOT-23 | -40~105℃ |
| B809TK3 / B810TK3 | 3.08 | 低有效 / 高有效 | 3.3V 系统 | SOT-23 | -40~105℃ |
| B809SK3 / B810SK3 | 2.93 | 低有效 / 高有效 | 3.3V / 3.0V 电池系统 | SOT-23 | -40~105℃ |
| B809RK3 / B810RK3 | 2.63 | 低有效 / 高有效 | 2.7~3.0V 深放电应用 | SOT-23 | -40~105℃ |
选型要点:低电平复位(RESET,B809)配 STM32 这类 NRST 低有效复位脚;高电平复位(RESET,B810)配传统 8051/STC 等 RST 高有效复位脚。多数现代 STM32、ARM Cortex-M 与 RISC-V MCU 均为低有效复位,选用 B809 即可,切勿把极性接反导致系统一直被复位或从不复位。
档位不是随便挑的,三条规则缺一不可。规则一:阈值必须高于 MCU 数据手册规定的最低可靠工作电压,保证"先复位、后运行";规则二:阈值必须低于系统供电在正常纹波下的最低点,否则正常波动就误复位;规则三:阈值要低于板上稳压器(LDO)在满载压差下的最低输出,避免启动大电流瞬间被误判为掉电。工程建议对照如表 3。
| 系统供电方案 | 推荐档位 | 设计说明 |
|---|---|---|
| 5V 稳压供电(TTL/8051/AVR 5V) | L=4.63V 或 M=4.38V | 在 5V 器件进入逻辑不确定区(约4.5V以下)之前先复位,余量约0.1~0.3V |
| 3.3V LDO 供电(STM32 等 3.3V MCU) | T=3.08V 或 S=2.93V | 阈值落在 2.9~3.1V,低于 LDO 正常输出又高于 MCU 低电压告警点 |
| 3.0V 锂亚/锂锰电池直供 | S=2.93V 或 R=2.63V | 电池平台 3.3V 缓降,选低档避免放电中段频繁复位,末端由 2.63V 兜底 |
| 2.7~3.0V 低压系统 | R=2.63V | 阈值须高于 MCU 最低工作电压(如 2.0V 级器件)且留出 0.3V 以上裕量 |
判断方法是查 MCU 手册的"电源特性"章节,取最低 VDD 值加 0.3~0.5V 裕量作为复位阈值下限,再与稳压器最差工况输出比较取交集。若系统对掉电保存数据有要求(见本站《EEPROM 掉电数据保护》),复位芯片的掉电响应还能为写保护与备份提供触发信号,一条 RESET 沿可同时驱动 MCU 复位与掉电中断检测。
B809/B810 为 SOT-23 三引脚,引脚功能与 MAX809/MAX810 兼容:1 脚 GND、2 脚复位输出(RESET/RESET)、3 脚 VCC。最小系统接线如下示意。
系统电源 3.3V ──┬──────── VCC(3脚)
│ │
100nF B809(B810) 复位输出(2脚) ── MCU NRST(RST)
│ │
GND ────── GND(1脚)
8051/STC 高电平复位型:选 B810,2脚接 MCU RST
STM32/Cortex-M 低电平复位型:选 B809,2脚接 MCU NRST
要点一:复位芯片的 VCC 就近放置并加 0.1µF 去耦,采样点应尽量靠近 MCU 电源引脚,避免在长 PCB 走线的远端采样到与 MCU 不一致的电压。要点二:B809/MAX809 复位输出为推挽结构、低电平有效时主动驱动,无需像开漏器件那样外加上拉电阻;内部比较器对电源快瞬变有免疫能力,无需外接滤波元件(数据来源:MAX809/MAX810 数据手册)。要点三:复位走线远离功率开关与时钟节点,必要时在 MCU 复位脚对地加 100nF 电容吸收耦合噪声,与复位芯片输出并联后只会略微改变边沿,不影响直流电平。要点四:需要按键手动复位时注意——推挽输出的 B809 输出高电平时不能直接把按键对地短接(会与输出级"对抗"),应选用开漏输出的复位监控 IC(按键可直接并接构成线与),或通过串联电阻的间接方式实现。
上电时序:VCC 开始上升期间复位一直有效;VCC 越过阈值后芯片继续维持复位至少 140ms(该延时覆盖晶振起振与内部 LDO 稳定);随后复位释放,MCU 从复位向量开始执行。掉电/跌落时序:VCC 下穿阈值约 10µs 内复位有效,把 MCU 拉回已知状态;即使 VCC 低至 1V 左右复位输出仍保持有效,防止电池深度放电时程序半电压乱跑(数据来源:MAX809/MAX810 数据手册)。
硬件复位做好后,软件还应区分"上电复位、外部复位、看门狗复位、软件复位",这样产品在出厂测试与现场运行中能自动统计异常复位率,定位是掉电还是跑飞。STM32 的 RCC 控制/状态寄存器(RCC_CSR)记录了复位源标志,示例代码如下。
/* STM32 复位原因识别(RCC_CSR 各标志位,具体位定义见参考手册) */
uint8_t g_reset_src; /* bit7=上电 bit6=外部 bit5=软复位 bit4=独立看门狗 bit3=窗口看门狗 */
void startup_analyze_reset(void) {
uint32_t csr = RCC->CSR;
g_reset_src = 0;
if (csr & RCC_CSR_PORRSTF) g_reset_src |= 0x80; /* 上电/欠压复位(POR/PDR) */
if (csr & RCC_CSR_PINRSTF) g_reset_src |= 0x40; /* NRST 引脚外部复位(复位芯片触发) */
if (csr & RCC_CSR_SFTRSTF) g_reset_src |= 0x20; /* 软件复位 */
if (csr & RCC_CSR_IWDGRSTF) g_reset_src |= 0x10; /* 独立看门狗复位 */
if (csr & RCC_CSR_WWDGRSTF) g_reset_src |= 0x08; /* 窗口看门狗复位 */
__HAL_RCC_CLEAR_RESET_FLAGS(); /* RMVF 清标志,避免下次误读 */
if (g_reset_src & (0x10 | 0x08)) {
/* 看门狗复位:记录复位计数到EEPROM,降级运行或上报 */
abnormal_reset_count_up();
}
/* 若同时为 0 且此前已运行过,说明发生了手册未列的欠压场景,需检查电源 */
}
将复位源字节随遥测帧上报,配合"异常复位计数"即可在物联网平台上远程监控设备的复位健康度:某设备看门狗复位计数持续增长,说明现场存在强干扰或程序缺陷;上电复位占比异常则提示供电与复位电路匹配不当。这比等用户报修"死机了"再排查高效得多。
复位电路设计清单(推荐顺序)
- ① 查 MCU 手册确认复位极性(低有效/高有效),选 B809 或 B810;
- ② 按"高于 MCU 最低工作电压、低于 LDO 最差输出"两条线选阈值档位;
- ③ 复位芯片 VCC 就近采样 + 0.1µF 去耦,复位走线短直远离功率节点;
- ④ 需要按键手动复位时选开漏输出型号,勿对推挽输出直接短接按键;
- ⑤ 软件启动即读 RCC_CSR 区分复位源、清标志、累计异常复位次数。
总结:MCU 复位电路的正确判据是"电压阈值 + 时序保证",而不是"RC 时间常数"。用 B809/B810 这类三脚上电复位芯片,以约 0.3~0.8 元成本换掉 RC 复位,即可获得 10µs 级跌落响应、≥140ms 复位延时与 1V 以下仍有效的复位保持能力,从根上消除上电偶发启动失败;再叠加 STM32 复位源检测,复位健康度即可量化观测。RC 复位适合对成本极度敏感的玩具级产品,凡涉及数据安全、长期无人值守的嵌入式与物联网设备,都应升级为上电复位芯片方案。
本文基于《价廉物美的复位芯片》(B809/B810 上电复位芯片技术资料)与 MAX809/MAX810 数据手册等资料整理优化。
沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付
电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应