Questions tagged «watchdog»

1
为什么当我调用wdt_disable()尝试关闭看门狗定时器时,我的AVR会复位?
我遇到了一个问题,即使在计时器上还有足够的时间,在AVR ATtiny84A上执行禁用看门狗序列实际上也会复位芯片。当在许多物理部件上运行相同的代码时,这会不一致地发生。有些每次都会重置,有些有时会重置,有些则永远不会重置。 为了演示该问题,我编写了一个简单的程序,该程序可以... 使看门狗超时1秒 重置看门狗 使白色LED闪烁0.1秒 闪烁白色LED熄灭0.1秒 禁用看门狗 看门狗使能和禁用之间的总时间少于0.3秒,但是有时在执行禁用序列时会发生看门狗复位。 这是代码: #define F_CPU 1000000 // Name used by delay.h. We are running 1Mhz (default fuses) #include <avr/io.h> #include <util/delay.h> #include <avr/wdt.h> // White LED connected to pin 8 - PA5 #define WHITE_LED_PORT PORTA #define WHITE_LED_DDR DDRA #define WHITE_LED_BIT 5 // Red …
34 arduino  avr  attiny  watchdog 


3
像普通的ISR一样使用AVR看门狗
我试图把头放在ATTinyX5系列的看门狗定时器上。因此,我读过的东西似乎使您可以使用它使程序在N秒内执行特定的操作,但从未真正展示过如何执行。其他人则认为它只会重置芯片,除非同时进行代码重置(这似乎是“正常”用法)。 有没有像TIMER1_COMPA_vect或类似方法那样使用WDT的方法。我注意到它有一个1秒的超时模式,我真的很想能够使用它使代码中的每1秒发生一次(并且最好在两者之间休眠)。 有什么想法吗? * 更新:*自从被询问以来,我指的是ATTinyX5数据表的 8.4节。不是我完全理解它,这是我的问题...
17 avr  attiny  watchdog 

5
独立看门狗(IWDG)或窗口看门狗(WWDG)?
我仍在寻找该问题的答案: 为什么stm32 MCU具有完美的看门狗(我的意思是窗口看门狗(WWDG)),却有一个简单的看门狗(独立看门狗(IWDG))? 我发现此页面说: 意法半导体(ST Microelectronics)拥有一系列Cortex-M3器件。M3在低端嵌入式设备中已变得非常流行,ST的STM32F代表了这些部分(尽管WDT是ST的附加组件,并不一定反映其他厂商的实现)。STM32F具有两种不同的保护机制。“独立看门狗”是一种漂亮的香草设计,除了易于使用之外,几乎没有其他用途。但是他们的Window Watchdog提供了更强大的保护。当倒数计时器到期时,将产生复位,可以通过重新装入计时器来阻止复位。没什么特别的。但是,如果重新加载太快,系统也会重置。在这种情况下,“太快”由一个值编程到控制寄存器中。 另一个很酷的功能:它可以在重置之前生成中断。编写一些代码来捕获中断,您可以采取一些措施,例如,将系统置于安全状态或快照数据以进行调试。ST建议使用ISR重新加载看门狗-即,踢狗以免复位。不要接受他们的建议。如果程序崩溃,中断处理程序可能会继续正常运行。使用ISR重新加载WDT会使窗口监视程序的全部原因无效。 而这个: 意法半导体的新系列STM32F4 Cortex™-M4 CPU具有两个独立的看门狗。一个由其自身的内部RC振荡器运行。这意味着各种事情都可能在CPU中崩溃,并且WDT仍然会触发。还有一个“窗口监视程序”(WWDT),它需要代码频繁但不频繁地对其进行挠痒痒。这是确保随机写入保护机制的崩溃代码不会引起WDT异常的一种非常有效的方法,并且WWDT可以在断言复位之前不久产生一个中断。 好的,让我们看一下参考手册: STM32F10xxx具有两个嵌入式看门狗外设,这些外设提供了高安全性,定时精度和使用灵活性的组合。两个看门狗外围设备(独立和窗口)都用于检测和解决由于软件故障引起的故障,并在计数器达到给定的超时值时触发系统复位或中断(仅窗口看门狗)。独立的看门狗(IWDG)由其自己的专用低速时钟(LSI)提供时钟,因此即使主时钟发生故障也保持活动状态。窗口看门狗(WWDG)时钟是从APB1时钟开始预分频的,并具有可配置的时间窗,可对其进行编程以检测异常的过早或过早的应用程序行为。IWDG最适合需要看门狗作为主应用程序之外的完全独立进程运行的应用程序,但时序精度约束较低。WWDG最适合要求看门狗在准确的时序窗口内做出反应的应用。 窗口看门狗用于检测软件故障的发生,通常由外部干扰或不可预见的逻辑条件引起,导致应用程序放弃其正常顺序。看门狗电路会在编程的时间段到期时生成MCU复位,除非程序在T6位清零之前刷新倒数计数器的内容。如果在递减计数器达到窗口寄存器值之前刷新(控制寄存器中的)7位递减计数器值,也会产生MCU复位。这意味着必须在有限的窗口中刷新计数器。 如您所见,他们都没有说过为什么有两个看门狗。如果我问这两个看门狗之间有什么区别,您将计算出上面可以看到的所有功能,如果您想对两者进行比较,显然Windows看门狗(WWDG)将是赢家!那么为什么有两个看门狗? 我想知道什么时候应该使用IWDG,什么时候需要WWDG? 并有什么理由告诉我们为什么他们用这个名字叫第二只手表->“ Window watchdog”?

3
看门狗定时器采用哪种方法?
我最近了解了看门狗计时器,并且正在尝试为我的电路实现一个计时器,以便在我的(AVR)微控制器挂起时重置它(即,不响应看门狗)。 根据一些研究,在我看来,大约有四个选择: 将我的微控制器与外部专用看门狗定时器专用IC连接。 将我的微控制器与另一个微控制器(一些非常基本,便宜的微控制器)连接,后者被编码为看门狗计时的唯一专用目的。 布置我自己的基于555定时器的看门狗电路,并将其连接到我的微控制器。 在我的微控制器上使用内部看门狗定时器功能。 。 您会使用上述哪种方法排名较高?为什么? 我想根据制作其余设计和代码的某些标准(该设备将是电池供电的周期性温度记录器),将看门狗时间设置为6秒左右。 一点注意:为简单起见,我会选择Option 1,但是根据我发现的那对夫妇,这些零件要么看起来很昂贵(我想要的解决方案最多是1.25美元),要么只允许看门狗计时周期超过2秒。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.