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