先收集资料,了解当前常用的基础理论和实现方式
复位
- 初始化微控制器内部电路
- 将所有寄存器恢复成默认值
- 确认MCU的工作模式
- 禁止全局中断
- 关闭外设
- 将IO设置为高阻输入状态
- 等待时钟趋于稳定
- 从固定地址取得复位向量并开始执行
造成复位的原因
-
有多种引起复位的因素,有相应的标志位和向量(可以进行不同的初始化流程)
- 上电复位
- 电源丢失复位
- 外部产生的手动复位信号
- 执行复位指令引发的复位
- 非法指令引起的复位
- 时钟丢失引起的复位
- 看门狗复位
1. ARM复位源类型
ARM处理器的复位源类型如表所示,包括上电复位、外部硬件复位、内部硬复位(包括锁相环失锁复位、软件看门狗复位、检错停机复位和调试端口硬复位)、JTAG复位、外部软件复位和内部软件复位(包括调试端口软复位和JTAG软复位)。
所有的这些复位源都被引入到复位控制器,并且根据不同的复位源产生不同的复位动作。
ARM处理器还内置有复位控制器和硬件复位配置控制器,其中的复位控制器功能是确定复位原因、同步复位模块(若有必要的话),并且复位相应片内的逻辑模块(包括ARM嵌入式处理器模块、系统接口单元模块和通信处理器模块等)。
2. 复位工作原理
为保证ARM芯片在电源未达到所要求的电平时,不会产生不受控制的状态,必须在系统中加入电源监控和复位电路,由该电路确保在系统加电过程中,在内核电压和外围端口电压达到要求之前,ARM芯片始终处于复位状态,直到内核电压和外围接口电压达到所要求的电平。系统复位过程如图所示。
同时,如果电源电压一旦降到门限值以下,则强制芯片进入复位状态,以确保系统稳定工作。对于复位电路的设计,一方面应确保复位低电平时间足够长(一般需要20ms以上),以保证ARM可靠复位;另一方面应保证稳定性良好,以防止ARM误复位。
此外,ARM系统中还可以用硬件监控复位(看门狗电路,如硬件监控芯片MAX706等)。这是由于ARM系统的时钟频率较高,在运行时难以避免发生干扰和被干扰的现象,严重时系统会出现死机或程序异常现象,可以采用“看门狗”(Watch dog)电路来代替RC电路。这种电路除了具有上电复位功能外,还具有监视系统运行并在系统发生故障或死机时再次进行复位的能力。
该电路的功能为:当看门狗使能时,系统如果没有在规定时间间隔内对看门狗电路进行刷新,则产生复位信号,使系统重新从初始状态开始执行,以提高系统抗干扰能力。看门狗电路在上电复位后,应处于禁止状态,看门狗电路通过将系统控制寄存器0(Watchdog)中的控制位WDEN置1来使能。看门狗电路使能后,通过对看门狗刷新口做写操作,来刷新看门狗。
参考
1、作者 | 博文 |
深入理解复位---同步复位,异步复位,异步复位同步释放(含多时钟域) | |
RTL设计- 多时钟域按顺序复位释放 | |
fpga复位的几种方法 | |
异步复位同步释放_异步复位,同步释放 | |
不得不读的 FPGA 设计白皮书——Xilinx FPGA 复位策略白皮书翻译(WP272)【FPGA探索者】 | |
复位电路 | |
STM32的复位方式:硬件复位、软件复位(看门狗复位和系统复位) | |
关于复位芯片MAX809,看这一篇就够了 | |
复位电路之深入理解 | |