三种复位形式

STM32F10xxx 支持三种复位形式,分别为系统复位、上电复位和备份区域复位。

系统复位

当发生以下任一事件时,产生一个系统复位:

  1. NRST引脚上的低电平(外部复位)
  2. 窗口看门狗计数终止(WWDG复位)
  3. 独立看门狗计数终止(IWDG复位)
  4. 软件复位(SW复位)
  5. 低功耗管理复位

除了时钟控制器的 RCC_CSR 寄存器中的复位标志位和备份区域中的寄存器(以外,系统 复位将复位所有寄存器至它们的复位状态。

可通过查看 RCC_CSR 控制状态寄存器中的复位状态标志位识别复位事件来源。

电源复位

当以下事件中之一发生时,产生电源复位:

  1. 上电/掉电复位(POR/PDR复位)
  2. 从待机模式中返回

电源复位将复位除了备份区域外的所有寄存器。

图中复位源最终作用于 RESET 引脚,并在复位过程中保持低电平。复位入口向量被固定在地址0x0000_0004。

芯片内部的复位信号会在 NRST 引脚上输出,脉冲发生器保证每一个(外部或内部)复位源都能有至少 20us 的脉冲延时;当 NRST 引脚被拉低产生外部复位时,它将产生复位脉冲。

STM32复位电路

备份区域复位

备份区域拥有两个专门的复位,它们只影响备份区域

当以下时间中之一发生时,产生备份区域复位。

  1. 软件复位,备份区域复位可由设置备份域控制寄存器 中的 BDRST 位产生。
  2. 在 VDD 和 VBAT 两者掉电的前提下,VDD 或 VBAT上电将引发备份区域复位。

复位电路

复位电路的作用是为了使系统恢复到初始状态。

平常我们常用的复位方式有两种,一种是 NRST 引脚的低电平复位,通过案件复位电路给这个引脚一个低电平,让系统完成复位;另一种是上电复位。

STM32复位电路_1

上图是一个常见的按键复位电路

上电复位:

当 3.3v 电源加到图示位置时,RC 电路导通,NRST 与地的电位差为电容与地的电位差。NRST与地的电位差只有电容充电完毕后才会达到 3.3V,所以在电容的充电过程中,给芯片引脚的信号都是低电平。根据RC电路充电方程式V(t) = U + A * e -(t/RC),只要合理的选择好 R 跟 C 的值就可以保证充电时间大于芯片复位所要求的时间。

按键复位:

电路上电容充电完毕后,NRST 引脚为高电平,单片机处于正常工作状态,若想再对单片机复位只需要按下按键即可。按下按键,NRST 接地,芯片复位。电容 C5 在这里的作用是按键消抖,防止在按键刚刚接触/松开时的电平抖动引发误动作,由于电容电压不会突变,所以采用电容滤波,防止抖动复位误动作。由于人的动作再快也会使按钮保持接通达数十毫秒,所以完全能够满足复位的时间要求。

复位引脚可以悬空吗?

作为复位引脚,一般不宜悬空。 不加复位按键,至少要加 RC 上电复位电路。

STM32 在 NRST 引脚内接了一个上拉电阻,典型值为 40K,为了防止外部干扰,STM32 数据手册上建议外接一个对地电容

STM32复位电路_电容保护

如果用户认为内接的上拉电阻太弱,则可以自己再接一个上拉电阻,因此就形成了常见的外部阻容复位电路。