STM32复位电路解析
前言
今天讲讲STM32的复位电路。单片机基本都有复位功能,做开发板的厂商都需要做复位电路来确保复位功能可用,我写这篇文章主要有两个原因😎
- 因为这个复位电路其实是很简单的,所以中文互联网下关于复位电路的解析太少
- 大多数教程都不讲人话,对不懂电路设计的新手很难看懂
所以我结合了以往的经验,用最简单的方式实现讲讲复位电路的原理
解析
可以看这张图,是一个经典的复位电路设计,我截取了正点原子的stm32精英开发板的设计,这里先说结论,你先记住:这个电路是采取低电平复位的。
他一共只会有两种状态
- 上电复位
- 手动按下按键进行复位
功能一:上电复位 (Power-On Reset)
这个功能,就好比给MCU一个“开机启动流程”,确保它在刚通电的时候,能在一个稳定、可预测的状态下“醒来”,而不是迷迷糊糊地乱跑。
- 通电瞬间 (t=0)——“电容还没睡醒”:我们先把复位按键那一路就擦掉,先不看,可以看到,VCC3.3经过R2电阻后,一条前往了RESET通往stm32芯片内部,一条前往了C10电容接地,当VCC3.3V电源刚接通的那一刹那,电容器C10两端的电压可不能“突变”(这里电容的一个非常重要的特性)!因为它还没来得及充电呢,所以电压还是0V。
- 芯片进入复位状态:由于 C10 连接在
RESET
引脚和 GND 之间,根据并联电路电压相等的规律,所以RESET
引脚在通电瞬间的电压也为 0V(低电平)。STM32 芯片检测到RESET
引脚为低电平,就会进入并保持在复位状态。 - RC充电延时:紧接着,电流从 VCC3.3 通过上拉电阻 R2 开始向电容 C10 充电。
RESET
引脚上的电压(即C10两端的电压)会按照 RC 充电曲线逐渐上升。 - 芯片解除复位:当
RESET
引脚的电压上升到超过 STM32 芯片的复位阈值电压(一个特定的电压值,例如 1.8V)时,芯片的复位逻辑便会释放,CPU 开始从启动地址执行程序。
这个延时的意义是什么? 它确保了在 CPU 开始工作之前,系统的电源(VCC3.3)已经完全稳定下来,避免了因电源不稳而导致的程序启动异常。这个延时的时间由 R2 和 C10 的值决定,不过鉴于是新手向,这里我们不深入探讨这两个值与延时时间的关系
功能二:手动复位 (Manual Reset)
这个功能就更直接了,它允许咱们用户或者外部设备,随时随地都能强制STM32“重启”一次。
- 正常工作时:按键没有被按下。C10 已经充满电,如下图所示,我们可以直接认为电容那一路是断路,说人话就是电流不会从C10电容那一路通过,VCC3.3经过R2电阻与``RESET
相连,
RESET` 引脚被 R2 稳定地保持在 3.3V 高电平,MCU 正常运行。
- 按下按键时:当按下按键,开关闭合,它会立即将
RESET
引脚直接连接到 GND。
这里我懒得P图了,你就脑部一下按键是按下的状态吧😋
-
芯片进入复位状态:还是根据电路的并联电压相等规律,VCC3.3V被直接接到了GND,
RESET
引脚的电平瞬间被拉低到 0V。同时,电容 C10 通过这个闭合的开关被快速放电。芯片检测到低电平后,立即进入复位状态。 -
松开按键时:当用户松开按键,开关断开。此时的情况就和“上电复位”完全一样了:
RESET
引脚为 0V,R2 再次开始对 C10 充电,直到电压超过复位阈值,芯片才会重新启动。
附加功能:滤波抗干扰
电容 C10 的存在,使得 RESET
引脚对电源或空间中的一些微小、快速的噪声脉冲不那么敏感。一个短暂的负向毛刺信号可能没有足够的能量将 C10 的电压拉到复位阈值以下,从而避免了意外的复位,增强了系统的稳定性。
总结
其实这个不单止是stm32的复位电路解析,基本上在思路上,所有单片机都是复位电路都是适用的,只要你明白了其中的原理,就能快速判断出这个单片机是低电平复位还是高电平复位