AVR复位时所有的I/O 寄存器都被设置为初始值,程序从复位向量处开始执行。复位向量处的 指令必须是绝对跳转JMP 指令,以使程序跳转到复位处理例程。
AVR的复位信号源有五个:
上电复位。电源电压低于上电复位门限 VPOT 时, MCU 复位。
外部复位。引脚 RESET 上的低电平持续时间大于最小脉冲宽度时MCU 复位。
看门狗复位。看门狗使能并且看门狗定时器溢出时复位发生。
掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限 VBOT 时 MCU 即复位。
JTAG AVR复位。复位寄存器为1 时MCU 复位。
1.上位复位
上电复位(POR) 脉冲由片内检测电路产生,POR电路保证器件在上电时复位。VCC 达到上电门限电压后触发延迟计数器。在计数器溢
出之前器件一直保持为复位状态。当VCC 下降时,只要低于检测门限,RESET 信号立即 生效。
2.外部复位
外部复位由外加于RESET 引脚的低电平产生。当复位低电平持续时间大于最小脉冲宽度 时 即触发复位过程,即使此时并没有时钟信号在运行。当外加信号达到 复位门限电压VRST( 上升沿) 时, tTOUT 延时周期开始。延时结束后MCU 即启动。
3.看门狗复位
看门狗定时器溢出时将产生持续时间为1 个CK 周期的复位脉冲。在脉冲的下降沿,延时 定时器开始对tTOUT 记数
4.掉电检测复位
BOD 电路的开关由熔丝位BODEN控制。当BOD使能后(BODEN被编程),一旦VCC下降到 触发电平以下(VBOT-, Figure 19), BOD 复位立即被激发。当VCC 上升到触发电平以上 时(VBOT+,Figure 19),延时计数器开始计数,一旦超过溢出时间tTOUT,MCU即恢复工作。
5.JTAG AVR复位
JTAG通过复位寄存器mcur,复位寄存器为1 时MCU 复位。通过JTAG 指令AVR_RESET 可以使JTAG 复位寄存器置位,并引发MCU 复位,并使 JTRF 置位。上电复位将使其清零,也可以通过写”0” 来清除。
6.MCU 控制和状态寄存器提供了有关引起MCU 复位的复位源的信息。
MCU 控制和状态寄存器提供了有关引起MCU 复位的复位源的信息。
1.Bit 4 – JTRF: JTAG 复位标志
通过JTAG 指令AVR_RESET 可以使JTAG 复位寄存器置位,并引发MCU 复位,并使
2.JTRF 置位。上电复位将使其清零,也可以通过写”0” 来清除。
Bit 3 – WDRF: 看门狗复位标志
看门狗复位发生时置位。上电复位将使其清零,也可以通过写”0” 来清除。
3.Bit 2 – BORF: 掉电检测复位标志
掉电检测复位发生时置位。上电复位将使其清零,也可以通过写”0” 来清除。
4.Bit 1 – EXTRF: 外部复位标志
外部复位发生时置位。上电复位将使其清零,也可以通过写”0” 来清除。
5.Bit 0 – PORF: 上电复位标志
上电复位发生时置位。只能通过写”0” 来清除。
为了使用这些复位标志来识别复位条件,用户应该尽早读取此寄存器的数据,然后将其复 位。如果在其他复位发生之前将此寄存器复位,则后续复位源可以通过检查复位标志来了解。