¿Hay alguna forma de autoreservar / reiniciar el microcontrolador?

1

Estoy utilizando MCU STM32F4 Estoy intentando implementar la actualización de OTA en la mayoría de los trabajos realizados. Ahora, cuando cambiamos el firmware del firmware antiguo al nuevo, es necesario reiniciarlo. Para cambiar a un nuevo firmware, necesito restablecerlo por hardware o reiniciarlo, lo que falla el propósito de OTA

Básicamente quiero reiniciar / reiniciar el microcontrolador después de que reciba un nuevo inicio de firmware desde una dirección de memoria diferente.

    
pregunta Davinder

2 respuestas

5

Lo que describe es un circuito de vigilancia.

Es un circuito que, cuando está habilitado, restablece tu µC después de un tiempo determinado, a menos que se reinicie su temporizador (a través del código o enviándole un pulso).

Su uso previsto es reiniciar los microcontroladores congelados después de una falla. Un código que funcione correctamente debería reiniciar el reloj a intervalos regulares, pero en caso de una falla (corrupción de datos, error, bucle infinito, etc.) el watchdog ya no se reinicia, y activa el reinicio del microcontrolador.

Incluso a menudo hay un indicador que se establece si el regulador desencadena un reinicio, para que el microcontrolador que se reinicia sepa que ocurrió, y pueda ejecutar una autoprueba adicional, lanzar / registrar una alerta, etc.

Muchos microcontroladores tienen una función de perro guardián, pero si el tuyo no lo tiene, hay un IC de perro guardián dedicado, o incluso puedes construir el tuyo, y un 555 es un medio para hacer precisamente eso. Google "555 timer watchdog" para más detalles.

    
respondido por el Sclrx
2

Hay chips de reinicio dedicados para eso.

Otra alternativa es usar el temporizador de vigilancia para provocar un reinicio.

El uso de un pin GPIO para extraer el reinicio bajo no es del todo confiable. En algunos casos, el uso de un pin GPIO para activar un bjt o MOSFET para descargar un condensador en el pin de reinicio puede funcionar. Pero no es 100% confiable en un ambiente ruidoso.

    
respondido por el dannyf

Lea otras preguntas en las etiquetas