AVR应用笔记 AVR单片机内核剖析 ATmega128 看门狗定时器

ATmega128 看门狗定时器

以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!

看门狗定时器

看门狗定时器由独立的1 Mhz 片内振荡器驱动。这是VCC = 5V 时的典型值。请参见特性 数据以了解其他VCC 电平下的典型值。通过设置看门狗定时器的预分频器可以调节看门狗 复位的时间间隔,如 P 53Table 22 所示。看门狗复位指令WDR 用来复位看门狗定时器。 此外,禁止看门狗定时器或发生复位时定时器也被复位。复位时间有8 个选项。如果没有 及时复位定时器,一旦时间超过复位周期,ATmega128 就复位,并执行复位向量指向的 程序。具体的看门狗复位时序在P 50 有说明。

为了防止无意之间禁止看门狗定时器或改变了复位时间,根据熔丝位M103C 和 WDTON 芯片提供了3 个不同的保护级别,如Table 21. 所示。安全级别0 相应于ATmega103 的 设置。使能看门狗定时器则没有限制。请参考P 54“ 改变看门狗定时器配置的时间序列” 。

ATmega128 WDT配置表 看门狗定时器

看门狗定时器控制寄存器- WDTCR

ATmega128 看门狗定时器控制寄存器- WDTCR

• Bits 7..5 – Res: 保留
保留位,读操作返回值为零。

• Bit 4 – WDCE: 看门狗修改使能
清零WDE 时必须先置位WDCE,否则不能禁止看门狗。一旦置位,硬件将在紧接的4 个 时钟周期之后将其清零。请参考有关WDE 的说明来禁止看门狗。工作于安全级别1 和2 时也必须置位WDCE 以修改预分频器的数据,如P 54 “ 改变看门狗定时器配置的时间序 列” 所示。

• Bit 3 – WDE: 看门狗使能
WDE为"1“时,看门狗使能,否则看门狗将被禁止。只有在WDCE为"1“时WDE才能清零。以下为关闭看门狗的步骤:
1. 在同一个指令内对WDCE 和WDE 写"1“,即使WDE 已经为"1“。
2. 在紧接的4 个时钟周期之内对WDE 写"0”。
工作于安全级别2 时是永远无法禁止看门狗定时器的。参见 P 54 “ 改变看门狗定时器配置的时间序列” 。

• Bits 2..0 – WDP2, WDP1, WDP0: 看门狗定时器预分频器2, 1, 和0
WDP2、WDP1 和WDP0 决定看门狗定时器的预分频器,如Table 22 所示。

ATmega128 看门狗定时器预分频器选项

下面的例子分别用汇编和C 实现了关闭WDT 的操作。在此假定中断处于用户控制之下 (比如禁止全局中断) ,因而在执行下面程序时中断不会发生。

汇编代码例程
WDT_off:
; 置位 WDCE 和 WDE
ldi r16, (1<<WDCE)|(1<<WDE)
out WDTCR, r16
; 关闭WDT
ldi r16, (0<<WDE)
out WDTCR, r16
ret
C 代码例程
void WDT_off(void)
{
/* 置位WDCE 和 WDE */
WDTCR = (1<<WDCE) | (1<<WDE);
/* 关闭WDT */
WDTCR = 0x00;
}

改变看门狗定时器配置的时间序列

改变配置的序列根据不同的安全级别略有不同。下面将逐一说明。

安全级别0

这个模式与ATmega103 的看门狗操作相兼容。看门狗的初始状态是禁止的,可以没有限 制地通过置位WDE 来使能它,以及改变定时器溢出周期。禁止看门狗定时器时则需要遵 守有关WDE 的说明。

安全级别1

在这个模式下,看门狗定时器的初始状态是禁止的,可以没有限制地通过置位WDE 来使能它。改变定时器溢出周期及禁止( 已经使能的) 看门狗定时器时需要执行一个特定的时间序列:
1. 在同一个指令内对WDCE 和WDE 写"1“,即使WDE 已经为"1“。
2. 在紧接的4 个时钟周期之内同时对WDE 写"0”,以及为WDP 写入合适的数据,而WDCE 则写"0”。

安全级别2

在这个模式下,看门狗定时器总是使能的, WDE 的读返回值为"1”。 改变定时器溢出周期需要执行一个特定的时间序列:
1. 在同一个指令内对WDCE和WDE写"1“。虽然WDE总是为置位状态,也必须写"1“以启动时序。
2. 在紧接的4 个时钟周期之内同时对WDCE 写"0”,以及为WDP 写入合适的数据。WDE 的数值可以任意。

 相关AVR资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

 相关AVR型号资料

ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny26 ATtiny2313
ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32
ATmega64 ATmega128 ATmega162 ATmega169 ATmega8515 ATmega8535

ATmega128 看门狗定时器

——