RESET
RESET
Es un evento especial que lleva asociada una interrupción que NO se puede deshabilitar (enmascarar). Al no poder deshabilitarse de ningún modo, se usa para sacar a la CPU de cualquier situación en la que se encuentre, por excepcional que ésta sea. Un ejemplo de una situación extrema, es cuando el microcontrolador está apagado y se enciende, el evento RESET permite definir un estado inicial del sistema.
La familia MSP430x2xx tiene dos señales internas de RESET: POR y PUC
RESET POR (Power On Reset). Sólo se genera por tres motivos:
- Al alimentar al dispositivo, asociado con el encendido del microcontrolador.
- Al poner a nivel bajo la señal de entrada #RST/NMI, cuando está configurada en modo RESET (bit 5 registro WDTCTL a 0).
- Cuando hay problemas de alimentación en el sistema, siempre y cuando el sistema de supervisión de voltaje esté habilitado.
RESET PUC (Power Up Clear). Se genera por los siguientes motivos:
- Cuando se produce un POR.
- Cuando se produce la expiración del tiempo de watchdog, estando el periférico watchdog timer activo.
- Cuando se viola la clave de seguridad del watchdog.
- Cuando se viola la clave de seguridad de la memoria Flash.
- Cuando se intenta la ejecución de alguna instrucción cuya dirección se encuentra en el rango 0x0000-0x01FF o una zona no utilizada en del mapa de memoria.
De los motivos que causan ambos RESETs, se observa que POR está más asociado a aspectos Hardware y PUC a aspectos software. En este sentido, también se comprueba que un RESET HW provoca un RESET SW pero no al revés.
Como el RESET provoca una inicialización del sistema, es importante saber cuál es el estado del que parte éste tras un Reset (POR/PUC). El fabricante indica el siguiente estado de inicialización.
- El terminal #RST/NMI configurado en modo reset.
- Pines de entrada/salida pasan a entrada.
- Periféricos y Registros pasan a sus valores por defecto, por lo que es necesario consultar la documentación de los periféricos. Esta documentación sigue la siguiente nomenclatura:
- -r: solo lectura – w:solo escritura – rw:lectura/escritura.
- r/w/rw:(1/0) indica el estado inicial tras POR.
- r/w/rw: 1/0 indica el estado inicial tras PUC.
- El registro de estado (SR) se pone a 0.
- El módulo watchdog se activa en modo watchdog.
- El contador de programa se carga con la dirección contenida en el vector de reset (FFFEh). La CPU comienza el programa en esa dirección. Si el contenido del vector de RESET es 0FFFFh el micro se desactiva para reducir su consumo.
Tras un RESET, el programa de usuario debe encargarse de inicializar la pila, configurar el watchdog de forma adecuada y configurar los periféricos que se vayan a utilizar (Inicialización).
Reflexiona: Valor inicial registros tras un RESET
Registro de funciones especiales microcontrolador MSP430F2274
Indicar el valor al que se inicializan dichos registros al expirar el tiempo del watchdog