Una variedad particularmente irritante de error en un sistema controlado por microprocesador es que el microprocesador se reinicie inesperadamente. Una herramienta importante para depurar este tipo de problema es una lista de posibles causas. ¿Qué podría causar que un microcontrolador se reinicie inesperadamente?
microcontroller
microprocessor
reset
debugging
Stephen Collings
fuente
fuente
Respuestas:
En los chips PIC y dsPIC, he observado las siguientes causas de reinicio inesperado.
Hardware:
Software:
En algunos dsPIC, el registro RCON almacena bits que indican la causa del restablecimiento. Esto puede ser muy útil al depurar.
fuente
El pin de RESET debe ser conducido adecuadamente por un circuito de reinicio que supervisa el voltaje excesivo / bajo y que crea una señal de reinicio lo suficientemente larga. Con eso en mente, mis experiencias con un reinicio de hardware no controlado provienen de:
fuente
Una posibilidad adicional que no vi en esta lista es un dispositivo compatible con ICSP. Si se utilizan pull ups insuficientes en las líneas que se disparan en el modo de programación en serie del circuito, a veces es posible ingresar ese modo al azar. Esto lleva a un reinicio un breve intervalo de tiempo más tarde cuando no se envía ninguna actualización del programa a las líneas de receptor serie designadas. Sospecho que un temporizador de vigilancia interno fuerza el reinicio si se inicia ICSP y no se envían datos de programación. Este es un error que cometí y pasé mucho tiempo buscando con un 16F876.
fuente
Asegúrese de que si está utilizando chips lógicos CMOS o TTL en su circuito que tengan condensadores de desacoplamiento adecuados a través de Vdd y tierra (generalmente 0.1 uF). Estaba usando un CD4021 en un diseño y cuando estaba en uso, aparentemente estaba causando un pico que estaba causando que el microprocesador se reiniciara. Entonces el ciclo se repetiría. Esta es también la razón por la cual es una buena idea poner una secuencia de prueba obvia (como encender y apagar un LED varias veces) al comienzo de su código para que sepa que el microprocesador está funcionando y ejecutando código.
fuente
Esta es una de esas cosas raras que pueden aparecer:
Tenía un proyecto que involucraba un microcontrolador y se reiniciaba esporádicamente. En pocas palabras, resulta que alguna opción tuvo que habilitarse o deshabilitarse; de lo contrario, podrían producirse reinicios. Solo descubrí esto leyendo la errata después de renunciar a todo lo demás.
Ahora me acostumbro a leer las erratas antes de decidir usar un chip para saber en qué me estoy metiendo y si es algo que puedo manejar. Desafortunadamente, después de graduarme, realmente no tenía a nadie que me educara sobre prácticas comunes, por lo que gran parte de mi aprendizaje en el mundo real se debió al fracaso y la frustración.
fuente