Todavía estoy buscando encontrar una respuesta a esta pregunta:
¿Por qué si bien las MCU stm32 tienen un perro guardián perfecto (me refiero al perro guardián de ventana (WWDG)), hay un perro guardián simple (perro guardián independiente (IWDG))?
Encontré esta página que dice:
ST Microelectronics tiene una línea de dispositivos Cortex-M3. El M3 se ha vuelto extremadamente popular para los dispositivos integrados de gama baja, y el STM32F de ST es representativo de estas partes (aunque el WDT es un complemento de ST y no necesariamente refleja las implementaciones de otros proveedores). El STM32F tiene dos mecanismos de protección diferentes. Un "perro guardián independiente" es un bonito diseño de vainilla que tiene poco más que facilidad de uso. Pero su Window Watchdog ofrece una protección más robusta. Cuando expira un temporizador de cuenta regresiva, se genera un reinicio, que puede impedirse volviendo a cargar el temporizador. Nada especial allí. Pero si la recarga ocurre demasiado rápido, el sistema también se reiniciará. En este caso, "demasiado rápido" está determinado por un valor que se programa en un registro de control.
Otra característica interesante: puede generar una interrupción justo antes de reiniciar. Escriba un bit de código para enganchar la interrupción y puede tomar algunas medidas para, por ejemplo, poner el sistema en un estado seguro o para capturar datos con fines de depuración. ST sugiere usar el ISR para recargar el perro guardián, es decir, patear al perro para que no se reinicie. No sigas sus consejos. Si el programa falla, los controladores de interrupción pueden continuar funcionando normalmente. Y el uso de un ISR para recargar el WDT invalida toda la razón de un perro guardián de la ventana.
y esto :
La nueva serie de CPU STM32F4 Cortex ™ -M4 de STMicroelectronics tiene dos perros guardianes independientes. Uno corre desde su propio oscilador RC interno. Eso significa que todo tipo de cosas pueden colapsar en la CPU y el WDT seguirá disparando. También hay una "ventana de vigilancia" (WWDT) que requiere que el código le haga cosquillas con frecuencia, pero no con demasiada frecuencia. Esta es una forma muy efectiva de asegurar que el código bloqueado que se escribe aleatoriamente en el mecanismo de protección no cause un cosquilleo WDT, y el WWDT puede generar una interrupción poco antes de que se restablezca el restablecimiento.
ok, echemos un vistazo en el manual de referencia :
El STM32F10xxx tiene dos periféricos de vigilancia integrados que ofrecen una combinación de alto nivel de seguridad, precisión de tiempo y flexibilidad de uso. Ambos periféricos de vigilancia (Independiente y Ventana) sirven para detectar y resolver el mal funcionamiento debido a fallas de software, y para activar el reinicio del sistema o una interrupción (solo vigilancia de ventana) cuando el contador alcanza un valor de tiempo de espera determinado. El watchdog independiente (IWDG) funciona con su propio reloj dedicado de baja velocidad (LSI) y, por lo tanto, permanece activo incluso si falla el reloj principal. El reloj de vigilancia de ventana (WWDG) se escala previamente del reloj APB1 y tiene una ventana de tiempo configurable que se puede programar para detectar un comportamiento anormalmente tardío o temprano de la aplicación. El IWDG es el más adecuado para aplicaciones que requieren que el perro guardián se ejecute como un proceso totalmente independiente fuera de la aplicación principal, pero tienen restricciones de precisión de tiempo más bajas. El WWDG es el más adecuado para aplicaciones que requieren que el watchdog reaccione dentro de una ventana de tiempo precisa.
La ventana de vigilancia se utiliza para detectar la aparición de una falla de software, generalmente generada por interferencia externa o por condiciones lógicas imprevistas, lo que hace que el programa de aplicación abandone su secuencia normal. El circuito de vigilancia genera un reinicio de MCU al expirar un período de tiempo programado, a menos que el programa actualice el contenido de la cuenta regresiva antes de que se borre el bit T6. También se genera un reinicio de MCU si el valor de cuenta regresiva de 7 bits (en el registro de control) se actualiza antes de que la cuenta regresiva haya alcanzado el valor de registro de ventana. Esto implica que el contador debe actualizarse en una ventana limitada.
Como puede ver, ninguno de ellos ha dicho por qué hay dos perros guardianes. si le pregunto cuáles son las diferencias entre los dos perros guardianes, contará todas las características que puede ver en lo anterior y si desea comparar los dos, ¡obviamente el perro guardián de la ventana (WWDG) será el ganador! entonces ¿Por qué hay dos perros guardianes?
Quiero saber cuándo debo usar IWDG y cuándo WWDG.
y hay alguna razón que nos diga ¿Por qué llaman al segundo reloj por este nombre -> "Window watchdog"?