STM8 窗口看门狗(WWDG)

发布者:科技创客最新更新时间:2020-07-07 来源: eefocus关键字:STM8  窗口看门狗  WWDG 手机看文章 扫描二维码
随时随地手机看文章

STM8窗口看门狗介绍

窗口看门狗用于监测由于外部干扰或不可预知的逻辑条件所产生的软件错误,这样的软件错误通常会导致应用程序不按照预期的方式运行。除非程序在递减计数器的T6位变为0之前刷新递减计数器,看门狗电路将在一个预置的时间间隔后产生系统复位;如果在7位的递减计数器数值达到窗口寄存器数值之前刷新递减计数器,同样会产生系统复位。这就意味着只能在一个有限的时间窗口内刷新递减计数器。

  • WWDG主要功能
    ●可编程的自由运行递减计数器
    ●有条件的复位
    ─如果开启了看门狗,当递减计数器的数值小于0x40时产生复位
    ─如果开启了看门狗,当在指定的时间窗口之外重加载递减计数器的数值(见图27)时产生复位
    ●硬件或软件启动看门狗(由选择字节指定)
    ●可在HALT指令时产生复位(由选择字节配置)

  • WWDG功能说明 
    如果开启了看门狗(设置了WDGA=1),当7位的递减计数器(T[6:0]位)从0x40变为0x3F时(即T6变为0),看门狗产生一个复位信号并把复位引脚拉低。如果软件刷新计数器时,计数器的数值大于窗口寄存器中的数值,同样会产生复位。

STM8_窗口看门狗框图
(图25:STM8窗口看门狗框图)

在正常的操作期间,应用程序必须定期地写入WDGCR寄存器,以避免产生复位;这个写的动作必须在计数器的数值小于窗口寄存器的数值时进行。写入WDGCR寄存器的数值必须是介于0xFF和0xC0之间(见图26):

  • 开启看门狗: 
    如果(通过选择字节)选择了软件看门狗,在系统复位后看门狗处于关闭状态。设置WDGCR寄存
    器中的WDGA位将开启看门狗,随后在下次复位之前将不能关闭看门狗。
    如果(通过选择字节)选择了硬件看门狗,看门狗将始终开启,而WDGA位将不起作用。 

  • 控制递减计数器: 
    递减计数器是自由运行计数器:即使未开启看门狗,它依然不断地递减计数。当开启看门狗
    时,必须设置T6位以避免立刻产生复位。T[5:0]位中包含了看门狗产生复位前允许的时间延迟(见图26);因为写入WDGCR寄存器时,预分频器的状态是不可知的(见图27),所以这个时间延迟介于一个最小和最大数值之间。
    窗口寄存器(WDGWR)的数值是指定窗口的高限:为防止复位,必须在递减计数器的数值小于窗口寄存器的数值并大于0x3F时刷新递减计数器。图27描述了窗口看门狗操作过程。
    注意:T6位可以用于产生一个软件复位(即设置WDGA位同时清除T6位)

  • 在停止时产生看门狗复位
    如果开启了看门狗,并且选择了停止时产生看门狗复位的选项,则执行HALT指令将产生复位。

  • 在停止模式下使用WWDG
    如果在选择字节中使能了停止模式下的看门狗(HALT指令不产生看门狗复位),建议在执行HALT指令前先刷新看门狗计数器,以避免在唤醒微控制器后立刻进入不希望的看门狗复位。

  • 如何设置看门狗的超时
    下图显示了看门狗计数器(CNT)中的6位数值,与以毫秒为单位的超时时间的线性关系,这个表可以在不考虑时序变化时作为一个快速的粗略计算参考,如果需要更精确的计算,请使用图27的公式。
    ---------------------------------------------------------------------------------------------------------------------------
    警告:每次写入WDGCR寄存器时,首先要置T6位为'1',以避免立刻产生看门狗复位。
    ---------------------------------------------------------------------------------------------------------------------------


    (图26:STM8大约的超时时间)


    (图27:STM8窗口看门狗时序图)

  • WWDG低功耗模式
    表28:WWDG在低功耗模式下的影响

模式说明
等待(Wait)看门狗不受影响:递减计数器照常工作
停机(Halt)选择字节中
WWDG_HALT

0不产生看门狗复位。微控制器进入停止模式。递减计数器递减一次后停止计数,在微控制器收到一个外部中断或复位之前,它不会再产生看门狗复位。
如果收到了一个中断(参考中断映像表,查看停止模式下可以产生哪些中断),在经过稳定延迟后看门狗将恢复计数。如果系统被复位,除非在选择字节中选择了硬件看门狗,否则看门狗将被关闭。
1产生一个复位而不是进入停止模式。
活跃停机
(Active Halt)
X不产生复位,微控制器进入Active Halt模式。看门狗计数器停止计数,不再递减。当微控制器收到一个振荡器中断或外部中断,看门狗立刻恢复计数。当微控制器被复位,在经过稳定延迟后看门狗将恢复计数。
  • 硬件看门狗选项
    如果在选择字节中选择了硬件看门狗选项,则看门狗始终开启,同时WDGCR寄存器中的
    WDGA将不起作用。请参考数据手册中有关选择字节的说明。

  • 在停止模式下使用WWDG
    如果开启了看门狗,则建议在停止模式下做如下操作。
    在执行HALT指令前先刷新看门狗计数器,以避免在唤醒微控制器后立刻进入不希望的看门狗复位。

控制寄存器(WWDG_CR)

地址偏移值:0x00
复位值:0x7F

STM8_控制寄存器(WWDG_CR)

位7WDGA:开启位
该位由软件设置,只能由硬件在复位后清除。当WDGA=1时,看门狗可以产生复位。
0:关闭看门狗
1:开启看门狗
位6:0T[6:0]:7位计数器(MSB至LSB)
这些位包含看门狗计数器的数值,每过(大约)12288个fckc_wwdg_ck周期递减一次。当它的内容从0x40变为0x3F(T6被清除)时,则产生一个复位。

(1)如果在选择字节中使能了硬件看门狗功能,则此位不起作用。

窗口寄存器(WWDG_WR)

地址偏移值:0x01
复位值:0x7F

STM8_窗口寄存器(WWDG_WR)

位7保留
位6:0W[6:0]:7位计数器(MSB至LSB)
这些位包含了窗口的数值,这是需要与递减计数器比较的数值。

窗口看门狗寄存器映像和复位数值


(表29:STM8 WWDG寄存器映像和复位值)


关键字:STM8  窗口看门狗  WWDG 引用地址:STM8 窗口看门狗(WWDG)

上一篇:STM8 主时钟状态寄存器
下一篇:STM8 独立看门狗(IWDG)

推荐阅读最新更新时间:2024-11-04 06:19

意法半导体:低功耗策略的延伸
“现在低功耗看起来是个非常热门的词,但实际上我们04年左右就已经制定这个策略了。”意法半导体大中国区微控制器市场经理James表示。伴随着云计算概念的普及,智能家居再一次被人们所关注,而意法半导体显然不愿意错过终端处理器市场。 STM32L低功耗处理器发布 STM32L处理器是意法半导体最新发布的一款基于Cortex-M3 32位内核的低功耗处理器,与之前的STM32其他系列产品相比,最大的特点是采用了EnergyLite超低功耗平台。 究竟何为EnergyLite呢?意法半导体单片机部市场经理张军辉解释道,“EnergyLite包含两部分,一个是意法半导体独创的130nm技术的抄底漏电流工艺,另外则是与S
[单片机]
意法半导体:低功耗策略的延伸
STVD 编译时提示can not openfile crtsi0.sm8
用STVD+COSMIC编译工程时出现以下错误: #error clnk Debugdemo.lkf:47 can’t openfile crtsi0.sm8 #error clnk Debugdemo.lkf:60 can’t openfile libis0.sm8 #error clnk Debugdemo.lkf:61 can’t openfile libm0.sm8 解决方法: 打开STVD软件,选择Tools- Options - Directories - Show Directories for,下拉列表中选择:Libraryfiles 将D:program files(x86)COSMICCXSTM8_32K
[单片机]
STVD 编译时提示can not openfile crtsi0.sm8
STM8芯片加密的方法
首先打开stvp软件,然后选择芯片型号,装载程序,单击“OPTION BYTE”菜单进入设置,然后将ROP 的Read Out Protection OFF选项设成Read Out Protection ON 设置完成 回到STVP菜单,单击“Program”,选择Current tab选项,进行下载设定 在下面窗口可以看到软件日志,没有错误的话就可以了 上面的加密就完成了,这里也可以检测一下是否加密成功,单击All tabs 试一下是否可以烧写程序 现在发现芯片就没有办法进行烧写了,提示芯片写保护没法烧写,说明芯片加密成功
[单片机]
<font color='red'>STM8</font>芯片加密的方法
STM8 入门学习与实验(二)TIM 定时器
简介:这一章节将说明如何在stm8s上面部署一个TIM1,也就是定时器,我们将利用这一个定时器精准定时1ms单位,并用它来为LED灯闪烁时间作参考。 一、stm8定时器简述 打开用户手册,可以看到这张模块图鲜明的表明了STM8S103F3的外设内设都有哪些,我们可以看到右下角的几个定时器 可以得知,STM8S具有一个高级控制定时器TIM1,一个普遍应用定时器TIM2和一个基本定时器TIM4,可用的功能和配置逐级往下 二、配置TIM定时器 先看一条初始化TIM1的语句示例 TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 800, 0); 第一个参数0,是预分频值,这里为
[单片机]
<font color='red'>STM8</font> 入门学习与实验(二)TIM 定时器
stm8 TIM2 PWM配置
首先这是我个人第一次写博客,希望通过这个平台这种方式记录下自己学习中的成长经历。 刚刚接触stm8,算刚入门,写的不对或者是需要改正的地方希望大家提出来,非常感谢! 这一次我主要讲的是关于stm8s103输出pwm波的配置。首先上成功输出的pwm波以及寄存器相关值的图片。 首先是时钟的配置: CLK_ICKR &=0X01; //打开内部高速时钟 CLK_CKDIVR = 0x00;//设置时钟为内部16M高速时钟 查阅手册得到相关信息(手册是最重要的工具还有参考): 时钟的开启操作: 设置16M高速时钟: 然后我们看一下CLK_CKDIVR寄存器: 所以只要设置全为零就是1分频
[单片机]
<font color='red'>stm8</font> TIM2 PWM配置
B-1.19 协议分析--STM8使用自带的bootloader
1,首先确认你使用的STM8有没有自带的bootloader。参考下表: 2,STM8空器件可以直接使用自带的bootloader。 3,STM8在使用SWIM烧录后,要想继续使用自带的bootloader,必须设置可选字节为0x55AA。如下图: 设置这两个字节的方法,可以使用ST Visual Programmer修改,如下图: 不过这个软件显示只能修改487Eh为0x55,487Fh没更改。官方提供的软件,很奇怪。所以,我采用下一种方法。 在程序中设定,然后用SWIM下载一次,一次就够了。使用库函数如下: /* Define FLASH programming time / FLASH_SetProgrammingTi
[单片机]
B-1.19 协议分析--<font color='red'>STM8</font>使用自带的bootloader
基于STM8的ADC读取---STM8-第四章
1. 综诉   想学会如何在STM8上使用ADC这个功能,我们先得了解单片机中ADC究竟是什么。   ADC是模拟信号转成数值信号,单片机只能识别TTL电平,其实就是 1 或者 0 ,但是如果我们给它一个3.3V电压,单片机就无法识别,,若想使用单片机读取出来得时候,它必须将模拟量变成数字量。 2. 关于STM8S103手册的ADC简介 由官方的全英手册可知。 -------------------------------------------------------------------------------------------------------------------------------
[单片机]
基于<font color='red'>STM8</font>的ADC读取---STM8-第四章
IAR FOR STM8 同一个工程芯片选择003F3可以编译003K3提示空间不足
同一个工程文件,选择103F3可以编译通过,但是选择103K3便提示空间不足 百思不得其解,查阅大量资料无果。最后在IAR工程里面找到了配置文件 打开003f3的配置文件和003K3配置文件进行对比,其余都一样,唯独程序空间003K3是从地址0X9000开始,少了1K,不知道为何要这样设置,明明两个芯片空间大小和结构一模一样。 将003K3的配置文件地址改成0x8000开始,重新编译,一切正常。 编译通过,程序空间总共占用5419b。 问题:这样操作后将程序下载到电路板上不知道会不会出错,有待验证。个人猜测应该没问题,是IAR的错误。
[单片机]
IAR FOR <font color='red'>STM8</font> 同一个工程芯片选择003F3可以编译003K3提示空间不足
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved