ATtiny13 看门狗定时器

2020-07-03来源: eefocus关键字:ATtiny13  看门狗定时器  WDT

ATtiny13 有一个增强型的看门狗定时器 (WDT),其主要特征为:
* 独立的片上振荡器提供时钟
* 3 种工作模式
– 中断
– 系统复位
– 中断与系统复位
* 暂停时间从16ms 到8s可选
* 看门狗熔丝始终处于故障保险模式。

ATtiny13 看门狗定时器

看门狗定时器由独立的 128 kHz 片内振荡器驱动。当计数器达到给定的溢出值时, WDT 发出中断或系统复位。在正常工作模式下,在计数器达到溢出值前,它需要系统使用看门 狗定时器复位指令来重启计数器。若系统没有重启计数器,则会出现中断或系统复位。

在中断模式下,当定时器结束 WDT 发出一个中断。该中断可将芯片从休眠状态中唤醒, 也可作为一个通用系统定时器。例如限制最大工作时间,当工作时间超出期望值时发出中 断。在系统复位模式下,当定时器结束 WDT 发出复位信号。这是为防止由于错误代码所 引起的系统挂起的典型使用。第三种模式,中断与系统复位模式,结合两种模式,首先给 出中断,然后转换到系统复位模式。使用该模式,可在系统复位前通过保存临界参数来安 全关闭。

WDTON 熔丝位编程将使看门狗定时器进入系统复位模式。对其编程时,系统复位模式位 (WDE)与中断模式位(WDTIE)分别为1和0。为保证编程安全,必须按照下面顺序来改变看 门狗设置:
1. 在一步操作中,同时对WDCE位与 WDE写"1”。无论 WDE的初始值是多少,在此 必须对其写逻辑 ”1”。
2. 在接着的四个时钟周期内,在 WDE 与WDP中写入期望值,但同时要清除WDCE 位。

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

汇编实现了关闭WDT

C语言实现了关闭WDT

Note: 1. 代码例程假设包括所需头文件。
注意:若ATtiny13看门狗由于错误指针或掉电状态等使看门狗出现意外使能,芯片将复位看门狗定 时器将保持使能。如果编码没有设置处理看门狗,则可能导致溢出复位出现死循环。为避 免出现这种状况,即使没有使用看门狗,应用程序在初始化时应对 WDRF 与 WDE 控制位清零。

下面的例子分别用汇编和 C 语言实现了看门狗定时器溢出值的改变。

汇编实现了看门狗定时器溢出值的改变

C语言实现了看门狗定时器溢出值的改变

Note: 1. 代码例程假设包括所需头文件。
注意:看门狗定时器应在 WDP 位改变前复位,因为当改变 WDP 转换到一个短溢出周期 时可能会导致暂停。

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

ATtiny13 WDTCR

· Bits 7–WDTIF: 看门狗定时器中断标志
当看门狗定时器出现溢出且看门狗定时器配置为中断时,该位置位。当执行相应的中断程 序时, WDTIF 由硬件清除;或者在该位写入逻辑 "1” 来清除。当 SREG 寄存器的 I 位与 WDTIE置位,执行看门狗溢出中断 。
· Bit 6 – WDTIE: 看门狗定时器中断使能
当该位与 SREG 寄存器的 I 位置位,看门狗中断使能。如果同时也将 WDE 清除,看门狗 定时器进入中断模式,一旦看门狗定时器程序暂停,则执行相应的中断。

若 WDE 置位,则看门狗定时器处于中断与系统复位模式。看门狗定时器的第一次溢出将 设置WDTIF。执行相应的中断向量将会由硬件最大清除WDTIE与WDTIF(看门狗进入系 统复位模式 )。这种方式会保证使用中断时看门狗定时器的安全性。在中断与系统复位模 式下,WDTIE在每次中断后必须设置。然而它不能在中断服务子程序中执行,因为这可 能会损害看门狗系统复位模式的安全性。如果在下一次溢出前没有程序中断,则进入系统 复位模式。

ATtiny13 看门狗定时器配置

· Bit 4 – WDCE: 看门狗修改使能
该位用在改变 WDE 与预分频位的时序中。WDCE 置位来清除 WDE 位,与 / 或改变预分频位。一旦置 "1”,硬件将在四个时钟周期后对 WDCE 清零。
· Bit 3 – WDE: 看门狗系统复位使能
WDE由MCUSR寄存器的WDRF决定。这就是说当WDRF设置时,WDE也设置。要清除 WDE,必须先清除 WDRF。这一特性保证状态出错时的多重复位,及出错后的安全启动。
·Bit 5, 2..0 - WDP3..0: 看门狗定时器预分频器 3, 2, 1和 0
WDP3..0 决定看门狗定时器的预分频器。如 P39Table 17 所示。

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


关键字:ATtiny13  看门狗定时器  WDT 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic502049.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ATtiny13 中断向量
下一篇:ATtiny13 基准电压使能信号和启动时间

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ATtiny13 引脚功能
引脚名称引脚功能说明VCC数字电路的电源GND地端口B(PB5..PB0)端口 B 为 6 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 B处于高阻状态。端口 B 也可以用做其他不同的特殊功能,请参见ATtiny13 DPF中的 P48。RESET复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见P30Table 12。持续时间小于门限时间的脉冲不能保证可靠复位。
发表于 2020-07-17
ATtiny13 内核介绍
本节从总体上讨论ATtiny13 AVR 内核的结构。CPU 的主要任务是保证程序的正确执行。因此它必须能够访问存储器、执行运算、控制外设以及处理中断。(点击图片放大)结构综述Figure 3. AVR 结构的方框图为了获得最高的性能以及并行性, AVR 采用了Harvard 结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。CPU 在执行一条指令的同时读取下一条指令( 在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器是可以在线编程的FLASH。 快速访问寄存器文件包括32 个8 位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU 操作。在典型的ALU 操作中,两个
发表于 2020-07-17
<font color='red'>ATtiny13</font> 内核介绍
ATtiny13 状态寄存器
。·Bit 0 – C: 进位标志表明算术或逻辑操作发生了进位。详见ATtiny13指令集的说明。
发表于 2020-07-17
<font color='red'>ATtiny13</font> 状态寄存器
ATtiny13 通用寄存器
。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活性,因为X、Y、Z 寄存器可以设置为指向任意寄存器的指针。寄存器R26..R31 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三个间接寻址寄存器示于Figure 5。Figure 5. X、Y、Z 寄存器在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。具体细节请参见ATtiny13指令集。备注:以上所有图片中的地址中“$”更改为“0X”.
发表于 2020-07-17
<font color='red'>ATtiny13</font> 通用寄存器
ATtiny13 堆栈指针
堆栈指针主要用来保存临时数据、局部变量和中断 子程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意 AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值将减小。堆栈指针指向数据 SRAM 堆栈区。在此聚集了子程序堆栈和中断堆栈。调用子程序和使 能中断之前必须定义堆栈 0x60 的地址 PUSH 指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。使 用 POP 指令将数据弹出堆栈时,堆栈指针加一;而用 RET 或 RETI 指令从子程序或中断 返回时堆栈指针加二。ATtiny13的堆栈指针由I/O 8位寄存器实现。实际使用的位数与具体器件有关。请 注意某些 AVR 器件的数据区太小,用 SPL
发表于 2020-07-17
<font color='red'>ATtiny13</font> 堆栈指针
ATtiny13 指令执行时序
这一节介绍指令执行过程中的访问时序。AVR CPU 由系统时钟clkCPU 驱动。此时钟直接来自选定的时钟源。芯片内部不对此时钟进行分频。Figure 6 说明了由Harvard 结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念。这是一个基本的流水线概念,性能高达1 MIPS/MHz,具有优良的性价比、功能/ 时钟比、功能/ 功耗比。Figure 7 演示的是寄存器文件内部访问时序。在一个时钟周期里,ALU 可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去。
发表于 2020-07-09
<font color='red'>ATtiny13</font> 指令执行时序
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved