复位AVR
复位时所有的I/O 寄存器都被设置为初始值,程序从复位向量处开始执行。复位向量处的指令必须是绝对跳转JMP 指令,以使程序跳转到复位处理例程。如果程序永远不利用中断功能,中断向量可以由一般的程序代码所覆盖。这个处理方法同样适用于当复位向量位于应用程序区,中断向量位于Boot 区 — 或者反过来 — 的时候。Figure 15 为复位逻辑的电路图。Table 15 则定义了复位电路的电气参数。
复位源有效时I/O 端口立即复位为初始值。此时不要求任何时钟处于正常运行状态。
所有的复位信号消失之后,芯片内部的一个延迟计数器被激活,将内部复位的时间延长。这种处理方式使得在MCU 正常工作之前有一定的时间让电源达到稳定的电平。延迟计数器的溢出时间通过熔丝位SUT 与CKSEL 设定。延迟时间的选择请参见 P23“ 时钟源” 。
复位源
ATmega16 有5 个复位源: · 上电复位。电源电压低于上电复位门限 VPOT 时, MCU 复位。 · 外部复位。引脚 RESET 上的低电平持续时间大于最小脉冲宽度时MCU 复位。 · 看门狗复位。看门狗使能并且看门狗定时器溢出时复位发生。 · 掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限 VBOT 时MCU 即复位。 · JTAG AVR复位。复位寄存器为1时MCU复位。详见 P215“IEEE 1149.1 (JTAG) 边界扫描”。
Notes: 1. 电压下降时,只有电压低于VPOT 时复位才会发生。 2. 一些器件的VBOT 可能比标称的最小工作电压还要低。这些器件在生产测试过程中进行了VCC = VBOT 的测试,保证在VCC 下降到处理器无法正常工作之前产生掉电检测复位。ATmega16L 的测试条件为BODLEVEL=1, ATmega16 的测试条件为BODLEVEL=0。BODLEVEL=1 不适用于ATmega16。 |