立即注册 找回密码

微雪课堂

搜索
微雪课堂 AVR AVR单片机内核剖析 ATmega64 查看内容

ATmega64 看门狗定时器

2015-5-27 22:56| 发布者: waveshare-admin| 查看: 3306| 评论: 0

摘要: 看门狗定时器看门狗定时器由独立的1 Mhz 片内振荡器驱动。这是VCC= 5V 时的典型值。请参见特性 数据以了解其他VCC电平下的典型值。通过设置看门狗定时器的预分频器可以调节看门狗 复位的时间间隔,如 P54Table 22 所 ...

看门狗定时器

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

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

ATmega64 WDT配置表 看门狗定时器

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

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

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

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

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

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

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

下面的例子分别用汇编和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 的数值可以任意。

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


254

顶一下

刚表态过的朋友 (254 人)

最新评论

所有教程
    01ATmega64 简介
    ATmega64是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及
    02ATmega64 引脚功能
    引脚名称引脚功能说明VCC数字电路的电源。GND地。端口A(PA7..PA0)端口A 为8 位双向I/O
    03ATmega64 内核介绍
    本节从总体上讨论AVR 内核的结构。CPU 的主要任务是保证程序的正确执行。因此它必 须
    04ATmega64 ALU
    ATmega64 ALU 与32 个通用工作寄存器直接相连。寄存器与寄存器之间、寄存器与立即数之
    05ATmega64 状态寄存器
    状态寄存器包含了最近执行的算术指令的结果信息。这些信息可以用来改变程序流程以 实
    06ATmega64 通用寄存器
    (点击图片放大)寄存器文件针对AVR 增强型 RISC 指令集做了优化。为了获得需要的性能和
    07ATmega64 堆栈指针
    堆栈指针主要用来保存临时数据、局部变量和中断/ 子程序的返回地址。堆栈指针总是指
    08ATmega64 指令执行时序
    这一节介绍指令执行过程中的访问时序。AVR CPU 由系统时钟clkCPU 驱动。此时钟直接 来
    09ATmega64 复位与中断处理
    AVR有不同的中断源。每个中断和复位在程序空间都有独立的中断向量。所有的中断事件 都
    010ATmega64 Flash程序存储器
    系统内可编程的Flash 程序存储器ATmega64 有64K 字节的在线编程Flash,用于存放程序指
    011ATmega64 SRAM数据存储器
    SRAM 数据存储器ATmega64 支持两种配置的SRAM 数据存储器,见Table 1。Figure 9 给出
    012ATmega64 EEPROM数据存储器
    EEPROM 数据存储器ATmega64 包含2K 字节的 EEPROM 数据存储器。它是作为一个独立的数
    013ATmega64 I/O存储器
    ATmega64 的I/O 空间定义见 P329“ 寄存器概述” 。ATmega64所有的I/O及外设都被放置
    014ATmega64 外部存储器接口
    由于外部存储器接口所提供的特性,此接口非常适合于与存储器器件互连,如外部SRAM和Fl
    015ATmega64 时钟系统及其分布
    时钟系统及其分布Figure 18为AVR的主要时钟系统及其分布。这些时钟并不需要同时工作。
    016ATmega64 时钟源
    时钟源ATmega64 芯片有如下几种通过熔丝位选择的时钟源。时钟输入到AVR 时钟发生器,
    017ATmega64 晶体振荡器
    XTAL1 和XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,如 Figure 19 所示。
    018ATmega64 低频晶体振荡器
    为了使用32.768 kHz 钟表晶体作为器件的时钟源,必须将熔丝位CKSEL 设置为“1001” 以
    019ATmega64 外部RC振荡器
    对于时间不敏感的应用可以使用 Figure 20 的外部RC 振荡器。频率可以通过方程f = 1/(3
    020ATmega64 标定的片内RC振荡器
    标定的片内RC 振荡器提供了固定的1.0、2.0、4.0 或8.0 MHz 的时钟。这些频率都是 5V、
    021ATmega64 外部时钟
    为了从外部时钟源驱动芯片, XTAL1 必须如 Figure 21 所示的进行连接。同时,熔丝位 C
    022ATmega64 定时器/计时器振荡器
    对于拥有定时器/ 振荡器引脚(TOSC1 和TOSC2) 的AVR 微处理器,晶体可以直接与这 两个
    023ATmega64 MCU控制寄存器MCUCR
    ATmega64 MCU 控制寄存器包含了电源管理的控制位。• Bit 5 – SE: 睡眠使能为了使MCU
    024ATmega64 空闲模式
    当SM2..0 为000 时, SLEEP 指令将使MCU 进入空闲模式。在此模式下,CPU 停止运 行,
    025ATmega64 ADC噪声抑制模式
    当SM2..0 为001 时, SLEEP 指令将使MCU 进入噪声抑制模式。在此模式下,CPU 停 止运
    026ATmega64 掉电模式
    当SM2..0 为010 时, SLEEP 指令将使MCU 进入掉电模式。在此模式下,外部晶体停 振,
    027ATmega64 省电模式
    当SM2..0 为011 时, SLEEP 指令将使MCU 进入省电模式。这一模式与掉电模式只有 一点
    028ATmega64 Standby 模式
    Standby 模式当SM2..0 为110 时, SLEEP 指令将使MCU 进入Standby 模式。这一模式与掉
    029ATmega64 减少功耗的方法
    试图降低AVR 控制系统的功耗时需要考虑几个问题。一般来说,要尽可能利用睡眠模式,
    030ATmega64 复位源
    复位AVR复位时所有的I/O 寄存器都被设置为初始值,程序从复位向量处开始执行。复位向
    031ATmega64 上电复位
    上电复位(POR) 脉冲由片内检测电路产生。检测电平列于Table 19。POR 在VCC低于 检测电
    032ATmega64 外部复位
    外部复位由外加于RESET引脚的低电平产生。当复位低电平持续时间大于最小脉冲宽度 时(
    033ATmega64 掉电检测复位
    ATmega64 具有片内BOD(Brown-out Detection) 电路,通过与固定的触发电平的对比来检测
    034ATmega64 看门狗复位
    看门狗定时器溢出时将产生持续时间为1 个CK 周期的复位脉冲。在脉冲的下降沿,延时 定
    035ATmega64 MCU 控制和状态寄存器-MCUCSR
    MCU 控制和状态寄存器提供了有关引起MCU 复位的复位源的信息。Note: 1. 在ATmega103
    036ATmega64 基准电压使能信号和启动时间
    ATmega64 具有片内能隙基准源,用于掉电检测,或者是作为模拟比较器或ADC的输入。 ADC
    037ATmega64 看门狗定时器
    看门狗定时器看门狗定时器由独立的1 Mhz 片内振荡器驱动。这是VCC= 5V 时的典型值。请
    038ATmega64 中断向量
    本节说明ATmega64的中断处理。更一般的AVR中断处理请参见 P13“复位与中断处理” 。No
内核剖析
    01Atmega16
    深入剖析Atmega16芯片内核
    02Atmega48
    深入剖析Atmega48芯片内核
    03ATmega8
    深入剖析ATmega8芯片内核
    04ATmega128
    深入剖析ATmega128芯片内核
    05ATmega64
    深入剖析ATmega64芯片内核
    06ATmega32
    深入剖析ATmega32芯片内核
    07ATmega168
    深入剖析ATmega168芯片内核
    08ATtiny13
    深入剖析ATtiny13芯片内核
    09ATmega88
    深入剖析ATmega88芯片内核
    010ATtiny2313
    深入剖析ATtiny2313芯片内核
AVR

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-3-29 05:12 , Processed in 0.031728 second(s), 20 queries .

返回顶部