复位AVR
复位时所有的 I/O 寄存器都被设置为初始值,程序从复位向量处开始执行。 对于ATmega168 复位向量处的指令必须是绝对跳转 JMP 指令,以使程序跳转到复位处理例程。 对于ATmega48与ATmega88复位向量处的指令必须是相对跳转RJMP指令,以使程序跳转到复位处理例程。如果程序永远不利用中断功能,中断向量可以由一般的程序代码所覆盖。这个处理方法同样适用于复位向量位于应用程序区,中断向量位于 Boot 区—或者反过来—的时候 ( 只适用于 ATmega88/168)。 Figure16 为复位逻辑的电路图。 Table20 则定义了复位电路的电气参数。
复位源有效时I/O 端口立即复位为初始值。此时不要求任何时钟处于正常运行状态。
所有的复位信号消失之后,芯片内部的一个延迟计数器被激活,将内部复位的时间延长。这种处理方式使得在 MCU 正常工作之前有一定的时间让电源达到稳定的电平。延迟计数器的溢出时间通过熔丝位 SUT 与 CKSEL 设定。延迟时间的选择请参见 P24”时钟源 ” 。
复位源
ATmega48/88/168 有4个复位源: · 上电复位。电源电压低于上电复位门限 VPOT 时, MCU 复位。 · 外部复位。引脚 RESET 上的低电平持续时间大于最小脉冲宽度时MCU 复位。 · 看门狗复位。看门狗使能并且看门狗定时器溢出时复位发生。 · 掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限 VBOT 时MCU 即复位。
|