170 likes | 343 Views
Microcontrolador MPS430F149. WatchDog Timer. El watchdog timer es un temporizador de 16 bits que puede ser usado como wachdog o por intervalos de tiempo. Introducción. Las siguientes son las características del modulo watchdog timer:. Ocho intervalos de tiempos selecciónables por software.
E N D
Microcontrolador MPS430F149 WatchDog Timer
El watchdog timer es un temporizador de 16 bits que puede ser usado como wachdog o por intervalos de tiempo. Introducción
Las siguientes son las características del modulo watchdog timer: • Ocho intervalos de tiempos selecciónables por software. • Modo WatchDog. • Modo intervalo. • Acceso al registro de control WDT con contraseña protegida. • Pin de control de la función RST/NMI • Fuente de reloj seleccionable • Puede ser detenido para conservar la potencia.
Seminario de Computadores I – Diseño con MicrocontroladoresWatchdog Timer Modos de Funcionamiento: WATCHDOG TIMER
Seminario de Computadores I – Diseño con MicrocontroladoresWatchdog Timer MODO WATCHDOG Reinicia el procesador después de que ocurra una falla o problema de software. La condición de RESET ocurre cuando finaliza un intervalo de tiempo determinado por el programador. Luego de un PUC, el WD es configurado con un intervalo de RESET inicial de ~32[ms] por lo tanto se debe detener el WD antes de la expiración de éste.
Seminario de Computadores I – Diseño con MicrocontroladoresWatchdog Timer MODOTIMER Puede ser usado para producir interrupciones periódicas. La finalizar el intervalo, se setea el flag WDTIFG que habilita el bit WDTIE. El flag WDTIFG requiere una interrupción si los bits WDTIE y GIE están seteados. Al servirse la interrupción el flag WDTIFG es reseteado automáticamente.
Registros Para el caso que nos interesa, estudiaremos los siguientes registros: • Registros del modulo básico de reloj. La configuración de estos módulos consiste en asignar a cada uno de los tres módulos, una fuente de reloj determinada que satisfaga los requerimientos de consumo y aplicación que se requiera. • Registros de control del watchdog timer. La configuración de este módulo permite comfigurar el WDT a cualquiera de los modos disponibles.
Registros del modulo básico de reloj • A través de este registro se seleccionan las fuentes de los módulos de reloj del microcontrolador y se manipulan las frecuencias de dichas fuentes. • Las fuentes de reloj son las siguientes:
Observación • El DCOCLK oscila entre (80k, 8M)[Hz]. Este rango se encuentra parametrizado por 64 niveles determinables por los bits DCOx del registro DCOCTLx y los bits RSELx del registro BCSCTL1.
Existen tres módulos básicos de reloj, los cuales pueden ser configurados a través de los registros DCOCTL, BCSCTL1 y BCSCTL2.
Observación • El oscilador XT2CLK es una fuente externa, es decir, su utilización es determinada por lo requerimientos de la aplicación diseñada. Por lo tanto, en aquellos casos en que se prescindiera de ella, el microcontrolador determina a LFXT1CLK como oscilador por defecto.
Registro de Control del Watchdog Timer • Es un registro de 16 bits, que configura los modos de funcionamiento del Watchdog Timer. • Inicialmente esta configurado con un intervalo de 32[ms] usando el DCOCLK como fuente de reloj, teniendo que ser configurado antes de que el intervalo expire.
Las interrupciones no enmascarables (NMI) no son manejadas por el bit de habilitación general de interrupciones. • Puden ser producidas por un canto en el pin RST/NMI, una falla en el oscilador o por una violación de acceso a la memoria FLASH.
Configuraciones predeterminadas • #define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL) /* 32ms interval (default) */ • #define WDT_MDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) /* 8ms " */ • #define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1) /* 0.5ms " */ • #define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms " */
Configuraciones predeterminado • /* WDT is clocked by fACLK (assumed 32KHz) */ • #define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL) /* 1000ms " */ • #define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms " */ • #define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms " */ • #define WDT_ADLY_1_9 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* 1.9ms " */