【STM32电机矢量控制】记录12——IWDG看门狗

发布者:TechGuru123最新更新时间:2018-09-22 来源: eefocus关键字:STM32  电机  矢量控制  IWDG  看门狗 手机看文章 扫描二维码
随时随地手机看文章

看门狗概念:

     在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令等,都会陷入死循环。程序的正常运行被打断,由单片机控制的系统无法继续正常工作,会造成整个系统陷入停滞状态,发生不可预料的后果。看门狗就是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启的电路。看门狗命令在程序的中断中拥有最高的优先级。

IWDG简介:

      官方说法:

      STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。

       通俗说法:

    独立看门狗号称宠物狗,窗口看门狗号称警犬。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。

       独立看门狗一般用来检测和解决由程序引起的故障,比如一个程序正常运行的时间是50ms,在运行完这个段程序之后紧接着进行喂狗,我们设置独立看门狗的定时溢出时间为60ms,比我们需要监控的程序 50ms 多一点,如果超过 60ms 还没有喂狗,那就说明我们监控的程序出故障了,跑飞了,那么就会产生系统复位,让程序重新运行。

IWDG主要特性:

  • 自由运行递减计数器。

  • 时钟由独立RC振荡器提供(可在待机和停止模式下运行)。

  • 当递减计数器值达到0x000时产生复位(如果看门狗已激活)。

IWDG功能描述:

       在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。 无论何时,只要在键寄存器IWDG_KR中写入0xAAAA, IWDG_RLR中的值就会被重新加载到计数器,从而避免产生看门狗复位 。

独立看门狗框图:

【STM32电机FOC】记录12——IWDG看门狗

①独立看门狗时钟 

  独立看门狗的时钟由独立的 RC振荡器 LSI提供,即使主时钟发生故障它仍然有效,非常独立。LSI的频率一般在 30~60KHZ之间,根据温度和工作场合会有一定的漂移,我们一般取 40KHZ,所以独立看门狗的定时时间并一定非常精确,只适用于对时间精度要求比较低的场合。

②计数器时钟

  递减计数器的时钟由 LSI经过一个 8位的预分频器得到,我们可以操作预分频器寄存器 IWDG_PR 来设置分频因子,分频因子可以是:[4,8,16,32,64,128,256,256],计数器时钟CK_CNT= 40/ 4*2^PRV,一个计数器时钟计数器就减一。

③计数器

  独立看门狗的计数器是一个 12 位的递减计数器,最大值为 0XFFF,当计数器减到 0时,会产生一个复位信号:IWDG_RESET,让程序重新启动运行,如果在计数器减到 0 之前刷新了计数器的值的话,就不会产生复位信号,重新刷新计数器值的这个动作我们俗称喂狗。

④重装载寄存器

  重装载寄存器是一个 12 位的寄存器,里面装着要刷新到计数器的值,这个值的大小决定着独立看门狗的溢出时间。超时时间 Tout = (4*2^prv) / 40 * rlv (s) ,prv是预分频器寄存器的值,rlv是重装载寄存器的值。

 

⑤键值寄存器

  键值寄存器 IWDG_KR 可以说是独立看门狗的一个控制寄存器,主要有三种控制方式,往这个寄存器写入下面三个不同的值有不同的效果。

通过写往键寄存器写 0XCCC 来启动看门狗是属于软件启动的方式,一旦独立看门狗启动,它就关不掉,只有复位才能关掉。

⑥状态寄存器

  状态寄存器 SR只有位 0:PVU和位 1:RVU有效,这两位只能由硬件操作,软件操作不了。RVU:看门狗计数器重装载值更新,硬件置 1 表示重装载值的更新正在进行中,更新完毕之后由硬件清 0。PVU: 看门狗预分频值更新,硬件置’1’指示预分频值的更新正在进行中,当更新完成后,由硬件清 0。所以只有当 RVU/PVU等于 0 的时候才可以更新重装载寄存器/预分频寄存器。

IWDG库函数:

【STM32电机FOC】记录12——IWDG看门狗

独立看门狗的配置使用:

【STM32电机FOC】记录12——IWDG看门狗

/* 独立看门狗使用LSI作为时钟。

 *        LSI 的频率一般在 30~60KHZ 之间,根据温度和工作场合会有一定的漂移,我

 *        们一般取 40KHZ,所以独立看门狗的定时时间并一定非常精确,只适用于对时间精度

 *        要求比较低的场合。

 *

 * rlv:重装载寄存器的值,取值范围为:0-0XFFF

 * 函数调用举例:

 * IWDG_Config(IWDG_Prescaler_64 ,625);  // IWDG 1s 超时溢出 

 *                        (64/40)*625 = 1s

 */


void IWDG_Config(uint8_t prv ,uint16_t rlv)

{      

    IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );// 使能 预分频寄存器PR和重装载寄存器RLR可写

    IWDG_SetPrescaler( prv );// 设置预分频器值

    IWDG_SetReload( rlv ); // 设置重装载寄存器值

    IWDG_ReloadCounter();// 把重装载寄存器的值放到计数器中

    IWDG_Enable();    // 使能 IWDG

}


void IWDG_Feed(void)

{

    // 把重装载寄存器的值放到计数器中,喂狗,防止IWDG复位

    // 当计数器的值减到0的时候会产生系统复位

    IWDG_ReloadCounter();

}




主要完成任务:

1、对霍尔元件的原理进行了解

2、对其初始化配置、TIM时钟配置进行了解

关键字:STM32  电机  矢量控制  IWDG  看门狗 引用地址:【STM32电机矢量控制】记录12——IWDG看门狗

上一篇:【STM32电机矢量控制】记录13——EXTI外部中断
下一篇:【STM32电机矢量控制】记录11——DMA传输

推荐阅读最新更新时间:2024-03-16 16:14

大联大诠鼎推出直流无刷电机驱动应用之吊扇解决方案
2019年9月17日,致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下诠鼎 推出基于 立锜科技(Richtek)RT7075及RM05N60的直流无刷电机驱动应用之吊扇解决方案。 在全球节能减排的背景下,大联大诠鼎代理的Richtek推出了RT7075直流无刷(BLDC)电机驱动应用系统解决方案。直流无刷(BLDC)电机具有高效率,高功率,高可靠性和低发热等特性和优点,符合国家的节能减排要求。 RT7075是集成了三相电机控制器和门极驱动器的2-in-1产品,它以32位ARM Cortex-M0为核心,与ADC、DAC、通讯接口、SVPWM、看门狗定时器等多种外围电路结合在一起,具有电流检测、过流保护、欠
[工业控制]
大联大诠鼎推出直流无刷<font color='red'>电机</font>驱动应用之吊扇解决方案
电机控制中载波频率设定的五个因素
电机控制中载波频率是非常重要的因素,其值不能设定太高,同样也不能设定太低,通常载波频率设定与五个因素有关:基波频率、硬件限制、谐波电流、内部软件的实现、功率模块温升,这期主要讲讲与这几个因素有关的原因。 1载波频率与什么有关? 载波频率的选择与基波频率、硬件限制、谐波电流、内部软件的实现、功率模块温升有关: 1.1、基波频率: 由电机转速公式可以计算基波频率为: 其中f表示电机频率,P表示极对数,n表示电机转速。 假设4对极电机运转在3000rpm时,其基波频率f为: 在实际控制中要取载波频率为基波频率的10倍以上,也就是200Hz,载波频率要为2KHz以上。 1.2、硬件限制: 功率模块有推荐的最大载波频率限
[嵌入式]
<font color='red'>电机</font>控制中载波频率设定的五个因素
stm32单片机进入休眠模式后无法下载程序等问题的解决
利用stm32单片机的休眠模式,使单片机间歇的休眠从而实现低功耗的目的。往往会出现进入休眠后无法唤醒,导致下一次程序烧不进去。通常的解决办法是:一般的开发板或单片机最小系统都会有复位键,按住复位键,点下载,然后松开复位键即可。 我遇到的问题是:误入了stm32(STM32L051C6T6)的STOP模式,又没有写入相应的唤醒方法,导致后续的程序不能下载。使用MDK5 点击load时总会出现No target connected。自己设计的最小系统又没有加入复位键。。。 有以下几种解决办法: 1、可以将单片机的NRST引脚引出来,外接复位键。(关于引脚查看可用ST官方软件STM32cubeMX,很方便) 2、通过IS
[单片机]
<font color='red'>stm32</font>单片机进入休眠模式后无法下载程序等问题的解决
STM32独立看门狗详解
本文将介绍STM32的看门狗中的独立看门狗,并通过实例来喂狗、体验喂狗与不喂狗的区别。 ①STM32看门狗介绍之独立看门狗 ②使用STM32CUBEMX来配置工程文件 ③代码实现,按键按下喂狗、按键不按下不喂狗程序复位 ①STM32看门狗介绍之独立看门狗 看门狗定时器本质上是一个计数器、给计数器一个数值,在程序 运行后计数器的值开始递减,当计数器的值减到0是会将程序复位,若在减到0之前给计数器更新一下值“喂狗”则从最新的值开始递减; 用途: 1、这样做的好处就是程序跑飞、死机时,通过复位的方式使得程序又正常运行; 2、用于将系统从休眠或者空闲模式唤醒。 看门狗的种类: 独立看门狗IWDG 特点:专用时钟LSI、低功耗模式仍
[单片机]
<font color='red'>STM32</font>独立<font color='red'>看门狗</font>详解
STM32的开漏电路与推挽输出
开漏结构 所谓开漏电路概念中提到的“漏”就是指MOS FET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示: 图1 组成开漏形式的电路有以下几个特点: 1. 利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。如图1。 2. 可以将多个开漏输出的Pin,连接到一条线上。形成“与逻辑”关系。如图1,当PIN_A、PIN_B、PIN_C任
[单片机]
<font color='red'>STM32</font>的开漏电路与推挽输出
stm32滴答时钟SYStick的优先级设定方法详解
以ST的V3.50固件为对象,: 1. 滴答寄存器的定义和地址分配在内核.H文件中如下 typedef struct { __IO uint32_t CTRL; /*! Offset: 0x00 SysTick Control and Status Register */ __IO uint32_t LOAD; /*! Offset: 0x04 SysTick Reload Value Register */ __IO uint32_t VAL; /*! Offset: 0x08 SysTick Current Value Register
[单片机]
STM32 ADC 单次模式、连续模式、扫描模式
ADC单通道: 要求进行一次ADC转换:配置为单次模式使能,扫描模式失能。这样ADC的这个通道,转换一次后,就停止转换。 要求进行连续ADC转换:配置为连续模式使能,扫描模式失能。这样ADC的这个通道,转换一次后,接着进行下一次转换,不断连续。 ADC多通道: 要求进行一次ADC转换:配置为单次模式使能,扫描模式使能。这样ADC的多个通道,按照配置的顺序依次转换一次后,就停止转换。 要求进行连续ADC转换:配置为连续模式使能,扫描模式使能。这样ADC的多个通道,按照配置的顺序依次转换一次后,接着进行下一次转换,不断连续。 因此,得出结论:扫描模式只在多通道的条件下有效,来使得各个通道按照配置循序依次转换。而
[单片机]
如何有效地使用串口通讯接收数据
引言 在使用stm32或者其他单片机的时候,会经常使用到串口通讯,那么如何有效地接收数据呢?假如这段数据是不定长的有如何高效接收呢? 同学A:数据来了就会进入串口中断,在中断中读取数据就行了! 中断就是打断程序正常运行,怎么能保证高效呢?经常把主程序打断,主程序还要不要运行了? 同学B:串口可以配置成用DMA的方式接收数据,等接收完毕就可以去读取了! 这个同学是对的,我们可以使用DMA去接收数据,不过DMA需要定长才能产生接收中断,如何接收不定长的数据呢? DMA简介 题外话:其实,上面的问题是很有必要思考一下的,不断思考,才能进步。 什么是DMA DMA :全称Direct Memory Access,即直接存储器访问
[单片机]
如何有效地使用串口通讯接收数据
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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