Вы находитесь на странице: 1из 8

SEMINARIO DE COMPUTADORES I

DISE~
NO CON MICROCONTROLADORES
MSP430: Módulo Wachtdog Timer

Nombres: Daniel Arancibia Carocca


Alex Garay Herrera
Juan Carlos Jarur Mu~
noz
Bruno Mundaca Moraga
Rodrigo Vizcarra Acevedo
Profesor: Leopoldo Silva Bijit
Índice
1. Introducción 3

2. Modos de operación del Watchdog Timer 4

3. Registros 5
3.1. Registros del módulo básico de reloj . . . . . . . . . . . . . . . 5
3.2. Registro de Control del Watchdog Timer . . . . . . . . . . . . 7
3.3. Configuraciones predeterminadas . . . . . . . . . . . . . . . . 7

2
1. Introducción
El watchdog timer es un temporizador de 16 bit que puede ser usado
como watchdog o por intervalos de tiempo.
La principal función en el modo watchdog es reiniciar el procesador de-
spués de que ocurra una falla o problema de software contando con un in-
tervalo de tiempo por defecto de 32 [ms] con la posibilidad de detener su
acción o cambiar este intervalo a uno determinado por el programador. Si
este watchdog timer no es empleado en ninguna subrutina puede ser configu-
rado como un temporizador de intervalos y puede generar interrupciones en
los intervalos de tiempo seleccionados.
Las siguientes son las caracterı́sticas del modulo watchdog timer:

Ocho intervalos de tiempos seleccionables 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

3
2. Modos de operación del Watchdog Timer
El timer Watchdog del microcontrolador MSP430 de Texas Instruments
presenta dos posibles modos de operación.

Modo Watchdog En este modo de operación el WDT espera un intervalo


de tiempo determinado por software, o en el caso de no haberlo deter-
minado esperará un intervalo por defecto, en el cual éste espera por
una señal de stop (cambio del valor de un registro) con la cual comen-
zará a contar un nuevo intervalo y ası́ sucesivamente. En caso de no
recibir señal de stop el WDT reiniciará el procesador al finalizar el in-
tervalo de tiempo con lo cual se dará una condición de RESET en el
microcontrolador.

Modo Timer El WDT también es posible utilizarlo como temporizador, es


decir, el WDT ya no podrá resetear el procesador y cumplirá sólo una
función de contador de intervalos de tiempo tal como un Timer normal
lo que permite utilizarlo como generador de interrupciones entre otras
cosas.

4
3. Registros
Para el caso que nos interesa, debemos determinar y configurar otros
módulos adicionales a los que propiamente configurar parámetros del Watch-
dog Timer. Las caracterı́sticas y funcionamiento de estos módulos se estudi-
an con detenimiento, en especial los siguientes registros, los cuales permiten
manejar de forma arbitraria los parámetros que configuran estos módulos.

Registros del módulo básico de reloj. La configuración de estos módu-


los consiste en asignar a cada uno de los tres módulos, una fuente de
reloj determinada que satisfaga los requerimientos de consumo y apli-
cación que se requiera.

Registros de control del watchdog timer. La configuración de este módu-


lo permite configurar el WDT a cualquiera de los modos disponibles.

3.1. Registros del módulo 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:

Oscilador Caracterı́stica Código C


DCOCLK1 Frecuencia controlada DCOCTL |= DCO0+DCO1
RC interno digitalmente BCSCTL1 |= RSEL2
Configuración por defecto f=800[kHz]
LFXT1CLK Alta/baja frecuencia BCSCTL1 |= XTS (modo HF)
Cristal interno configurable Ausencia código determina modo LF
XT2CLK Configurable BCSCTL1|=XT2OFF
Cristal externo digitalmente Ausencia código determina modo ON

1
El DCOCLK puede oscilar dentro de un rango entre 80[kHz] y los 8[MHz].
Este rango se encuentra parametrizado por 64 niveles determinables por los
bits DCOx(3) del registro DCOCTLx y los bits RSELx(3) del registro BCSCTL1
(ver figura 1). Además, los bits MODx(5) del registro DCOCTL permiten realizar
un ajuste fino del nivel de frecuencia seleccionado. En el caso expuesto, esta
determinado el código C necesario para configurar el oscilador por defecto.

5
Figura 1: Curva del rango de frecuencia del oscilador DCOCLK

Existen tres módulos básicos de reloj, los cuales pueden ser configurados
a través de los registros DCOCTL, BCSCTL1 y BCSCTL2. La tabla que se expone
a continuación pretende simplificar la búsqueda de los códigos en lenguaje
que permiten configurar los módulos de reloj.

Módulo Fuente Código C Div Código C


ACLK LFXT1CLK Por defecto 1 BCSCTL1 |= DIVA0
Reloj auxiliar 2 BCSCTL1 |= DIVA1
4 BCSCTL1 |= DIVA2
8 BCSCTL1 |= DIVA3
MCLK DCOCLK BCSCTL2 |= SELM0 1 BCSCTL2 |= DIVM0
2
Reloj maestro XT2CLK BCSCTL2 |= SELM2 2 BCSCTL2 |= DIVM1
LFXT1CLK BCSCTL2 |= SELM3 4 BCSCTL2 |= DIVM2
8 BCSCTL2 |= DIVM3
SMCLK DCOCLK BCSCTL2 |= SELS0 1 BCSCTL2 |= DIVS0
Reloj subsistema XT2CLK2 BCSCTL2 |= SELS1 2 BCSCTL2 |= DIVS1
4 BCSCTL2 |= DIVS2
8 BCSCTL2 |= DIVS3

6
2
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.

3.2. 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.

Bit Nombre Función 1 0


0 WDTISx Selecciona el intervalo ??? reloj/512 reloj/32768
1 reloj/64 reloj/8192
2 WDTSSEL Selecciona el reloj del WDT ACLK SMCLK
3 WDTCNTCL Limpia el contador
4 WDTTMSEL Selecciona el modo del WDT Temporizador Watchdog
5 WDTNMI Función para el pin NMI/RST Modo NMI Modo RST
6 WDTNMIES Selecciona el canto para NMI3 Bajada Subida
7 WDTHOLD Bloqueo del WDT Desactivada Activada
8 WDTPWx Establece la contraseña
..
. Lectura: 0x69
15 Escritura: 0x5A

3
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.

3.3. Configuraciones predeterminadas


Las siguientes lı́neas de código parametrizan y simplifican de alguna man-
era la configuración del modulo watchdog timer. Es necesario recordar que
estos parámetros son válidos para la configuración por defecto del módulo
básico de reloj (explicado en detalle con anterioridad), vale decir, pueden ser

7
usados para configurar el timer solo si el reloj de sistema esta configurado a
8 [MHz].
#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*/

/* 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

Вам также может понравиться