江协科技STM32学习笔记补充之003 :STM32复位电路的详细分析

电路作用与每个器件

  • R1(10 kΩ,上拉到 3V3)

    让 NRST 在无外力时保持高电平=不复位;同时与电容形成 RC,决定上电复位延时。阻值不能太小(否则调试器或芯片复位驱动下拉电流太大),10 kΩ是通用值。

  • K1(按键到 GND)

    人工复位。按下立即把 NRST 拉低=异步复位;松开后靠 R1 把 NRST 拉高,电容让上升沿变缓,起到去抖与延时作用。

  • C3(0.1 µF 到 GND)

    提供 上电/松手后的延时与抗干扰。抑制尖峰与毛刺,避免误复位;也能在电源很慢爬升时,保证"电源稳定后再释放复位"。

多数 STM32 的 NRST 口内置一只约 40--50 kΩ 的弱上拉;外接 10 kΩ 后并联等效约 8 kΩ,有利于抗干扰但不会过载拉低驱动。

上电与松手时序(为啥能"稳")

上电或松开按键后,NRST 电压按 RC 充电关系上升:

V_{NRST}(t) = V_{DD}\\big(1-e\^{-t/RC}\\big), \\quad R\\approx 10\\,\\text{k}\\Omega,\\ C=0.1\\,\\mu\\text{F}

  • RC = 10k × 0.1µF = 1 ms

  • 当 NRST 的上升阈值取不同比例时,释放复位的近似时间:

    • 0.5·VDD:t≈0.693 RC≈0.69t \\approx 0.693\\,RC \\approx 0.69t≈0.693RC≈0.69 ms

    • 0.7·VDD:t≈1.20 RC≈1.2t \\approx 1.20\\,RC \\approx 1.2t≈1.20RC≈1.2 ms

    • 0.8·VDD:t≈1.61 RC≈1.6t \\approx 1.61\\,RC \\approx 1.6t≈1.61RC≈1.6 ms

这 1~2 ms 的延时确保:

  1. 上电后 等电源稳定再起跑

  2. 按键松开回弹的抖动被 RC 滤掉,不会刚松手就误判为已高电平。

传统"复位按键抖动"主要发生在松开瞬间,RC 能把高沿拉得更迟缓、更干净。

为何外部 RC 仍然必要(芯片已带 POR/BOR)

STM32 确有 上电复位 POR / 检测 PDR / 掉电复位 BOR,但外部 RC 仍然能提供:

  • 慢爬升电源噪声/浪涌更强的免疫力;

  • 配合 BOOT0(在 NRST 上升沿锁存)保证其电平已稳定;

  • 可靠的人工复位调试器控制(ST-Link 的 NRST 为开漏下拉,10 kΩ 不会影响)。

参数怎么选

  • 想更长的上电延时:把 C3 改为 1 µF(得 ~10 ms)、或 R1 改为 47 kΩ(得 ~4.7 ms)。

  • 干扰环境很重 (电机、继电器旁):可把 C3 提到 220 nF~1 µF;或在 NRST 与芯片脚之间串 100--220 Ω 小电阻以限流、抑制快沿。(多数场景不必加)

  • 按键去抖:RC 已基本够用;若仍不稳,检查按键到地的走线与 ESD 路径。

布局布线建议

  • R1 与 C3 紧贴 MCU 的 NRST 脚放置,回地要短直;避免 NRST 线路穿越强噪声区;必要时用地铜"围一圈"。

  • 复位按键尽量靠近 MCU 一侧,长线可并联 小电容(几 pF~几十 pF) 或增加串阻,避免外界耦合。

  • 调试接口(SWD)到 NRST 的线也要短,避免形成天线引入毛刺。

常见问题与诊断

  • 无缘无故复位:多半是 NRST 进了毛刺或 VDD 掉电触发 BOR;示波看 NRST 是否出现短暂低脉冲,必要时增大 C3。

  • 复位牵连调试异常 :R 太小或 C 太大都会让调试器拉不动或复位释放太慢;通常 10 kΩ + 100 nF 最稳妥。

  • 上电跑飞:电源爬升慢或 BOOT0 未稳,适当提高 RC 延时,或检查 BOOT0 的下拉是否足够(典型 10 kΩ→GND)。


结论

这套 10 kΩ 上拉 + 0.1 µF 到地 + 复位按键 的 NRST 电路,是 STM32 的经典、可靠做法。它在上电、人工复位与抗干扰方面提供恰到好处的延时与滤波,既不影响调试器拉低,也能保证系统在电源稳定后再释放复位。若现场环境更严苛,只需按需微调 R 或 C 即可。

如何理解,当按下按键后松开。这个时候电容相当于短路状态。当电容充满电后,电容相当于断路状态

"电容相当于短路 / 断路"的理解,来源于电容在不同工作阶段的等效电路模型,是一个很重要的电路分析思路

1. 电容的本质

电容的电流、电压关系是:

i = C \\dfrac{dv}{dt}

意思是:电容上的电压不能突变,电容两端电压的变化速度决定了电流大小。


2. 按键按下(NRST 拉到 GND)

  • 这时电容一端被拉到 GND ,另一端直接和按键相连,所以电容被迅速放电,电容两端电压接近 0。

  • 在电路角度:电容放电时瞬间电流较大,可以等效为短路,即电容就像一根导线,快速把残余电荷释放掉。


3. 松开按键(NRST 松开,上拉电阻+电容)

  • 松开后,R1 将电容上端拉向 3.3V

  • 电容两端电压从 0 V 开始充电,上升是一个指数曲线:

    V(t) = V_{DD}\\left(1 - e\^{-t/RC}\\right)

  • 在刚开始时,电容电压为 0 V,相当于电容"还没充电",此时它阻止电压突然跳变 → 等效为短路。

  • 随着电容逐渐充满电,电流越来越小,最终趋近于 0,相当于断路(开路),电容两端电压稳定在 VDD。


4. 总结直观理解

  • 刚接通电源或松开按键瞬间:电容两端电压不能立刻上升 → 电容就像短路,强行"拖住"节点电压不上升。

  • 电容充电完成后:电流停止流动 → 电容就像开路,不再影响电路。


👉 所以电容在瞬态过程中就是一个"短路到开路的过渡元件":

  • 瞬态时短路(抑制电压突变,提供延时),

  • 稳态时开路(不影响直流工作点)。

画出了一个 等效电路状态图 ,更直观地展示了电容在 STM32 复位电路中,按键松开后从 短路 → 电阻状 → 开路 的演变过程:


阶段 1:松手瞬间(电容≈短路)

  • 电容两端电压 = 0 V

  • 电容强行"拖住"NRST 节点不让它马上升高 → 等效短路

  • MCU 保持在复位状态


阶段 2:充电过程(电容=电阻状)

  • 电容开始充电,电压逐渐上升

  • 电容阻抗介于 0 ~ ∞ 之间 → 等效成"电阻"

  • NRST 电压逐渐爬升,接近阈值(如 0.7·VDD)时,MCU 开始退出复位


阶段 3:稳态(电容≈开路)

  • 电容充满电,电流≈0

  • 电容相当于开路,不再影响电路

  • 此时 NRST 高电平稳定,由上拉电阻维持


📌 这样你可以很清楚地看到:电容就是通过"先短路、后逐渐放开、最后开路"的方式,保证复位信号有 稳定的低电平保持 + 平滑的释放上升沿

相关推荐
Lay_鑫辰3 小时前
西门子诊断-状态和错误位(“轴”工艺对象 V1...3)
服务器·网络·单片机·嵌入式硬件·自动化
无垠的广袤5 小时前
【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX
linux·python·嵌入式硬件·物联网·树莓派·emqx·工业物联网
雲烟7 小时前
嵌入式设备EMC安规检测参考
网络·单片机·嵌入式硬件
泽虞7 小时前
《STM32单片机开发》p7
笔记·stm32·单片机·嵌入式硬件
田甲8 小时前
【STM32】 数码管驱动
stm32·单片机·嵌入式硬件
up向上up8 小时前
基于51单片机垃圾箱自动分类加料机快递物流分拣器系统设计
单片机·嵌入式硬件·51单片机
纳祥科技17 小时前
Switch快充方案,内置GaN,集成了多个独立芯片
单片机
单片机日志18 小时前
【单片机毕业设计】【mcugc-mcu826】基于单片机的智能风扇系统设计
stm32·单片机·嵌入式硬件·毕业设计·智能家居·课程设计·电子信息
松涛和鸣19 小时前
从零开始理解 C 语言函数指针与回调机制
linux·c语言·开发语言·嵌入式硬件·排序算法
小曹要微笑1 天前
STM32F7 时钟树简讲(快速入门)
c语言·stm32·单片机·嵌入式硬件·算法