Está en la página 1de 111

2.1.

Microcontrolador MSP430_4794

La familia MSP430 de microcontroladores de Texas Instruments de ultra bajo


consumo de potencia, consta de varios dispositivos con diferentes conjuntos de
perifricos orientados para diferentes aplicaciones. La tecnologa, combinada con
cinco modos de bajo consumo se ha optimizado para lograr una mayor vida til de la
batera en aplicaciones de medicin porttiles. El dispositivo cuenta con una CPU
con una tecnologa RISC (Reduced Instruction Set Computer) de 16-bit, registros de
16-bits, y generadores de constantes que contribuyen a la mxima eficiencia del
cdigo. El oscilador controlado digitalmente (DCO) permite pasar de los modos de
bajo consumo al modo activo en menos de 6s.
Las series MSP430F47xx estn dirigidas a contadores elctricos monofsicos con
tres o cuatro convertidores A / D de 16-bit sigma-delta. Cada canal tiene un par de
entrada diferencial y ganancia de entrada programables. Tienen un alto rendimiento,
ideal para su uso en mediciones de precisin.
En la siguiente figura se puede observar como est organizada la arquitectura de
los microcontroladores de esta familia, cuyas funciones y componentes se explicarn
a continuacin.

Figura Error! No hay texto con el estilo especificado en el documento..1 Arquitectura del
microcontrolador MSP430_4794.

1.1.1.

Espacio de direcciones

Los MSP430 tienen una arquitectura de Von Neumann, de un espacio de


direcciones compartido con los registros de funciones especiales (SFRs), los
perifricos, la memoria RAM, y la memoria Flash/ROM tal como queda ilustrado en
la tabla 2.1. Los datos pueden ser accedidos como bytes o como palabras.
Memoria
Main: Vector de interrupcin
Main: Memoria de cdigo
Memoria con posibilidad de
proteccin
Memoria de arranque

Tamao
Flash
Flash
Tamao
Flash
ROM

RAM

Tamao

Perifricos

16-bit
8-bit
8-bit SFR

60KB
0FFFFh to 0FFE0h
0FFFFh to 01100h
256 Byte
010FFh to 01000h
1KB
0FFFh to 0C00h
2.5KB
0BFFh to 0200h
01FFh to 0100h
0FFh to 010h
0Fh to 00h

Tabla Error! No hay texto con el estilo especificado en el documento..1 Distribucin de


memoria.

 Flash/ROM
Esta memoria puede ser programada a travs del puerto JTAG utilizando
el bootstrap loader (BSL- cargador de inicializacin). Tiene una capacidad
de 60 KB y las direcciones comprenden desde 0FFFFh hasta 0FFE0h para
el vector de interrupcin y del 0FFFFh hasta 01100h para el cdigo de
memoria. A parte dispone de 256 Bytes para memoria de informacin
comprendiendo los espacios desde 010FFh hasta 01000h y de 1 KB para la
memoria de arranque siendo sus espacios de direcciones los que van desde
0FFFh a 0C00h.
 Perifricos
Estn conectados a la CPU mediante los buses de datos, direcciones y
buses de control de la CPU, pudiendo ser manejados utilizando todas las
instrucciones. Para los perifricos de 16 bit estn reservados los espacios
de memoria comprendidos entre 01FFh a 0100h y para los de 8 bit del
0FFh al 010h.
 RAM
Este tipo de memoria cuenta con 2.5 KB y sus espacios de memoria van
desde 0BFFh al 0200h.
 Registros de funciones especiales (SFRs)
Algunas funciones para los perifricos se configuran en los SFRs. stos
estn localizados en los ltimos 16 bytes de los espacios de direcciones.
Las direcciones van desde 0Fh hasta 00h.

1.1.2.

System resets, Interrupts and Operating modes

1.1.2.1. System resets and Initialization


La circuitera de reinicio del sistema que se muestra en la figura 2.2 es la que
pone en funcionamiento tanto la seal de Power-On Reset (POR) como la de PowerUp Clear (PUC). Diferentes eventos activan estas seales de puesta a cero y existen
diferentes condiciones iniciales en funcin de la seal que se genere.
El POR es un mecanismo de reinicio del sistema que slo se genera con los
siguientes eventos:

El arranque del microcontrolador.


Una nivel bajo en el pin
/NMI cuando se configura en el modo de

reset.
Un nivel bajo generado por SVS cuando PORON=1.

PUC siempre se genera cuando POR se ha generado, pero no sucede a la inversa.


Los siguientes eventos activan el PUC:

La existencia de la seal de POR.


La expiracin del temporizador Watchdog, slo en modo Watchdog.
Una violacin en la clave de seguridad del Watchdog timer.
Una violacin en la clave de seguridad de la memoria flash.

Figura Error! No hay texto con el estilo especificado en el documento..2 Esquema de los
mecanismos Power-On Reset y Power-Up Clear

CONDICIONES INICIALES DEL DISPOSITIVO DESPUS DEL RESET

El pin

Los pines de entrada y salida estn ajustados en el modo de entrada por


defecto.
Los distintos perifricos y registros se inicializan como se describe en sus
apartados correspondientes.
El registro de estado o Status Register (SR) se reinicia.
El temporizador Watchdog se inicia en el modo de Watchdog.
El Program Counter (PC) se carga con la direccin contenida en la
posicin del vector de puesta a cero (0FFFEh). La ejecucin de la CPU
comienza en esa direccin.

/NMI se ajusta en el modo reset.

INICIALIZACIN DEL SOFTWARE


Despus del reinicio del sistema, el software de usuario debe inicializar el
microcontrolador MSP430 para los requerimientos de la aplicacin. Por consiguiente
suceder:

La inicializacin de Stack Pointer (SP), normalmente al mximo de RAM.


La inicializacin del Watchdog a los requisitos de la aplicacin.
Configuracin de los mdulos perifricos a los requisitos de la aplicacin.

1.1.2.2. Interrupciones
Las prioridades de las interrupciones se fijan y definen por la disposicin de los
mdulos conectados en cadena como aparece en la figura 2.3. El mdulo ms
cercano al CPU/NMIRS tiene la mayor prioridad. Las prioridades de las
interrupciones determinan que interrupcin ser efectiva cuando ms de una estn
pendientes al mismo tiempo. Existen tres tipos de interrupciones:

System reset.
(Non)-maskable NMI.
Maskable.

Figura Error! No hay texto con el estilo especificado en el documento..3 Esquema de prioridad
de las interrupciones.

1.1.2.2.1. (Non)-Maskable Interrupts (NMI)


Las interrupciones NMI no estn enmascaradas por el bit GIE (General interrupt
enable), si no que se habilitan por bits de interrupciones individuales (ACCVIE,
NMIIE, OFIE). Cuando una interrupcin NMI se acepta, todos los bits de
habilitacin de interrupciones NMI se ponen a cero automticamente. La ejecucin
del programa empieza en la direccin del vector de la interrupcin NMI almacenada,
en 0FFFCh. El software de usuario debe poner a 1 los bits de habilitacin de
interrupciones NMI para que aquellas interrupciones vuelvan a ser habilitadas. En la
figura 2.4 se muestra la forma de originar las NMI.

Figura Error! No hay texto con el estilo especificado en el documento..4 Diagrama de bloques
de los orgenes de las NMI.

Una interrupcin NMI puede ser generada por tres vas distintas:

Cuando el pin

El fallo de un oscilador.
Una violacin de acceso a la memoria flash.

/NMI es configurado en el modo NMI.

RESET/NMI PIN
En el arranque, el pin
pines del
pin
el pin

/NMI se configura en el modo reset. La funcin de los

/NMI se selecciona en el Watchdog Control Register (WDTCTL). Si el

/NMI se pone a 1 en la funcin reset, la CPU se mantiene en reset mientras


/NMI siga en su estado bajo. Cuando ste cambia a su estado alto, la CPU

inicia la ejecucin del programa en la direccin de la palabra guardada en el vector


de reset, 0FFFEh.
Si el pin

/NMI se configura por el software de usuario en la funcin NMI, un

flanco de seal seleccionado por el bit WDTNMIES genera una interrupcin NMI si
el bit NMIIE est a 1. El
/NMI apunta a NMIIFG que tambin est a 1.
FALLO DEL OSCILADOR
La seal de fallo del oscilador advierte de una condicin de error posible con el
cristal de cuarzo. El fallo de oscilador puede ser habilitado para generar una
interrupcin NMI por la configuracin del bit OFIE. El flag OFIFG puede ser
comprobado por la rutina de servicio de interrupcin NMI para averiguar si el fallo
del oscilador origin el NMI.
El PUC puede disparar un fallo del oscilador, porque el PUC cambie el LFXT1 al
modo LF, as mismo desactivando el modo HF. La seal de PUC tambin desactiva
el oscilador XT2.
VIOLACIN DE ACCESO A LA MEMORIA FLASH
El flag ACCVIFG se pone a 1 cuando ocurre una violacin de acceso al flash. El
Flash Access Violation puede ser habilitado para generar una interrupcin NMI
configurando el bit ACCVIE. El flag ACCVIFG puede entonces comprobarse por la
rutina de servicio de interrupcin NMI para averiguar si la violacin de acceso a la
flash provoc el NMI.

1.1.2.2.2. Maskable Interrupts


Las interrupciones enmascarables son ocasionadas por los perifricos con
capacidad de interrupcin incluyendo el desbordamiento del temporizador Watchdog
en el modo de intervalo temporizador. Cada fuente de interrupcin enmascarable
puede ser deshabilitada individualmente por su correspondiente bit de habilitacin
de interrupcin, o pueden deshabilitarse todas las interrupciones enmascarables por
el bit de habilitacin de interrupcin general (GIE) en el registro de estado SR.
1.1.2.2.3. Procesamiento de las Interrupciones
Cuando se realiza un peticin de interrupcin por un perifrico y el bit de
habilitacin de interrupcin de ese perifrico y el bit GIE estn a 1, se llama a la
rutina de servicio de interrupcin apropiada.
Aprobacin de las Interrupciones
El perodo de latencia de una interrupcin son seis ciclos, empezando por la
aceptacin del requerimiento de una interrupcin y durando hasta el inicio de la
ejecucin de la primera instruccin de la rutina de servicio de la interrupcin como
se muestra en la figura 2.5. La lgica de la interrupcin se ejecutara de la siguiente
manera:
1) Cualquier instruccin que se est ejecutando se finalizar.
2) El contador de programa PC, que apunta a la siguiente instruccin, se
salva su valor en la pila para ejecutarse despus a partir de la instruccin
siguiente a la ltima ejecutada.
3) El valor del registro de estado SR se guarda tambin en la pila.
4) La interrupcin ms prioritaria es elegida si existen ms de una
interrupcin al mismo tiempo durante la ltima instruccin y estn
pendientes de servicio.
5) El marcador de solicitud de interrupcin restablece automticamente los
marcadores de fuente nica.
6) El registro de estado SR se pone a 0 quedando tan solo el valor de SCG0,
que permanece igual. Esto termina cualquier modo de bajo consumo.
Debido a que el bit GIE = 0, interrupciones posteriores se desactivan.
7) El contenido del vector de interrupcin se carga en el PC y el programa
continua con la rutina de servicio de interrupciones en esa direccin.

Figura Error! No hay texto con el estilo especificado en el documento..5 Rutina de servicio de
interrupcin.

Retorno de Interrupcin
La rutina de tratamiento de interrupciones termina con la siguiente instruccin:
RETI (Return froman interrupt service routine)
El retorno de interrupcin necesita 5 ciclos para ejecutar las acciones siguientes y
que se muestran en la figura 2.6:
1) El SR con todos sus ajustes previos aparece de la pila. Todos los ajustes
previos del GIE, CPUOFF, etc., entran ahora en vigor, sin tener en cuenta
los ajustes utilizados en la rutina de servicio de interrupcin.
2) El PC aparece de la pila y empieza su ejecucin en el punto en el que fue
interrumpido.

Figura Error! No hay texto con el estilo especificado en el documento..6 Funcionamiento del
retorno de interrupcin

1.1.2.2.4. Vectores de interrupcin


Los vectores de interrupcin y las direcciones de inicio de encendido estn
localizadas en el rango de direcciones de 0FFFFh hasta 0FFE0h como se describe en
la tabla 2.1. Un vector es programado por el usuario con la direccin de 16-bit de la
correspondiente rutina de servicio de interrupcin. Algunos dispositivos pueden
contener ms vectores de interrupcin.
Fuente de Interrupcin
Power-Up
External Reset
Watchdog
Flash Memory
PC OutofRange (Ver
nota 4)
NMI
Oscillator Fault
Flash Memory Access
Violation
Timer_B3
Timer_B3
Comparator_A
Watchdog Timer
USCI_A0/B0 Receive

USCI_A0/B0 Transmit

SD16_A

Timer_A3
Timer_A3
I/O Port P1
(Eight Flags)
USCI_A1/B1 Receive

USCI_A1/B1 Transmit
I/O Port P2
(Eight Flags)
Basic Timer1

Flags de Interrupcin

Tipo de
Interrupcin

Direccin

Prioridad

PORIFG
RSTIFG
WDTIFG
KEYV
(Ver nota 1)

Reset

0FFFEh

15, highest

NMI

0FFFCh

14

Enmascarada

0FFFAh

13

Enmascarada

0FFF8h

12

Enmascarada
Enmascarada

0FFF6h
0FFF4h

11
10

Enmascarada

0FFF2h

Enmascarada

0FFF0h

Enmascarada

0FFEEh

Enmascarada

0FFECh

Enmascarada

0FFEAh

Enmascarada

0FFE8h

Enmascarada

0FFE6h

Enmascarada

0FFE4h

Enmascarada

0FFE2h

Enmascarada

0FFE0h

0, lowest

NMIIFG (Ver notas 1 y 3)


OFIFG (Ver notas 1 y 3)
ACCVIFG (Ver notas 1 y
3)
TBCCR0 CCIFG (Ver
nota 2)
TBCCR1 to TBCCR2
CCIFGs
TBIFG (Ver notas 1 y 2)
CAIFG
WDTIFG
UCA0RXIFG,
UCB0RXIFG
(Ver nota 1 y 5)
UCA0TXIFG,
UCB0TXIFG
(Ver nota 1 y 6)
SD16CCTLx
SD16OVIFG,
SD16CCTLx SD16IFG
(Ver notas 1 y 2)
TACCR0 CCIFG (Ver
nota 2)
TACCR1 y TACCR2
CCIFGs,
TAIFG (Ver notas 1 y 2)
P1IFG.0 to P1IFG.7
(Ver notas 1 y 2)
UCA1RXIFG,
UCB1RXIFG
(Ver notas 1 y 2)
UCA1TXIFG,
UCB1TXIFG
(Ver notas 1 y 2)
P2IFG.0 to P2IFG.7
(Ver notas 1 y 2)
BTIFG

Tabla Error! No hay texto con el estilo especificado en el documento..2 Fuentes, marcadores y
vectores de interrupcin.

Nota 1: Flags de fuentes mltiples.


Nota 2: Los flags de interrupcin estn en los mdulos.
Nota 3: El bit individual de interrupcin habilitada puede desactivar un evento de
interrupcin, pero no pueden hacerlo las GIE.
Nota 4: El reset se ejecuta si la CPU intenta obtener instrucciones del rango de
direcciones del mdulo de registro de memoria (0h a 01FFh).
Nota 5: En el modo SPI: UCB0RXIFG. En el modo I2C: UCALIFG,
UCNACKIFG, ICSTTIFG, UCSTPIFG en el registro UCB0STAT.
Nota 6: En el modo UART/SPI : UCB0TXIFG. En el modo I2C : UCB0RXIFG,
UCB0TXIFG.
Nota 7: En el modo SPI : UCB1RXIFG. En el modo I2C : UCALIFG,
UCNACKIFG, ICSTTIFG, UCSTPIFG en el registro UCB1STAT.
Nota 8: En el modo UART/SPI : UCB1TXIFG. En el modo I2C : UCB1RXIFG,
UCB1TXIFG.

1.1.2.2.5. Registros de funciones especiales (SFRs)


Algunos mdulos habilitan bits, las interrupciones habilitan bits, y los marcadores
de interrupcin se encuentran en los SFRs. stos estn localizados en el rango de
direcciones ms pequeos y estn implementados en formato byte. Deben ser
accedidos utilizando instrucciones del tipo byte.
La mayora de las interrupciones y de los bits de los mdulos de habilitacin se
recogen en los espacios de memoria ms bajos. Los bits de registros de funciones
especiales que no estn asignados a un propsito funcional no estn fsicamente en
el dispositivo. Esta disposicin provee un sencillo acceso del software.
Habilitacin de interrupciones 1 y 2

WDTIE Interrupcin del temporizador Watchdog habilitada. Inactiva si el modo


Watchdog est seleccionado. Activa si el temporizador est configurado en el modo
de intervalo.
OFIE Habilitacin de fallo del oscilador.
NMIIE Habilitacin de interrupcin NMI.
ACCVIE Habilitacin de violacin de acceso a la flash.

UCA0RXIE USCI_A0 habilitacin de interrupcin de recepcin.


UCA0TXIE USCI_A0 habilitacin de interrupcin transmisin.
UCB0RXIE USCI_B0 habilitacin de interrupcin de recepcin.
UCB0TXIE USCI_B0 habilitacin de interrupcin de transmisin.
BTIE Habilitacin de interrupcin de temporizador bsico.

Registros 1 y 2 del flag de interrupcin

WDTIFG Puesta a 1 ante desbordamiento del temporizador Watchdog o


violacin de la clave de seguridad. Puesta a 0 al encender Vcc o en condicin de
/NMI.
reset en el modo reset del pin
OFIFG Puesta a 1 del flag en fallo del oscilador.
PORIFG Puesta a 0 externa del flag de interrupcin. Puesta a 1 en condicin de
reset en el modo reset del pin
/NMI. Puesta a 0 al encender Vcc.
RSTIFG flag de interrupcin de encendido. Puesta a 1 al encender Vcc.
NMIIFG Puesta a 1 a travs del pin

/NMI.

UCA0RXIFG USCI_A0 flag de interrupcin para recepcin.


UCA0TXIFG USCI_A0 flag de interrupcin para transmisin.
UCB0RXIFG USCI_B0 flag de interrupcin para recepcin.
UCB0TXIFG USCI_B0 flag de interrupcin para transmisin.
BTIFG flag de interrupcin del temporizador bsico.

Leyenda:
rw-0 Bit de lectura y escritura. Se pone 0 con el PUC.
rw-1 Bit de lectura y escritura. Se pone a 1 con el PUC.
rw-(0) Bit de lectura y escritura. Se pone a 0 con el POR.
rw-(1) Bit de lectura y escritura. Se pone a 1 con el POR.

1.1.2.3. Modos de funcionamiento


El microcontrolador MSP430 tiene un modo activo de funcionamiento y cinco
modos de seleccin de programa de bajo consumo. Un evento de interrupcin puede
despertar el dispositivo de cualquiera de los modos de bajo consumo, atendiendo a la
solicitud y restaurando de nuevo al modo de bajo consumo en el retorno del
programa de la interrupcin.
Los cinco modos de bajo consumo se configuran con los bits CPUOFF, OSCOFF,
SCG0 y SCG1 en el registro de estado. La ventaja de incluir estos bits de control de
los modos de funcionamiento en el SR, es que el modo de funcionamiento presente
se almacena en la pila durante la rutina de servicio de interrupcin. El flujo de
programa vuelve al modo de funcionamiento anterior si el valor del SR guardado no
se altera durante la rutina de servicio de interrupcin. El flujo de programa puede ser
devuelto a un modo de funcionamiento diferente mediante la manipulacin del valor
del SR de la pila dentro de la rutina de servicio de interrupcin. Se puede acceder
con cualquier instruccin al bit de control de modos de funcionamiento y a la pila.
Al ajustar cualquiera de los bits de control de modos de funcionamiento, el modo
elegido entra en vigor inmediatamente. Los perifricos que funcionan con algn
reloj desactivado, se desactivan hasta que se vuelve a activar el reloj. Los perifricos
tambin se pueden desactivar con su ajuste individual del registro de control. Todos
los puertos de entrada y salida y los registros de memoria RAM permanecen
invariables. La reactivacin se habilita a travs de todas las habilitaciones de
interrupcin.
Los modos de funcionamiento son los siguientes:

Active mode (AM)

Todos los relojes se activan.

Low-power mode 0 (LPM0)

La CPU se desactiva.
El reloj de sub-sistema (SMCLK) y auxiliar (ACLK) permanecen activos.
El reloj maestro se desactiva.
El control de bucle del modulo FLL+ permanece activo.

Low-power mode 1 (LPM1)

La CPU se desactiva.
El control de bucle del modulo FLL+ se desactiva.
El reloj de sub-sistema (SMCLK) y auxiliar (ACLK) permanecen activos.
El reloj maestro se desactiva.

Low-power mode 2 (LPM2)

La CPU se desactiva.
El reloj maestro (MCLK), el control de bucle del modulo FLL+ y la fuente
de oscilador controlado digitalmente (DCOCLK) se desactivan.
El generador dc DCO permanece activo.
El ACLK permanece activo.

Low-power mode 3(LPM3)

La CPU se desactiva.
El MCLK, el control de bucle FLL+ y el DCOCLK se desactivan.
El generador dc DCO se desactiva.
El ACLK permanece activo.

Low-power mode 4 (LPM4)

La CPU se desactiva.
El ACLK se desactiva.
El MCLK, el control de bucle FLL+ y el DCOCLK se desactivan.
El generador dc DCO se desactiva.
El reloj de cuarzo se para.

Figura Error! No hay texto con el estilo especificado en el documento..7 Modos de funcionamiento

1.1.3.

CPU

La CPU MSP430 tiene una arquitectura RISC de 16-bit que es muy transparente
para la aplicacin. Todas las operaciones, a parte de las instrucciones de flujo del
programa que son 27, se llevan a cabo como operaciones de registro en conjunto con
siete modos de direccionamiento para el operando de la fuente y cuatro modos de
direccionamiento para el operando de destino.

Figura Error! No hay texto con el estilo especificado en el documento..8 Diagrama de bloques
de la CPU.

1.1.3.1. Registros
La CPU est integrada con 16 registros de 16-bit que facilitan la reduccin del
tiempo de ejecucin de instrucciones. El tiempo de ejecucin de la operacin
registro a registro es un ciclo del reloj de la CPU. Cuatro de los registros, R0 a R3,
se dedican como contador de programa, puntero de pila, registro de estado, y un
generador constante, respectivamente. Los registros restantes son de uso general.
Los perifricos estn conectados a la CPU a partir de datos, direccin y control de
los buses, y se puede manejar con todas las instrucciones.
CONTADOR DE PROGRAMA (PC)
El contador de programa de 16-bit (PC/R0) apunta a la siguiente
instruccin que se va a ejecutar. Cada instruccin utiliza un nmero par de
bits y consecuentemente se incrementa el PC.
STACK POINTER (SP)
La CPU utiliza el Stack Pointer (SP/R1) para almacenar las direcciones de
retorno de las llamadas de subrutinas e interrupciones. Utiliza una
combinacin de predecremento y postincremento. Adems se puede usar
mediante software todas las instrucciones y modos de direccionamiento.
REGISTRO DE ESTADO (SR)
El registro de estado (SR/R2), utilizado como una fuente o registro de
destino, puede ser utilizado en el modo de registro nicamente con
instrucciones de palabra. El resto de combinaciones de modos de
direccionamiento se utilizan para apoyar el generador constante.
GENERADOR CONSTANTE DE REGISTROS (CG1 Y CG2)
Las seis constantes comnmente ms usadas se forman por los
generadores de registros R2 y R3, sin necesitar una palabra de 16-bit
adicional del cdigo de programa. Las constantes son seleccionadas con el
modo de direccionamiento del registro de origen (As Addressing
source).
REGISTROS DE PROPSITO GENERAL
Son doce los registros de propsito general, R4 a R15. Todos se pueden
utilizar como registros de datos, punteros de direccin, o valores de ndice,
y pueden ser accedidos mediante instrucciones de byte o de palabra.

1.1.3.2. Modos de direccionamiento


Existen siete modos de direccionamiento para el operando de origen y cuatro
modos para el de destino que pueden direccionar todo el espacio de direcciones sin
excepciones.
La siguiente tabla muestra los distintos operandos de los modos de
direccionamiento de origen y destino. stos se explicarn con ms detalle a
continuacin segn se explica en el manual, cada modo de direccionamiento se
explicar mediante una tabla sacada del mismo manual.

Tabla Error! No hay texto con el estilo especificado en el documento..3 Modos de


direccionamiento.

1) Modo de Registro(directo)
Como bien se expresa en la tabla esta operacin mueve el contenido del
registro R10 al registro R11.

Tabla Error! No hay texto con el estilo especificado en el documento..4 Register mode.

2) Modo Indexado
En este caso el contenido que se mueve es el perteneciente al espacio de
memoria de la suma del registro indicado y la cantidad especificada
delante. El Program Counter se incrementa automticamente.

Tabla Error! No hay texto con el estilo especificado en el documento..5 Indexed mode.

3) Modo Simblico
Mueve el contenido del espacio de memoria de origen EDE, contenido del
PC + X, hasta el espacio de memoria de destino TONI, contenido del PC +
Y. El Program Counter se incrementa automticamente.

Tabla Error! No hay texto con el estilo especificado en el documento..6 Symbolic mode.

4) Modo Absoluto
Mueve el contenido del espacio de memoria de origen EDE al espacio de
memoria de destino TONI. El PC se incrementa automticamente.

Tabla Error! No hay texto con el estilo especificado en el documento..7 Absolute mode.

5) Modo Indirecto
Mueve el contenido del espacio de memoria de origen, contenido del
registro R10, al espacio de destino, contenido del registro R11.

Tabla Error! No hay texto con el estilo especificado en el documento..8 Indirect mode.

6) Modo Indirecto con Autoincremento


Mueve el contenido del espacio de memoria de origen contenido en el
registro R10, al espacio de memoria de destino.

Tabla Error! No hay texto con el estilo especificado en el documento..9 Indirect autoincrement
mode.

7) Modo Inmediato

Tabla Error! No hay texto con el estilo especificado en el documento..10 Immediate mode.

1.1.3.3. Conjunto de instrucciones


El conjunto completo de instrucciones de los MSP430 consisten de 27
instrucciones comunes y 24 instrucciones emuladas. Las instrucciones comunes son
aquellas que tienen un nico cdigo de operacin decodificado por la CPU. Las
instrucciones emuladas hacen un cdigo ms sencillo para leer y escribir, pero no
tienen un cdigo de funcionamiento por s mismas, en su lugar son reemplazados
automticamente por el ensamblador con una instruccin comn equivalente. Hay
tres formatos para las instrucciones comunes: Double-operand, Single-operand y
Jump.
Todas las instrucciones Double-operand y Single-operand pueden ser del tipo
Byte o del tipo Word mediante las extensiones .B o .W. Las instrucciones de
palabras son utilizadas para acceder a datos de palabra o perifricos de palabra. Si
no se utiliza ninguna extensin, se entiende que la instruccin ser de palabra. El
origen y el destino de una instruccin se definen con los siguientes campos:
src

El operando de origen definido por As y S-reg.

dst

El operando de destino definido por Ad y D-reg.

As

Los bits de direccionamiento responsables por el modo de


direccionamiento utilizado en el origen (src).

S-reg

El registro de funcionamiento utilizado en el origen (src).

Ad

Los bits de direccionamiento responsables por el modo de


direccionamiento utilizado en el destino (dst).

D-reg

El registro de funcionamiento utilizado en el destino (dst).

En la siguiente tabla se muestran las 51 instrucciones entre las cuales se pueden


distinguir las 27 principales y las 24 emuladas, stas ltimas marcadas con . Las
instrucciones Double-operand son aquellas que pueden utilizarse tanto en el origen
como en el destino, las Single-operand son aquellas que solo pueden usarse en el origen
o en el destino, mientras que las instrucciones Jump son aquellas que saltan de registro.
Mnemonic
ADC(.B)
ADD(.B)
ADDC(.B)
AND(.B)
BIC(.B)
BIS(.B)
BIT(.B)
BR
CALL

S-Reg,
D-Reg
dst
src,dst
src,dst
src,dst
src,dst
src,dst
src,dst
dst
dst

Description

Operation

Add C to destination
Add source to destination
Add source and C to destination
AND source and destination
Clear bits in destination
Set bits in destination
Test bits in destination
Branch to destination
Call destination

dst + C dst
src + dst dst
src + dst + C dst
src .and. dst dst
.not.src .and. dst dst
src .or. dst dst
src .and. dst
dst PC
PC+2 stack, dst PC

CLR(.B)
CLRC
CLRN
CLRZ
CMP(.B)

dst
src,dst
dst
src,dst
dst

Clear destination
Clear C
Clear N
Clear Z
Compare source and destination

DADC(.B) dst

Add C decimally to destination

DADD(.B)

dst

Add source and C decimally to dst.

DEC(.B)
DECD(.B)
DINT
EINT
INC(.B)
INCD(.B)
INV(.B)
JC/JHS
JEQ/JZ
JGE
JL
JMP
JN
JNC/JLO
JNE/JNZ
MOV(.B)
NOP
POP(.B)
PUSH(.B)
RET
RETI
RLA(.B)
RLC(.B)
RRA(.B)
RRC(.B)
SBC(.B)
SETC
SETN
SETZ
SUB(.B)
SUBC(.B)
SWPB
SXT
TST(.B)
XOR(.B)

dst
dst
label
label
label
label
label
label
label
label
src,dst
dst
src
dst
dst
dst
dst
dst
src,dst
src,dst
dst
dst
dst
src,dst
dst
src,dst
src,dst
src,dst
src,dst
src,dst
src,dst
dst
Dst
Dst
src,dst

Decrement destination
Double-decrement destination
Disable interrupts
Enable interrupts
Increment destination
Double-increment destination
Invert destination
Jump if C set/Jump if higher or same
Jump if equal/Jump if Z set
Jump if greater or equal
Jump if less
Jump
Jump if N set
Jump if C not set/Jump if lower
Jump if not equal/Jump if Z not set
Move source to destination
No operation
Pop item from stack to destination
Push source onto stack
Return from subroutine
Return from interrupt
Rotate left arithmetically
Rotate left through C
Rotate right arithmetically
Rotate right through C
Subtract not(C) from destination
Set C
Set N
Set Z
Subtract source from destination
Subtract source and not(C) from dst.
Swap bytes
Extend sign
Test destination
Exclusive OR source and destination

0 dst
0C
0N
0Z
dst src
dst + C dst
(decimally)
src + dst + C dst
(decimally)
dst 1 dst
dst 2 dst
0 GIE
1 GIE
dst +1 dst
dst+2 dst
.not.dst dst

PC + 2 x offset PC

src dst
@SP dst, SP+2 SP
SP 2 SP, src @SP
@SP PC, SP + 2 SP

@SP dst, SP+2 SP


SP 2 SP, src @SP
@SP PC, SP + 2 SP
@SP dst, SP+2 SP
SP 2 SP, src @SP
@SP PC, SP + 2 SP

dst + 0FFFFh + 1
src .xor. dst dst

Tabla Error! No hay texto con el estilo especificado en el documento..11 Conjunto de


instrucciones.
Emulated instruction

1.1.4.

FLL+ Mdulo de reloj

El reloj de sistema est diseado especialmente para aplicaciones con


alimentacin por pilas o bateras. La generacin de reloj corre a cargo del mdulo
FLL (Bucle de enganche de frecuencia) que incluye las posibilidades de usar un
reloj de cuarzo de baja frecuencia de 32 KHz, un oscilador interno controlado
digitalmente (DCO), y un reloj de cuarzo de alta frecuencia de 8 MHz (XT1) ms
otro de 16 MHz (XT2). Un reloj auxiliar de baja frecuencia (ACLK) se obtiene a
partir de un reloj de cuarzo de 32KHz. El microcontrolador integra un oscilador
controlado digitalmente de gran velocidad (DCO) que puede generar el reloj maestro
(MCLK) utilizado por la CPU y los perifricos de alta velocidad. Segn su diseo, el
DCO se activa y estabiliza en menos de 6 s. ste microcontrolador aprovecha muy
bien el rendimiento de su tecnologa cambiando de un estado de bajo consumo al
estado activo en el que los osciladores pueden funcionar al mximo. En
consecuencia el reloj de sistema se caracteriza por los siguientes efectos:

Reloj auxiliar de baja frecuencia > Bajo consumo de potencia en modo


standby.
Reloj maestro de alta velocidad > Alto rendimiento en el procesado de la
seal y aumenta el consumo de potencia.

El mdulo de reloj de bucle de enganche de frecuencia (FLL+) mantiene bajo el


coste y el ultra bajo consumo. Utiliza tres seales internas de reloj, el usuario puede
elegir el mejor balance de rendimiento y bajo consumo. El FLL opera en conjunto
con un modulador digital y estabiliza la frecuencia del oscilador interno controlado
digitalmente (DCO) a un mltiplo programable de la frecuencia del reloj de cuarzo
LFXT1. El mdulo FLL+ se puede configurar para funcionar sin la necesidad de
componentes externos, con uno o dos osciladores de cuarzo externos, o con
resonadores, bajo el control total del software.
El mdulo de reloj FLL+ incluye varias fuentes de reloj:

LFXT1CLK: Oscilador de baja frecuencia/alta frecuencia que se puede


usar bien con un reloj de cuarzo de baja frecuencia de 32768-Hz, bien con
cuarzos normales o con resonadores en el rango de frecuencias de 450-Hz
a 8-MHz.
XT2CLK: Oscilador opcional de alta frecuencia que se puede usar con
cuarzos normales, resonadores o fuentes de reloj externas en el rango de
frecuencias de 450-HZ hasta 16-MHz.
DCOCLK: Oscilador controlado digitalmente con caractersticas de tipo
RC, estabilizado por el FLL.
VLOCLK: Oscilador interno de bajo consumo y baja frecuencia, con una
frecuencia tpica de 12-KHz.

Cuatro seales de reloj estn disponibles del mdulo FLL+:

ACLK: Reloj auxiliar. El reloj auxiliar es seleccionable va software como


LFXT1CLK o VLOCLK como fuente de reloj. El ACLK es seleccionable
va software para mdulos de perifricos individuales.
ACLK/n: Salida separadora del ACLK. El ACLK/n es la seal de ACLK
dividida por 1, 2, 4 u 8 y slo se usa externamente.
MCLK: Reloj maestro. El MCLK es seleccionable va software como
LFXT1CLK, VLOCLK, XT2CLK (si est disponible) o DCOCLK. EL
MCLK se puede dividir por 1, 2, 4 u 8 sin el bloque del FLL. Se usa para
la CPU y el sistema.
SMCLK: Reloj del sub sistema. El SMCLK es seleccionable va software
como XT2CLK (si est disponible) o como DCOCLK. Se selecciona para
mdulos de perifricos individuales.

El diagrama de bloques del funcionamiento del mdulo de reloj FLL+ se puede


ver en la siguiente figura.

Figura Error! No hay texto con el estilo especificado en el documento..9 Diagrama de bloques
del mdulo FLL+.

1.1.4.1. Funcionamiento del mdulo de reloj FLL+


Despus de un PUC, el MCLK y el SMCLK se originan del DCOCLK a 32 veces
la frecuencia del ACLK. Cuando se usa un cuarzo de 32768-Hz para el MCLK, el
SMCLK y el ACLK se estabilizan a 1.048576-MHz.
Los bits de control del registro de estado SCG0, SCG1, CPUOFF y OSCOFF
configuran los modos de funcionamiento del MSP430 y activan o desactivan los
componentes del mdulo de reloj FLL+. Los registros SCFQCTL, SCFI0, SCFI1,
FLL_CTL0, y FLL_CTL1 configuran el mdulo de reloj FLL+. ste puede ser
configurado o reconfigurado en cualquier momento por el software durante la
ejecucin del programa.

1.1.4.2. Oscilador interno de muy bajo consumo y baja frecuencia


El VLO proporciona una frecuencia tpica de 12-KHz sin la necesidad de un
cuarzo. La fuente de reloj VLOCLK se elige ajustando LFXT1Sx = 10 cuando
XTS_FLL = 0. El bit OSCOFF desactiva el VLO para LPM4. Los osciladores de
cuarzo LFXT1 se desactivan cuando el VLO se selecciona, reduciendo el consumo
de corriente. El VLO no consume energa cuando no se est usando.
1.1.4.3. Oscilador LFXT1
ste oscilador admite un consumo muy bajo de corriente utilizando un reloj de
cuarzo de 32768-Hz en el modo LF (XTS_FLL = 0). Un reloj de cuarzo conecta a
XIN y XOUT con los componentes externos.
ste oscilador admite cristales de alta velocidad o resonadores cuando en el modo
HF, XTS_FLL = 1. El cristal de alta velocidad o el resonador conecta a XIN y
XOUT.
LFXT1 se debe usar con una seal de reloj externa conectada al pin XIN cuando
XTS_FLL = 1. El rango de frecuencia de entrada va de 1-Hz a 8-MHz. Cuando la
frecuencia de entrada est por debajo de 450-KHz, el bit de XT1OF se debe poner a
1 para prevenir que la CPU se sincronice por una frecuencia externa.
Los bits de seleccin de software XCAPxPF configura la capacitancia de carga
provista internamente para el cristal LFXT1. El pin interno de capacitancia ms el
pin de capacidad parsita de 2-pF se combinan en serie para formar la capacidad de
carga. La capacidad de carga se puede elegir como 1, 6, 8 o 10-pF. Se pueden aadir
condensadores externos adicionales si son necesarios.
El software puede desactivar LFXT1 mediante el ajuste de OSCOFF si esta seal
no origina el MCLK (SELM 3 o CPUOFF = 1)
1.1.4.4. Oscilador secundario (XT2)
Algunos dispositivos tienen un segundo oscilador de cuarzo, XT2. ste origina la
seal de reloj XT2CLK y sus caractersticas son idnticas al LFXT1 en el modo HF,
exceptuando que el XT2 no tiene condensadores de carga interna. El condensador de
carga requerido para el cuarzo de alta frecuencia o el resonador debe ser
proporcionado externamente.
El bit XT2OFF desactiva el oscilador XT2 si la seal XT2CLK no se usa para el
reloj maestro MCLK (SELMx 2 o CPUOFF = 1)y el reloj de sub sistema SMCLK
(SELS = 0 o SMCLKOFF = 1).
El XT2 se debe usar con una seal de reloj externa en el pin XT2IN. Cuando es
usado con una seal externa, la frecuencia externa debe cumplir los parmetros de la
hoja de caractersticas para el XT2.

Si slo hay un reloj de cuarzo en el sistema, ste debera estar conectado al


LFXT1. Usando slo el XT2 causa un flag de error del LFOF para permanecer a 1,
no permitiendo que OFIFG se ponga a 0.
1.1.4.5. Oscilador controlado digitalmente (DCO)
El DCO es un oscilador en anillo con caractersticas tipo RC. Su frecuencia se
estabiliza por el FLL a un mltiplo de la seal de reloj ACLK, los ltimos 7 bits del
registro SCFQCTL.
El bit DCOPLUS ajusta la frecuencia fDCOCLK a fDCO o fDCO/D. Los bits FLLDx
configuran los divisores, D, a 1, 2, 4 u 8. Por defecto DCOPLUS = 0 y D = 2,
proporcionando una frecuencia de reloj de fDCO/2 para fDCOCLK.
Los factores (N + 1) y D ajustan la frecuencia de DCOCLK.
DCOPLUS = 0: fDCOCLK = (N + 1) x f ACLK
DCOPLUS = 1: fDCOCLK = D x (N + 1) x fACLK
El rango de frecuencias de fDCO se seleccionan con los bits FNx como se
muestra en la tabla 2.11. El usuario debe asegurarse que el MCLK no sobrepasa el
mximo de frecuencia de funcionamiento.
FN_8
0
0
0
0
1

FN_4
0
0
0
1
X

FN_3
0
0
1
X
X

FN_2
0
1
X
X
X

Typical fDCO range


0.65 to 6.1
1.3 to 12.1
2 to 17.9
2.8 to 26.6
4.2 to 46

Tabla Error! No hay texto con el estilo especificado en el documento..12 Rango de frecuencias
de los bits de control DCO

1.1.4.6. Bucle de enganche de frecuencia (FLL)


La FLL cuenta continuamente arriba y abajo un integrador de frecuencia de 10bit. La salida del integrador de frecuencia que conduce el DCO puede ser leda en
SCFI1 y SCFI0 (System Clock Frequency Integrator 1 and 2). La cuenta se ajusta +1
o -1 a cada perodo de ACLK.
Cinco de los bits del integrador, los bits 7-3 del SCFI1, ajustan el tap de
frecuencia del DCO. 29 taps se implementan para el DCO (Las 28, 29, 30 y 31 son
equivalentes), y cada uno es aproximadamente un 10% mayor que el anterior. El
modulador mezcla dos frecuencias del DCO adyacentes para producir taps
fraccionales. Los bits 2-0 del SCFI1 y los bits 1-0 del SCFI0 son para el modulador.
El DCO empieza en el tap ms bajo despus de un PUC o cuando SCFI1 o SCFI0
estn a 0.

1.1.4.7. Modulador DCO


El modulador mezcla dos frecuencias del DCO adyacentes para producir una
frecuencia intermedia efectiva y propagar la energa del reloj, reduciendo la
interferencia electromagntica (EMI). El modulador mezcla las dos frecuencias
adyacentes a travs de los 32 ciclos de reloj del DCOCLK.
El error de la frecuencia efectiva es 0 cada 32 ciclos del DCOCLK y no se
acumulan. Los ajustes del modulador y el control del DCO se controlan
automticamente por el hardware del FLL.
1.1.4.8. Desactivando el hardware del FLL y el modulador
El FLL se desactiva cuando el bit del registro de estado SCG0 = 1. Cuando el
FLL se desactiva, el DCO se ejecuta en el tap previamente seleccionado y el
DCOCLK no se estabiliza automticamente.
El modulador DCO se desactiva cuando el SCFQ_M = 1. Cuando el DCO es
desactivado, el DCOCLK se ajusta al tap ms cercano disponible del DCO.
1.1.4.9. Registros del mdulo de reloj FLL+
Register
System clock control
System clock frequency integrator 0
System clock frequency integrator 1
FLL+ control register 0
FLL+ control register 1
FLL+ control register 2
SFR interrupt enable register 1
SFR interrupt flag register 1

Short Form
SCFQCTL
SCFI0
SCFI1
FLL_CTL0
FLL_CTL1
FLL_CTL2
IE1
IFG1

Register Type
Read/write
Read/write
Read/write
Read/write
Read/write
Read/write
Read/write
Read/write

Address
052h
050h
051h
053h
054h
055h
000h
002h

Initial State
01Fh with PUC
040h with PUC
Reset with PUC
003h with PUC
Reset with PUC
Reset with PUC
Reset with PUC
Reset with PUC

Tabla Error! No hay texto con el estilo especificado en el documento..13 Registros FLL+

En la tabla 2.12 se pueden ver los 8 registros del mdulo de reloj FLL+ que a
continuacin se explicarn detalladamente.
SCFQCTL, registro de control del reloj del sistema

SCFQ_M

Bit-7

Modulacin, activa o desactiva la modulacin.


0 Modulacin activada
1 Modulacin desactivada

Bits

Multiplicador, estos bits ajustan el valor de multiplicacin

6-0

para el DCO. N debe ser > 0 o resultan impredecibles


operaciones.
Cuando DCOPLUS = 0: fDCOCLK = (N + 1) fcrystal
Cuando DCOPLUS = 1: fDCOCLK = D x (N + 1) fcrystal

SCFI0, registro 0 del integrador de frecuencia del reloj de sistema

FLLDx

Bits
7-6

Divisor de bucle FLL+. Estos bits dividen fDCOCLK entre el


bucle de realimentacin FLL+. Esto resulta en un
multiplicador adicional para los bits del multiplicador.
00
01
10
11

FN_x

Bits
5-2

Control del rango de frecuencia de DCO. Selecciona el rango


de operacin de fDCO.
0000
0001
001x
01xx
1xxx

MODx (LSBs)

Bits
1-0

/1
/2
/4
/8

0.65 to 6.1 MHz


1.3 to 12.1 MHz
2 to 17.9 MHz
2.8 to 26.6 MHz
4.2 to 46 MHz

ltimos bits significativos del modulador. El bit 0 es el


modulador LSB. Estos bits afectan al patrn del modulador.
Todos los bits MODx se modifican automticamente por el
FLL+.

SCFI0, registro 0 del integrador de frecuencia del reloj de sistema

DCOx

Bits
7-3

Estos bits seleccionan el tap del DCO y son modificados


automticamente por el FLL+.

MODx (MSBs)

Bits
1-0

Bits ms significativos del modulador. El bit 2 es el


modulador MSB. Estos bits afectan al patrn del modulador.
Todos los bits MODx se modifican automticamente por el
FLL+.

FLL_CTL0, registro de control 0 del FLL+

DCOPLUS

Bits-7

Pre-divisor de salida del DCO. Este bit selecciona si la salida


del DCO es pre-dividido antes de originar la seal MCLK o
SMCLK. La tasa de divisin se elige con el bit FLL_D.
0 La salida del DCO se divide
1 La salida del DCO no se divide

XTS_FLL

Bit-6

Seleccin del modo LFTX1


0 Modo de baja frecuencia
1 Modo de alta frecuencia

XCAPxPF

Bits
5-4

Oscilador de seleccin de condensador. Estos bits eligen la


capacidad efectiva vista para el LFTX1 o resonador. Se debe
poner a 00 si el modo de alta frecuencia est seleccionado
para LFTX1 con XTS_FLL =1.
00
~1 pF
01
~6 pF
10
~8 pF
11
~10 pF

XT2OF

Bit-3

Fallo del oscilador XT2.


0 Sin condicin de fallo
1 Condicin de fallo

XT1OF

Bit-2

Fallo del oscilador de alta frecuencia LFTX1


0 Sin condicin de fallo
1 Condicin de fallo

LFOF

Bit-1

Fallo del oscilador de baja frecuencia LFTX1


0 Sin condicin de fallo
1 Condicin de fallo

DCOF

Bit-0

Fallo del oscilador DCO


0 Sin condicin de fallo
1 Condicin de fallo

FLL_CTL1, registro de control 1 del FLL+

LFXT1DIG

Bit-7

Selecciona la fuente del reloj digital externo. ste bit activa


la entrada de un reloj digital externo en XIN en el modo de
baja frecuencia (XTS_FLL = 0)
0
Entrada de cristal de cuarzo seleccionada
1
Entrada de reloj digital seleccionada

SMCLKOFF

Bit-6

SMCLK apagado. ste bit apaga el SMCLK.


0
SMCLK encendido
1
SMCLK apagado

XT2OFF

Bit-5

XT2 apagado. ste bit apaga el oscilador XT2.


0
XT2 encendido
1
XT2 apagado si no se usa por el MCLK o el SMCLK

SELMx

Bits
4-3

Selecciona el MCLK. ste bit elige la fuente del MCLK.


00
01
10
11

DCOCLK
DCOCLK
XT2CLK
LFXT1CLK

SELS

Bit-2

Selecciona el SMCLK. ste bit elige la fuente del SMCLK.


0
DCOCLK
1
XT2CLK

FLL_DIVx

Bits
1-0

Divisor del ACLK.


00
01
10
11

/1
/2
/4
/8

FLL_CTL2, registro de control 2 del FLL+

XT2Sx

Bits
7-6

Selector del rango de frecuencias del XT2.


00
01
10
11

0.4 1-MHz cuarzo o resonador


1 3-MHz cuarzo o resonador
3 16-MHz cuarzo o resonador
Fuente de reloj digital externa de 0.4 16-MHz

Reserved

Bits
5-0

Reservado.

IE1, registro de control habilitado 1

Bits
7-2
Bit-1

OFIE

Bit-0

stos bits se pueden utilizar para otros mdulos.


Interrupcin habilitada de fallo del oscilador. ste bit habilita
la interrupcin OFIFG. Debido a que otros bits de este
registro se pueden usar por otros mdulos, se recomienda
poner a 1 o a 0 este bit usando las instrucciones BIS.B o
BIC.B, en lugar de las instrucciones MOV.B o CLR.B.
0 Interrupcin no habilitada
1 Interrupcin habilitada
ste bit se puede utilizar para otros mdulos.

IFG1, registro de flag de interrupcin 1

OFIFG

Bits
7-2
Bit-1

Bit-0

1.1.5.

stos bits se pueden utilizar para otros mdulos.


Flag de interrupcin de fallo del oscilador. ste bit habilita la
interrupcin OFIFG. Debido a que otros bits de este registro
se pueden usar por otros mdulos, se recomienda poner a 1 o
a 0 este bit usando las instrucciones BIS.B o BIC.B, en
lugar de las instrucciones MOV.B o CLR.B.
0 No hay interrupcin pendiente
1 Interrupcin pendiente
ste bit se puede utilizar para otros mdulos.

Controlador de memoria flash

Los microcontroladores MSP430 tienen una memoria flash programable y


direccionable por bit, byte o palabra. El mdulo de memoria flash tiene un
controlador integrado que controla las operaciones de programacin y borrado. El
controlador tiene cuatro registros, un generador de sincronizacin y un generador de
tensin que abastece las tensiones de programa y borrado.

Figura Error! No hay texto con el estilo especificado en el documento..10 Diagrama de bloques
del mdulo de memoria flash.

1.1.5.1. SEGMENTACIN DE LA MEMORIA FLASH


Este tipo de microcontroladores tienen un array de memoria flash. Toda la
memoria flash est particionada en segmentos. Se pueden escribir bits, bytes o
palabras en la memoria flash, pero el segmento es el tamao ms pequeo de
memoria flash que se puede borrar.
La memoria flash est particionada en dos secciones, la memoria principal y la
memoria de informacin. No hay diferencias en el funcionamiento de stas dos
secciones. Tanto cdigo como datos se pueden localizar en cada seccin. Las
diferencias entre estas secciones de memoria son el tamao de los segmentos y las
direcciones fsicas.
La memoria de informacin tiene cuatro segmentos de 64-bytes (A - D), mientras
que la memoria principal tiene 60-KB divididos en 120 segmentos de 512-bytes que
a su vez se dividen en bloques de 64-bytes.

Los segmentos de la memoria flash principal se podrn borrar todos en un solo


paso o cada uno individualmente. Con los segmentos de la memoria de informacin
(A-D) se puede hacer lo mismo, con la particularidad de que el segmento A puede
contener datos de calibracin. ste segmento est protegido contra la programacin
o el borrado, aunque puede ser desbloqueado, no es aconsejable si no se quieren
perder los datos de calibracin. El bloqueo se permite a travs del bit LOCKA que
cuando LOCKA = 1 no se puede escribir ni borrar y as toda la memoria de
informacin se protege durante un borrado masivo.
1.1.5.2. FUNCIONAMIENTO DE LA MEMORIA FLASH
El modo por defecto de la memoria flash es el modo de lectura, en ste modo la
memoria no se borra ni se escribe sobre ella. El generador de sincronizacin y el
generador de tensin estn apagados, y la memoria funciona como igual que una
ROM. La memoria flash de los microcontroladores MSP430 es programable dentro
del sistema (ISP- in-system programmable) sin necesidad de tensin externa. La
CPU puede programar su propia memoria flash. Los modos de escritura y borrado se
seleccionan con los bits:

BLKWRT Escritura de Byte/word


WRT Escritura de bloque
GMERAS Borrado de segmento
MERAS Borrado masivo (todos los segmentos de la memoria principal)
ERASE Borrado de todo (todos los segmentos)

Est prohibido escribir o leer en la memoria flash mientras se est procediendo a


la programacin o borrado de sta. Si la ejecucin de la CPU es requerida durante la
escritura o borrado, el cdigo para ser ejecutado debe estar en la memoria RAM.
1.1.5.2.1. Generador de temporizacin
Las operaciones de escritura y borrado se controlan con el generador de
temporizacin como se muestra en el diagrama de bloques de la figura 2.11. La
frecuencia de funcionamiento del generador, fFTG, debe estar en el rango de entre
257-KHz y 476-KHz.

Figura Error! No hay texto con el estilo especificado en el documento..11 Diagrama de bloques
del generador de sincronizacin

El generador de sincronizacin puede ser originado de ACLK, SMCLK o MCLK.


La fuente de reloj seleccionada se tiene que dividir usando los bits FNx para
coincidir con los requerimientos de frecuencia de fFTG. Si fFTG se desva de la
especificacin durante la escritura o el borrado, los resultados pueden ser
impredecibles.

1.1.5.2.2. Borrado de la memoria flash


El nivel de borrado de un bit de la memoria flash es 1. Cada bit se puede borrar
de 1 a 0 individualmente pero para reprogramar de 0 a 1 requiere un ciclo de
borrado. La cantidad ms pequea de flash que se puede borrar es un segmento. Los
modos de borrado se seleccionan con los bits MERAS y ERASE, tal como la tabla
2.14 detalla. Un ciclo de borrado se puede iniciar desde dentro de la memoria flash o
desde la RAM.
MERAS

ERASE

Modo de borrado

Borrado de un segmento

Borrado masivo (todos los segmentos de la memoria principal)

Borra toda la flash (Segmentos de la memoria principal y de


informacin)

Tabla Error! No hay texto con el estilo especificado en el documento..14 Modos de borrado.

1.1.5.2.3. Escritura en la memoria flash


Los modos de escritura se seleccionan por los bits WRT y BLKWRT como
muestra la tabla 2.15.
WRT

BLKWRT

Modo de escritura

Escritura de byte/Word

Escritura de un bloque

Tabla Error! No hay texto con el estilo especificado en el documento..15 Modos de escritura.

Ambos modos utilizan una secuencia de instrucciones de escritura individual,


pero utilizando la escritura en bloques es aproximadamente el doble de rpido que
en el otro modo, porque el generador de tensin se mantiene en el bloque completo
de escritura. Cualquier instruccin que modifique un destino se puede usar para
modificar una localizacin flash bien en el modo byte/word o en el modo de bloque.
Una palabra de flash no debe escribirse ms de dos veces entre borrados.
El bit BUSY se pone a 1 mientras una operacin de escritura est activa y se pone
a 0 cuando sta ha terminado. Si la operacin de escritura se inicia desde la RAM, la
CPU no debe acceder a la flash mientras BUSY = 1. Si no una violacin de acceso
puede ocurrir, ACCVIFG se pone a 1 y la escritura en la flash es impredecible. La
operacin de escritura tambin se puede iniciar desde la RAM o desde dentro de la
misma flash.

1.1.5.2.4. Acceso a la memoria flash durante la escritura o el


borrado
Como ya se ha dicho, cuando se ha iniciado una operacin de escritura o borrado
desde la memoria RAM y mientras BUSY = 1, la CPU no debe leer ni escribir a o
desde cualquier ubicacin de la memoria flash. Si no una violacin de acceso ocurre,
y el resultado es impredecible. Adems si una escritura en flash se intenta con
WRT= 0, el flag de interrupcin ACCVIFG se pone a 1 y la memoria flash no se ve
afectada.
Cuando una operacin de borrado o escritura se inicia desde dentro de la memoria
flash, el controlador flash devuelve el cdigo de operacin 03FFFh a la CPU en la
siguiente recopilacin de instruccin. El cdigo de operacin 03FFFh es la
instruccin JMP PC. Esto ocasiona que la CPU entre en un bucle hasta que finalice
la operacin en la flash. Cuando la operacin termina y BUSY = 0, el controlador
flash permite a la CPU recopilar el adecuado cdigo de operacin y reanudar la
ejecucin del programa.

1.1.5.2.5. Configuracin y acceso al controlador de la memoria


flash
Los registros FCTLx son registros de 16-bit de lectura/escritura protegidos por
contrasea. Cualquier acceso de lectura o escritura debe usar instrucciones de
palabra y los accesos de escritura deben incluir la contrasea de escritura 0A5h en el
byte ms alto. Cualquier escritura en cualquiera de los registros FCTLx con otro
valor que no sea 0A5h en el byte ms alto es una violacin de la calve de seguridad,
lo que pone a 1 el flag KEYV y dispara un PUC reinicio del sistema. Cualquier
lectura de cualquiera de los registros FCTLx lee 096h en el byte ms alto.

Cualquier escritura a FCTL1 durante una operacin de borrado o escritura de


byte/word es una violacin de acceso y pone a 1 ACCVIFG. Escribir en FCTL1 est
permitido en el modo de escritura de bloque cuando WAIT = 1, pero sera una
violacin de acceso cuando WAIT = 0 y pondra a 1 ACCVIFG.
Cualquier escritura a FCTL2 cuando BUSY = 1 es una violacin de acceso.
Cualquier registro de FCTLx se debe leer cuando BUSY = 1.

1.1.5.2.6. Interrupciones del controlador de memoria flash


El controlador de memoria flash tiene dos fuentes de interrupcin, KEYV y
ACCVIFG. ste ltimo se pone a 1 cuando ocurre una violacin de acceso. Cuando
el bit ACCVIE se vuelve a habilitar despus de un borrado o escritura de la flash, la
activacin del flag ACCVIFG genera una solicitud de interrupcin. ACCVIFG
origina el vector de interrupcin NMI, por lo que no es necesario para el GIE que se
ponga a 1 para que ACCVIFG solicite una interrupcin. ACCVIFG se puede
comprobar por software para determinar si hay una violacin de acceso. ACCVIFG
se debe reiniciar por software.
El flag de violacin de clave KEYV se pone a 1 cuando cualquiera de los
registros de control de la flash se escriben con una contrasea incorrecta. Cuando
esto ocurre se genera un PUC reiniciando el dispositivo.

1.1.5.2.7. Programando dispositivos de memoria flash


Hay tres opciones de programacin del dispositivo flash de los MSP430. Todas
admiten la programacin ISP:
Programando mediante JTAG
Los dispositivos MSP430 se pueden programar mediante el puerto JTAG.
El interfaz JTAG requiere cuatro seales, tierra, y opcionalmente Vcc y
/NMI. El puerto JTAG protegido con un fusible. Quemando el fusible
completamente se deshabilita este puerto y es irreversible.
Programando mediante el Bootstrap loader
Todos los dispositivos flash de los MSP430 contienen un bootstrap loader.
El BSL permite al usuario leer o programar la memoria flash o la RAM
usando un interfaz en serie UART. El acceso a la memoria flash a travs
del BSL est protegido por una contrasea de 256-bit definida por el
usuario.

Programando mediante una solucin personalizada


La habilidad de la CPU de los MSP430 de escribir en su propia memoria
flash permite programar in-system y una programacin personalizada
externa. El usuario puede elegir suministrar los datos al MSP430 a travs
de cualquier medio disponible. El software desarrollado por el usuario
puede recibir los datos y programar la memoria flash. Porque este tipo de
solucin est desarrollada por el usuario, puede ser completamente
personalizada para arreglar las necesidades de aplicacin de la
programacin, borrado o la actualizacin de la memoria flash.

1.1.5.3. Registros de la memoria flash

Tabla Error! No hay texto con el estilo especificado en el documento..16 Registros de la


memoria flash

FCTL1, registro de control 1 de la memoria flash

FRKEY/FWKEY
BLKWRT

WRT

Reserved

Bits Contrasea FCTLx. Siempre se lee como 096h. Debe ser


15-8 escrita como 0A5h o se genera un PUC .
Bit-7 Modo de escritura de bloque. WRT se debe poner a 1 en este
modo. BLKWRT se reinicia automticamente cuando EMEX
est a 1.
0 Modo de escritura de bloque desactivado.
1 Modo de escritura de bloque activado.
Bit-6 Escritura. ste bit se usa en cualquier modo de escritura. Se
reinicia automticamente cuando EMEX est a 1.
0 Modo de escritura desactivado
1 Modo de escritura activado
Bit-5 Bit reservado. Siempre se lee como 0.

EEIEX

EEI

MERAS
ERASE
Reserved

Bit-4 Habilita la interrupcin de salida de emergencia. Ajustando


este bit se habilita una interrupcin que causa una salida de
emergencia de una operacin flash cuando GIE = 1. Este bit se
reinicia automticamente cuando EMEX est a 1.
0 Interrupcin de salida desactivado
1 Interrupcin de salida activado
Bit-3 Habilita la interrupcin de borrado. Ajustando este bit permite
que el borrado de un segmento sea interrumpido por una
solicitud de interrupcin. Despus que esta solicitud es
atendida, el ciclo de borrado se reanuda.
0 Interrupciones durante el borrado de segmentos
desactivada
1 Interrupciones durante el borrado de segmentos activada
Bit-2 Borrado masivo y borrado. MERAS y ERASE se usan
conjuntamente para seleccionar el modo de borrado. Estos bits
Bit-1 se reinician automticamente cuando EMEX est a 1 o la
operacin de borrado finaliza.
Bit-0 Bit reservado. Siempre se lee como 0.

FCTL2, registro de control 2 de la memoria flash

FRKEY/FWKEY
FSSELx

FNx

Bits Contrasea FCTLx. Siempre se lee como 096h. Debe ser


15-8 escrita como 0A5h o se genera un PUC .
Bits Selecciona la fuente de reloj del controlador flash.
7-6
00
ACLK
01
MCLK
10
SMCLK
11
SMCLK
Bits Divisor de reloj del controlador flash. Estos seis bits
5-0 seleccionan el divisor para el reloj del controlador flash. El
valor del divisor es FNx +1. Por ejemplo, cuando FNx = 00h,
el divisor es 1. Cuando FNx = 03Fh, el divisor es 64.

FCTL3, registro de control 3 de la memoria flash

FRKEY/
FWKEY
FAIL

Bits
15-8
Bit-7

LOCKA

Bit-6

EMEX

Bit-5

LOCK

Bit-4

WAIT

Bit-3

ACCVIFG

Bit-2

KEYV

Bit-1

BUSY

Bit-0

Contrasea FCTLx. Siempre se lee como 096h. Debe ser escrita


como 0A5h o se genera un PUC .
Fallo de funcionamiento. ste bit se pone a 1 si la fuente de reloj
fFTG o si la operacin flash es abortada por una interrupcin
cuando EEIEX = 1. FAIL se debe reiniciar mediante software.
0 No hay fallo
1 Hay fallo
Segmento A y memoria de informacin bloqueados.
0 Segmento A desbloqueado y toda la memoria de
informacin se borra durante el borrado masivo
1 Segmento A bloqueado y toda la memoria de informacin
est protegida del borrado durante el borrado masivo
Salida de emergencia.
0 No hay salida de emergencia
1 Hay salida de emergencia
Bloqueo. ste bit desbloquea la memoria flash para escribir o
borrar. Se puede ajustar en cualquier momento durante una
operacin de borrado o escritura de byte/word y la operacin se
completa normalmente. En el modo de escritura de bloque, si
LOCK se pone a 1 mientras que BLKWRT = WAIT = 1,
BLKWRT y WAIT se reinician y el modo finaliza normalmente.
0 Desbloqueado
1 Bloqueado
Espera. Indica que se est empezando a escribir en la memoria
flash.
0 La flash no est preparada para la siguiente escritura de
byte/word
1 La flash est preparada para la siguiente escritura de
byte/word
Flag de interrupcin de violacin de acceso.
0 No hay interrupcin pendiente
1 Interrupcin pendiente
Violacin de la clave de seguridad flash. ste bit indica que una
contrasea incorrecta en FCTLx fue escrita en cualquier registro
de control flash y genera un PUC cuando est a 1. Se debe
reiniciar con software.
0 La contrasea de FCTLx se escribi correctamente
1 La contrasea de FCTLx se escribi incorrectamente
Ocupado. ste bit indica el estado del generador de reloj de la
memoria flash.
0 No ocupado
1 Ocupado

FCTL4, registro de control 4 de la memoria flash

FRKEY/FWKEY
Reserved
MRG1

MRG0

Reserved

Bits
15-8
Bits
7-6
Bit-5

Contrasea FCTLx. Siempre se lee como 096h. Debe ser


escrita como 0A5h o se genera un PUC .
Reservado. Siempre se lee como 0.

Modo de lectura marginal 1. ste bit se pone a 0 si la CPU


empieza la ejecucin desde la memoria flash. Si MRG1 y
MRG0 estn a 1, el primero est activo y el otro se ignora.
0 Modo de lectura marginal 1 desactivado
1 Modo de lectura marginal 1 activado
Bit-4 Modo de lectura marginal 0. ste bit se pone a 0 si la CPU
empieza la ejecucin desde la memoria flash. Si MRG1 y
MRG0 estn a 1, el primero est activo y el otro se ignora.
0 Modo de lectura marginal 0 desactivado
1 Modo de lectura marginal 0 activado
Bits Reservado. Siempre se lee como 0.
3-0

IE1, registro de interrupcin habilitada 1

ACCVIE

Bits Estos bits se deben usar por otros modulos.


7-6
4-0
Bit-5 Interrupcin habilitada de violacin de acceso a la memoria
flash. ste bit habilita la interrupcin ACCVIFG. Debido a
que otros bits de este registro se pueden usar por otros
mdulos, se recomienda poner a 1 o a 0 este bit usando las
instrucciones BIS.B o BIC.B, en lugar de las instrucciones
MOV.B o CLR.B.
0 No hay interrupcin pendiente
1 Interrupcin pendiente

1.1.6.

Supervisor del suministro de tensin

El supervisor del suministro de tensin (SVS) se usa para monitorizar la


alimentacin de tensin AVCC o una tensin externa. El SVS se puede configurar
para poner a 1 un flag o generar un reinicio de POR cuando la tensin de
alimentacin o la tensin externa cae por debajo del umbral establecido por el
usuario. Las caractersticas del SVS incluyen:

Monitorizacin de AVCC.
Generacin de POR elegible.
Salida del comparador SVS accesible por software.
Condicin de baja tensin descargada y accesible por software.
14 umbrales de nivel seleccionables.
Canal externo para monitorizar la tensin externa.

Figura Error! No hay texto con el estilo especificado en el documento..12 Diagrama de bloques
del SVS

1.1.6.1. Funcionamiento del SVS


Como se ha dicho antes, el SVS detecta si la tensin de AVCC cae por debajo de
un nivel elegido. Puede ser configurado para proporcionar un POR o poner a 1 un
flag hay una bajada de tensin. El SVS se desactiva despus de un brownout reset
para conservar el consumo de corriente.
Los bits VLDx se usan para activar o desactivar el SVS y elegir uno de los 14
niveles umbral (V(SVS_IT)) para la comparacin con AVCC. El SVS est apagado
cuando VLDx = 0 y est encendido cuando VLDx > 0. El bit SVSON no enciende el
SVS. En cambio, refleja el estado de encendido/apagado del SVS y puede usarse para
determinar cuando est encendido el SVS. Cuando VLDx = 1111, el canal externo
SVSIN se selecciona. La tensin en SVSIN se compara con un nivel interno de
aproximadamente 1.2 V.
1.1.6.2. Rango de funcionamiento del SVS
Cada nivel SVS tiene histresis para reducir la sensibilidad a pequeas variaciones
de tensin de alimentacin cuando AVCC est cerca del umbral. Podemos ver el
funcionamiento del SVS y del SVS/brownout en la siguiente figura.

Figura Error! No hay texto con el estilo especificado en el documento..13 Funcionamiento del
SVS

1.1.6.3. Registros SVS

VLDx

Bits
7-4

Deteccin del nivel de tensin. stos bits encienden el


SVS y seleccionan el umbral nominal SVS de nivel de
tensin.
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

PORON

SVSON

SVSOP

SVSFG

SVS est apagado


1.9 V
2.1 V
2.2 V
2.3 V
2.4 V
2.5 V
2.65 V
2.8 V
2.9 V
3.05
3.2 V
3.35 V
3.5 V
3.7 V
Compara la tensin externa de entrada SVSIN a 1.2 V

Bit-3 POR encendido. ste bit habilita el flag SVSFG para originar
un POR.
0 SVSFG no origina un POR
1 SVSFG origina un POR
Bit-2 SVS encendido. Refleja el estado de funcionamiento de

SVS. SVS se enciende con VLDx > 0.


0 SVS apagado
1 SVS encendido
Bit-1 Salida del SVS. ste bit refleja el valor de la salida del
comparador SVS.
0 La salida del comparador SVS es baja
1 La salida del comparador SVS es alta
Bit-0 Flag SVS. Indica la condicin de baja tensin. SVSFG
permanece a 1 despus de una condicin de baja tensin
hasta que se reinicie por software.
0 No existe condicin de baja tensin
1 Presente una condicin de baja tensin

1.1.7.

Entradas y salidas digitales

El microcontrolador MSP430F4794 tiene implementados nueve puertos de 8-bits


de entrada y/o salida digital, desde P1 a P5 y de P7 a P10. Cada pin I/O se puede
configurar individualmente como entrada o salida digital, y se puede escribir en cada
lnea I/O o leer de ella individualmente.
En todos y cada de uno de los 8 bits de los puertos P1 y P2 se admiten
interrupciones. stas pueden ser habilitadas y configuradas para proveer una
interrupcin en flanco de subida o de bajada de una seal de entrada.
1.1.7.1. Funcionamiento de las entradas/salidas digitales
Las entradas/salidas digitales se configuran con el software de usuario. Cada
registro de puerto es un registro de 8-bits y se accede con instrucciones de byte. Los
registros de los puertos P7/P8 y P9/P10 estn dispuestos de tal forma que los dos
puertos se pueden direccionar como un puerto de 16-bits. La combinacin P7/P8 se
conoce como PA y a la combinacin P9/P10 como PB. Por ejemplo, para escribir en
P7SEL y en P8SEL a la vez, una palabra se escribira en PASEL.

Registro de entrada, PxIN


Cada bit en cada registro PxIN refleja el valor de la seal de entrada en el pin
correspondiente I/O cuando se configura como tal.
Bit = 0, la entrada es baja
Bit = 1, la entrada es alta
Registro de salida, PxOUT
Cada bit en cada registro PxOUT refleja el valor de la seal de salida en el pin
correspondiente I/O cuando se configura como tal y en la direccin de salida.
Bit = 0, la salida es baja
Bit = 1, la salida es alta
Registro de direccin, PxDIR
Cada bit en cada registro PxDIR selecciona la direccin del pin correspondiente
de entrada/salida, independientemente de la funcin seleccionada por el pin. Los bits
PxDIR para los pins de entrada/salida que se seleccionan para funciones de otros
mdulos se deben poner a 1 como es requerido por la otra funcin.
Bit = 0, el pin del puerto correspondiente se cambia a direccin de entrada
Bit = 1, el pin del puerto correspondiente se cambia a direccin de salida

Registro de habilitacin de resistencia pullup/pulldown, PxREN


Este microcontrolador tiene en todos los puertos una resistencia programable
pullup/pulldown. Cada bit en cada registro PxREN habilita o deshabilita la
resistencia correspondiente a su pin de entrada/salida. El bit correspondiente en el
registro PxOUT est conectado a VCC o a masa.
Bit = 0, Resistencia pullup/pulldown deshabilitada
Bit = 1, Resistencia pullup/pulldown habilitada
Registro de seleccin de funcin, PxSEL
A menudo los pines de los puertos estn multiplexados con otras funciones de
perifricos. Cada bit PxSEL se usa para elegir la funcin que tendr el pin
correspondiente al puerto de entrada/salida o a la funcin de perifrico.
Bit = 0, Funcin de entrada/salida seleccionada para el pin
Bit = 1, Funcin del perifrico seleccionada para el pin
Ajustando PxSELx = 1 no se pone a 1 automticamente la direccin del pin. Es
necesario configurar el bit PxDIRx para que otras funciones de perifricos tomen la
direccin necesaria.
Interrupciones de P1 y P2
Cada pin de los puertos P1 y P2 admite interrupciones, configuradas con los
registros PxIFG, PxIE y PxIES. Todos los pines del puerto P1 originan un vector
simple de interrupcin, y todos los pines del puerto P2 originan a su vez un vector
diferente de interrupcin. El registro PxIFG se puede comprobar para determinar el
origen de una interrupcin de P1 o P2.
I.

Registros del flag de interrupcin, P1IFG y P2IFG

Cada bit PxIFGx es el flag de interrupcin del pin correspondiente de


entrada/salida y se pone a 1 cuando el flanco de la seal de entrada seleccionado
ocurre en dicho pin. Todos los flags de interrupcin PxIFGx solicitan una
interrupcin cuando sus correspondientes bits, el PxIE y el bit GIE estn a 1. Cada
flag PxIFGx se debe reiniciar por software. Por software se puede incluso poner a 1
cada flag PxIFGx, proporcionando una manera de generar una interrupcin iniciada
por software.
Bit = 0, no hay interrupcin pendiente
Bit = 1, hay interrupcin perndiente

Slo las transiciones en los niveles no estticos ocasionan interrupciones. Si


cualquier flag PxIFGx llega a ponerse a 1 durante una rutina de servicio de
interrupcin Px o si se pone a 1 despus de que se ejecute la instruccin RETI de
una rutina de servicio de interrupcin Px, el estado lgico 1 del flag PxIFGx genera
otra interrupcin. Esto asegura que cada transicin sea reconocida.
II.

Registro de seleccin de flanco de interrupcin, P1IES y P2IES

Cada bit PxIES selecciona el flanco de interrupcin para el correspondiente pin


entrada/salida.
Bit = 0, el flag PxIFGx se pone a 1 con la transicin del estado bajo al alto
Bit = 1, el flag PxIFGx se pone a 1 con la transicin del estado alto al bajo
III.

Habilitacin de interrupcin, P1IE y P2IE

Cada bit PxIE habilita el flag de interrupcin PxIFG asociado.


Bit = 0, la interrupcin est deshabilitada
Bit = 1, la interrupcin est habilitada

1.1.8.

Temporizador Watchdog

El temporizador Watchdog (WDT) es un temporizador de control de 16-bit que


puede usarse como Watchdog o como temporizador de intervalos. La principal
funcin de ste modulo WDT es llevar a cabo el reinicio controlado del sistema
despus de que se haya producido un problema en el software. Si el intervalo de
tiempo seleccionado expira, se genera un reinicio del sistema. Si la funcin de
Watchdog no se necesita en una aplicacin, el mdulo se puede configurar como un
temporizador de intervalos y puede generar interrupciones en los intervalos de
tiempo seleccionados.
Las caractersticas del temporizador Watchdog son:

Cuatro intervalos de tiempo seleccionables por software


Modo de Watchdog
Modo de intervalos
El acceso al control WDT est protegido por contrasea
Control de la funcin del pin
/NMI

Fuente de reloj seleccionable


Se puede detener para ahorrar energa
Caracterstica de reloj a prueba de fallos en WDT+

Figura Error! No hay texto con el estilo especificado en el documento..14 Diagrama de bloques
del temporizador Watchdog

1.1.8.1. Funcionamiento del Watchdog timer


Para configurar el WDT como Watchdog o como temporizador de intervalos se
debe utilizar el registro WDTCTL. ste registro tambin contiene bits de control
para configurar el pin
/NMI. WDTCTL es un registro de lectura/escritura de 16bit protegido por contrasea. Cualquier acceso de lectura/escritura debe usa
instrucciones de palabra y los accesos de escritura deben incluir la contrasea de
escritura 05Ah en el byte ms alto. Cualquier escritura en el registro WDTCTL
diferente a 05Ah en el byte ms alto es una violacin de la clave de seguridad y
dispara un PUC. Cualquier lectura en el registro WDTCTL se lee como 069h en el
byte superior. El reloj contador WDT+ debera ser ms pequeo o igual que la
frecuencia de sistema (MCLK).
El reloj contador Watchdog
El reloj contador del Watchdog (WDTCNT) es un contador de 16-bit que no es
directamente accesible por software. El WDTCNT y los intervalos de tiempo
seleccionados se controlan a travs del registro de control del temporizador
Watchdog WDTCTL.
El WDTCNT puede ser generado por la seales de reloj ACLK o SMCLK. La
fuente de reloj se selecciona con el bit WDTSSEL.
Modo de Watchdog
Despus de una condicin de PUC, el mdulo WDT se configura en el modo de
Watchdog con un intervalo inicial de ciclo de reinicio de 32768 usando DCOCLK.
El usuario debe instalar, halt, o poner a 0 el WDT antes que termine el intervalo
inicial de reinicio, o se genere otro PUC. Cuando el WDT se configura para
funcionar en el modo Watchdog, desencadena un PUC bien sea por la escritura de
una contrasea incorrecta en WDTCTL o que expire el intervalo de tiempo
seleccionado. Un PUC reinicia el WDT a su condicin por defecto y configura el pin
/NMI en el modo reset.
Modo de temporizador de intervalo
Ajustando el bit WDTTMSEL a 1 selecciona el modo de temporizador de
intervalo. ste modo se puede usar para proporcionar interrupciones peridicas. En
el modo de temporizador de intervalo, el flag WDTIFG se pone a 1 cuando expira el
intervalo de tiempo seleccionado. El PUC no se genera en este modo cuando expira
el intervalo de tiempo y el WDTIFG y el bit de habilitacin WDTIE permanecen
invariables.
Cuando el bit WDTIE y el bit GIE estn a 1, el flag WDTIFG llama a una
interrupcin. El flag de interrupcin WDTIFG se reinicia automticamente cuando
la llamada a la interrupcin es atendida, o debe ser reiniciado por software.

Interrupciones del temporizador WDT


El WDT utiliza dos bits del SFR para el control de interrupciones. El flag de
interrupcin, WDTIFG ubicado en IFG1.0, y la habilitacin de interrupcin,
WDTIE ubicado en IE1.0.
Cuando se utiliza el WDT en modo Watchdog, el flag WDTIFG genera un
reinicio del vector de interrupcin. WDTIFG se puede utilizar por la rutina de
servicio de interrupcin para determinar si el WDT caus que el dispositivo
reiniciara. Si el flag est a 1, significa que el WDT inici la condicin de reset, ya
sea por la expiracin del tiempo o por una violacin de la clave de seguridad. Si en
caso contrario WDTIFG est a 0 la condicin de reset la caus una fuente diferente.
Cuando se utiliza el WDT en modo de temporizador de intervalo, el flag WDIFG
se pone a 1 despus de seleccionar el intervalo de tiempo y solicitar una interrupcin
del temporizador de intervalo si el WDTIE y el GIE estn a 1. El vector de
interrupcin del temporizador de intervalo es diferente del vector de reset utilizado
en el modo Watchdog. En el modo de intervalo, el flag WDTIFG se reinicia
automticamente cuando la interrupcin se atiende o puede ser reiniciado por
software.
Mejoras del WDT+
El mdulo WDT+ proporciona una funcionalidad mejorada sobre el WDT. ste
mdulo proporciona una caracterstica de sincronizacin a prueba de fallos para
asegurar que el reloj para el WDT+ no se puede desactivar mientras est en modo
Watchdog. Esto quiere decir que los modos de bajo consumo se pueden ver
afectados por la eleccin del reloj WDT+. Por ejemplo, si ACLK es la fuente de
reloj del WDT+,LPM4 no est disponible, porque el WDT+ impide al ACLK de ser
deshabilitado. Adems, si ACLK o SMCLK fallan mientras generan el WDT+, la
fuente de reloj de ste cambia automticamente por MCLK. En este caso, si MCLK
se genera con un cristal de cuarzo y ste falla, la caracterstica a prueba de fallos del
FLL+ activa el DCO y lo utiliza como fuente para el MCLK.
Cuando el WDT+ se utiliza en modo de temporizador de intervalo, no hay
caracterstica a prueba de fallos para la fuente de reloj.
Funcionamiento en modos de bajo consumo

Los dispositivos de MSP430 tienen varios modos de bajo consumo que pueden
disponer de diferentes seales de reloj. Los requisitos de las aplicaciones del usuario
y el tipo de sincronizacin utilizado determinan como el WDT se debe configurar.
Por ejemplo, no se debe configurar en modo Watchdog con SMCLK como fuente de
reloj si se quiere usar LPM3, porque SMCLK no est activo en LPM3 y entonces no
funcionara WDT. Si WDT+ se genera desde SMCLK, ste permanece habilitado
durante LPM3, lo cual incrementa el consumo de corriente en el modo LPM3.
Cuando el temporizador Watchdog no es necesario, el bit WDTHOLD se puede
utilizar para mantener WDTCNT, reduciendo el consumo de energa.
1.1.8.2. Registros del temporizador Watchdog

Tabla Error! No hay texto con el estilo especificado en el documento..17 Registros de WDT

WDTCTL, registro de control del temporizador Watchdog

WDTPW
WDTHOLD

WDTNMIES

Bits Contrasea WDT. Siempre se lee como 096h. Debe ser escrita
15-8 como 0A5h o se genera un PUC .
Bit-7 Retencin WDT. ste bit detiene el WDT. Ajustando

WDTHOLD = 1 cuando WDT no est en uso ahorra


energa.
0 WDT no se para
1 WDT se para
Bit-6 Seleccin de flanco NMI del WDT. ste bit selecciona el
flanco para la interrupcin NMI cuando WDTNMI = 1.
Modificando ste bit se puede disparar una NMI.
Modificar ste bit cuando WDTNMI = 0 para evitar la
activacin de una NMI accidental.
0 NMI en flanco de subida
1 NMI en flanco de bajada

WDTNMI

WDTTMSEL

WDTCNTCL

WDTSSEL

WDTISx

Bit-5 Seleccin de NMI del WDT. ste bit selecciona la

funcin para el pin


/NMI.
0 Funcin reset
1 Funcin NMI
Bit-4 Seleccin del modo de WDT.
0 Modo Watchdog
1 Modo temporizador de intervalo
Bit-3 Borrado del contador WDT. Ajustando WDTCNTCL = 1
borra el valor del contador quedando 0000h. Se reinicia
automticamente.
0 Ninguna accin
1 WDTCNT = 0000h
Bit-2 Seleccin de la fuente de reloj de WDT.
0 SMCLK
1 ACLK
Bits Seleccin del intervalo del WDT. stos bits eligen el
1-0 intervalo del temporizador Watchdog para poner a 1
WDTIFG y/o generar un PUC.
00 Fuente de reloj del WDT / 32768
01 Fuente de reloj del WDT / 8192
10 Fuente de reloj del WDT / 512
11 Fuente de reloj del WDT / 64

IE1, registro de habilitacin de interrupcin 1

NMIIE

WDTIE

Bits Estos bits se deben usar por otros mdulos.


7-5
Bit-4 Habilitacin de interrupcin NMI. Habilita la
interrupcin NMI. Debido a que otros bits de este registro se
pueden usar por otros mdulos, se recomienda poner a 1 o a 0
este bit usando las instrucciones BIS.B o BIC.B, en lugar
de las instrucciones MOV.B o CLR.B.
0 Interrupcin no habilitada
1 Interrupcin habilitada
Bits Estos bits se deben usar por otros mdulos.
3-1

Bit-0 Habilitacin de interrupcin WDT. ste bit habilita el


flag de interrupcin WDTIFG para el modo de intervalo.
No es necesario poner a 1 para el modo de Watchdog.
Debido a que otros bits de este registro se pueden usar por
otros mdulos, se recomienda poner a 1 o a 0 este bit usando
las instrucciones BIS.B o BIC.B, en lugar de las
instrucciones MOV.B o CLR.B.
0 Interrupcin no habilitada
1 Interrupcin habilitada

IFG1, registro de flag de interrupcin

NMIIFG

WDTIFG

Bits Estos bits se deben usar por otros mdulos.


7-5
Bit-4 Flag de interrupcin NMI. Se debe reiniciar por
software. Debido a que otros bits de este registro se pueden
usar por otros mdulos, se recomienda poner a 1 o a 0 este bit
usando las instrucciones BIS.B o BIC.B, en lugar de las
instrucciones MOV.B o CLR.B.
0 No hay interrupcin pendiente
1 Hay interrupcin pendiente
Bits Estos bits se deben usar por otros mdulos.
3-1

Bit-0 Flag de interrupcin del WDT. En el modo Watchdog,


WDTIFG permanece en 1 hasta que se reinicie por
software. En el modo de intervalo se reinicia
automticamente atendiendo a la interrupcin, o puede
ser reiniciado por software. Debido a que otros bits de este
registro se pueden usar por otros mdulos, se recomienda
poner a 1 o a 0 este bit usando las instrucciones BIS.B o
BIC.B, en lugar de las instrucciones MOV.B o CLR.B.
0 Interrupcin no habilitada
1 interrupcin habilitada

1.1.9.

Temporizador bsico

El mdulo temporizador bsico est compuesto por dos temporizadores


independientes en cascada de 8-bit. ste temporizador alimenta la temporizacin
LCD y los intervalos de tiempo de baja frecuencia. Algunos de los usos de ste
temporizador son:
Funcin de reloj en tiempo real (RTC)
Incrementos del tiempo de software
Algunas de sus caractersticas son:

Fuente de reloj seleccionable


Dos temporizadores independientes en cascada de 8-bit
Admite interrupciones
Generacin de la seal de control LCD

Figura Error! No hay texto con el estilo especificado en el documento..15 Diagrama de bloques
del Basic timer

1.1.9.1. Funcionamiento del temporizador bsico


El mdulo del temporizador bsico puede ser configurado como dos
temporizadores de 8-bit o uno de 16-bit con el registro BTCTL. ste es un registro
de lectura/escritura de 8 bit. Cualquier acceso de lectura/escritura debe usarse
mediante instrucciones byte. El temporizador bsico controla el marco de frecuencia
LCD con BTCNT1.
Contador de temporizacin bsico 1
BTCNT1 es un contador de temporizacin de 8-bit directamente accesible por
software. BTCNT1 se incrementa con ACLK y proporciona un marco de frecuencia
para el controlador LCD. BTCNT1 se puede detener ajustando los bits BTHOLD y
BTDIV.
Contador de temporizacin bsico 2
BTCNT2 es un contador de temporizacin de 8-bit directamente accesible por
software. BTCNT2 se puede generar desde ACLK o SMCLK, o desde ACLK / 256
cuando est en cascada con BTCNT1. La fuente de reloj de BTCNT2 se selecciona
con los bits BTSSEL y BTDIV. BTCNT2 se puede detener para reducir el consumo
de energa ajustando el bit HOLD.
BTCNT2 genera la interrupcin del temporizador bsico, BTIFG. El intervalo de
interrupcin se selecciona con los bits BTIPx.
Modo de contador de 16-bit
El modo de contador de temporizacin de 16-bit se selecciona cuando el control
del bit BTDIV se pone a 1. En este modo BTCNT1 y BTCNT2 estn en cascada. La
fuente de reloj deBTCNT1 es ACLK y la fuente de BTCNT2 es ACLK / 256.
Funcionamiento del BT: Seal fLCD
El controlador LCD (pero no el controlador LCD_A) utiliza la seal fLCD de
BTCNT1 para generar el temporizador para las lneas comunes y de segmentos.
ACLK genera BTCNT1 y se supone que sea 32768-Hz para que se produzca f LCD.
La frecuencia fLCD se selecciona con el bit BTFRFQx y puede ser ACLK / 256,
ACLK / 128, ACLK / 64, ACLK / 32. La frecuencia adecuada f LCD depende del
cuadro de frecuencia LCD y de la tasa de multiplexor LCD y se calcula de la
siguiente manera:

Interrupciones del BT
El temporizador bsico utiliza dos bits en el registro de funciones especiales
(SFRs) para controlar las interrupciones. stas son el flag de interrupcin del BT,
BTIFG localizado en IFG2.7, y la habilitacin de interrupcin del BT, BTIE que se
encuentra en IE2.7.
El flag BTIFG se pone a 1 despus de estar seleccionado el intervalo de tiempo y
hecha la llamada a la interrupcin del BT siempre que GIE y BTIE estn a 1. El flag
BTIFG se reinicia automticamente cuando la interrupcin es atendida, pudiendo
tambin reiniciarse por software.
1.1.9.2. Registros del temporizador bsico

Tabla Error! No hay texto con el estilo especificado en el documento..18 Registros del Basic
Timer1

BTCTL, registro de control BT

BTSSEL

Bit-7 Seleccin del reloj BTCNT2. ste bit en conjunto con el

BTHOLD

Bit-6 Retencin del BT.


0 BTCNT1 y BTCNT2 estn en funcionamiento
1 BTCNT1 se retiene si BTDIV = 1

BTDIV

Bit-5 Divisin de reloj BT. ste bit en conjunto con el bit

bit BTDIV selecciona la fuente de reloj de BTCNT2.

BTCNT2 se retiene
BTSSEL selecciona la fuente de reloj de BTCNT2.
BTSSEL
0
0
1
1

BTDIV
0
1
0
1

Fuente de reloj BTCNT2


ACLK
ACLK / 256
SMCLK
ACLK / 256

BTFRFQx

BTIPx

Bits
4-3

Frecuencia f LCD. stos bits controlan la frecuencia de


refresco del LCD.
00 fACLK / 32
01 fACLK / 64
10 fACLK / 128
11 fACLK / 256
Bits Intervalo de interrupcin de BT
2-0
000
001
010
011
100
101
110
111

fCLK2
fCLK2
fCLK2
fCLK2
fCLK2
fCLK2
fCLK2
fCLK2

/2
/4
/8
/ 16
/ 32
/ 64
/ 128
/ 256

BTCNT1, Contador 1 de BT

BTCNT1x

Bits
7-0

Registro BTCNT1. El registro BTCNT1 es la cuenta de


BTCNT1.

BTCNT2, Contador 2 de BT

BTCNT2x

Bits
7-0

Registro BTCNT2. El registro BTCNT2 es la cuenta de


BTCNT2.

IE2, registro de habilitacin de interrupcin 2

BTIE

Bit-7 Habilitacin de interrupcin del temporizador bsico.


Habilita la interrupcin BTIFG. Debido a que otros bits de
este registro se pueden usar por otros mdulos, se recomienda
poner a 1 o a 0 este bit usando las instrucciones BIS.B o
BIC.B, en lugar de las instrucciones MOV.B o CLR.B.
0 Interrupcin no habilitada
1 Interrupcin habilitada
Bits Estos bits se deben usar por otros mdulos.
6-0

IFG2, registro de flag de interrupcin 2

BTIFG

Bit-7 Habilitacin del flag de interrupcin del temporizador


bsico. Debido a que otros bits de este registro se pueden
usar por otros mdulos, se recomienda poner a 1 o a 0 este bit
usando las instrucciones BIS.B o BIC.B, en lugar de las
instrucciones MOV.B o CLR.B.
0 Interrupcin no habilitada
1 Interrupcin habilitada
Bits Estos bits se deben usar por otros mdulos.
6-0

1.1.10. Timer_A
El Temporizador_A es un contador/temporizador de 16-bit con tres o cinco
registros de captura/comparacin. Admite mltiples capturas/comparaciones, salidas
PWM, e intervalos de temporizacin. Timer_A tiene capacidad para varias
interrupciones. Las interrupciones se deben generar desde el contador en
condiciones de desbordamiento y desde cada registro de captura/comparacin. Este
temporizador se caracteriza por:
Contador de temporizacin asncrono de 16-bit con cuatro modos de
funcionamiento.
Fuente de reloj con posibilidad de configuracin y eleccin.
Tres o cinco registros configurables de captura/comparacin.
Salidas configurables con capacidad de PWM.
Entrada asncrona y salida de retencin.
Registro del vector de interrupcin para una rpida decodificacin de
todas las interrupciones del Timer_A.
En la figura 2.16 se puede observar el diagrama de bloques del funcionamiento
del Temporizador_A.

1.1.10.1. Contador de 16-bit


El registro del contador de 16-bit, TAR, se incrementa o decrementa con cada
flanco de subida de la seal de reloj. Se puede tener acceso de lectura o escritura al
TAR mediante software. Adems, el temporizador puede generar una interrupcin
cuando se desborda. TAR se debe borrar ajustando el bit TACLR. Con este bit
tambin se borra el divisor de reloj y el modo ascendente o descendente de la cuenta.
El reloj de temporizacin se puede generar desde ACLK, SMCLK o externamente
a travs de TACLK o INCLK. La fuente de reloj se selecciona con los bits
TASSELx. La fuente de reloj debe pasar directamente al temporizador o al divisor
por 2, 4 u 8 utilizando los bits IDx. El divisor de reloj se reinicia cuando TACLR
est a 1.

1.1.10.2. Iniciando el temporizador


El temporizador se debe iniciar o reiniciar por los siguientes mtodos:

El temporizador cuenta cuando MCx > 0 y la fuente de reloj est activa.


Cuando el modo de temporizador est o bien ascendente o
ascendente/descendente, el temporizador se debe parar escribiendo 0 en
TACCR0. Entonces el temporizador se debe reiniciar escribiendo un valor
distinto de 0 en TACCR0. En esta situacin el temporizador inicia a
incrementar su valor desde 0.

Figura Error! No hay texto con el estilo especificado en el documento..16 Diagrama de bloques
del Timer_A

1.1.10.3. Control del modo del temporizador


El temporizador tiene cuatro modos de funcionamiento como se describe en la
siguiente tabla.
MCx
00
01

Modo
Parado
Ascendente

10

Continuo

11

Ascendente/descendente

Descripcin
El temporizador se para
El temporizador cuenta repetidamente desde 0
hasta el valor de TACCR0
El temporizador cuenta repetidamente desde 0
hasta 0FFFFh
El temporizador cuenta repetidamente desde 0
hasta el valor de TACCR0 y vuelve hasta 0

Tabla Error! No hay texto con el estilo especificado en el documento..19 Modos del
temporizador A

Modo ascendente
El modo ascendente se utiliza si el periodo del temporizador debe ser diferente
del cmputo 0FFFFh. El temporizador cuenta repetidamente en orden ascendente
hasta el valor del registro de comparacin TACCR0, el cual define el periodo como
se muestra en la figura 2.17. El nmero de la cuenta del temporizador en el perodo
es TACCR0+1. Cuando el valor del temporizador se iguala a TACCR0 se reinicia el
temporizador contando desde 0 de nuevo. Si se selecciona este modo cuando el valor
del temporizador es mayor que TACCR0, el temporizador se reinicia empezando
desde 0.

Figura Error! No hay texto con el estilo especificado en el documento..17 Perodo de conteo de
Timer_A Up mode

El flag de interrupcin CCIFG del registro TACCR0 se pone a 1 cuando el


temporizador cuenta hasta TACCR0. El flag de interrupcin TAIFG se pone a 1
cuando el temporizador cuenta desde TACCR0 hasta 0. Esto se puede entender
mejor en la figura 2.18 que detalla lo que ocurre en un ciclo de reloj del
temporizador en ste modo de funcionamiento.

Figura Error! No hay texto con el estilo especificado en el documento..18 Ajuste del flag en el
modo ascendente del Timer_A

Cuando se cambia el valor del registro TACCR0 mientras el temporizador est


ejecutndose, si el nuevo periodo es mayor o igual que el antiguo, o es mayor que el
valor de cuenta vigente, el temporizador seguir hasta el fin del nuevo periodo. Si el
valor del nuevo periodo es menor que el valor actual del conteo, el temporizador
vuelve a 0.

Modo continuo
En el modo continuo, el temporizador cuenta repetidamente hasta 0FFFFh y se
reinicia desde 0 como se muestra en la figura 2.19. El registro de
comparacin/captura TACCR0 trabaja de la misma manera que los otros registros de
captura/comparacin.

Figura Error! No hay texto con el estilo especificado en el documento..19 Periodo de conteo del
Timer_A Continuous mode

El flag de interrupcin TAIFG se pone a 1 cuando el temporizador cuenta desde


0FFFFh hasta 0. La siguiente figura detalla lo que sucede.

Figura Error! No hay texto con el estilo especificado en el documento..20 Ajuste del flag del
Timer_A en el modo continuo

Modo ascendente/descendente
ste modo se utiliza si el periodo del temporizador debe ser diferente del
cmputo 0FFFFh, y si se necesita una generacin de pulsos simtrica. El
temporizador cuenta en orden ascendente repetidamente hasta el valor del registro
TACCR0 y vuelve hasta 0 en orden descendente, tal como muestra la figura 2.21. El
periodo es dos veces el valor del registro TACCR0.

Figura Error! No hay texto con el estilo especificado en el documento..21 Periodo de conteo del
Timer_A Up/down mode

La direccin de la cuenta se retiene. Esto permite al temporizador pararse y


reiniciarse en la direccin que se encontraba antes de pararse. Si no se desea, se
puede poner a 1 el bit TACLR para borrar la direccin de conteo.
En el modo ascendente/descendente, el flag de interrupcin CCIFG del registro
TACCR0 y el flag de interrupcin TAIFG se ponen a 1 solo una vez durante un
periodo, separados por la mitad del periodo del temporizador. El flag de interrupcin
CCIFG se pone a 1 cuando la cuenta del temporizador pasa de TACCR -1 a
TACCR0, y el flag de interrupcin TAIFG se pone a 1 cuando completa la cuenta
descendente de 0001h a 0000h. En la figura 2.22 se puede ver el funcionamiento del
ciclo de reloj en este modo.

Figura Error! No hay texto con el estilo especificado en el documento..22 Ajuste del flag del
Timer_A en el modo ascendente/descendente

1.1.10.4. Bloques de captura/comparacin


En el temporizador A estn presentes tres o cinco bloques idnticos de
captura/comparacin, TACCRx. Cualquiera de los bloques se debe utilizar para
capturar los datos del temporizador o para generar intervalos de tiempo. Es posible
elegir en que modo han de funcionar estos bloques, si en el modo de captura o en el
modo de comparacin.
Modo de captura
ste modo se selecciona cuando CAP = 1. El modo de captura se utiliza para
grabar eventos de tiempo. Se puede utilizar para clculos de velocidad o medidas de
tiempo. Las entradas de captura CCIxA y CCIxB estn conectadas a pins externos o
seales internas y se seleccionan con los bits CCISx. Los bits CMx seleccionan el
flanco de captura de la seal de entrada como subida, bajada o ambos. Una captura
tiene lugar en el flanco seleccionado de la seal de entrada. Cuando se produce una
captura los siguientes se efectan las acciones siguientes:
El valor del temporizador se copia en el registro TACCRx.
El flag de interrupcin CCIFG se pone a 1.
El nivel de la seal de entrada se puede leer en cualquier momento desde el bit
CCI. Este tipo de controladores deben tener diferentes seales conectadas a CCIxA y
CCIxB. La seal de captura puede ser asncrona con el reloj temporizador y causar
una condicin de carrera. Poniendo a 1 el bit SCS se sincroniza la captura con el
siguiente reloj temporizador. Es recomendado sincronizar la captura de la seal con
el reloj temporizador poniendo a 1 el bit SCS.
Modo de comparacin
ste modo se selecciona cuando CAP = 0. Se utiliza para generar una seal de
salida PWM o interrupciones en un intervalo de tiempo especfico. Cuando TAR
cuenta hasta el valor en TACCRx:

El flag de interrupcin CCIFG se pone a 1.


La seal interna EQUx =1.
EQUx afecta la salida de acuerdo con el modo de salida.
La seal de entrada CCI se retiene en SCCI.

1.1.10.5. Unidad de salida


Cada bloque de captura/comparacin contiene una unidad de salida. La unidad de
salida se utiliza para generar seales de salida como PWM. Cada unidad de salida
tiene ocho modos de funcionamiento que generan seales basadas en las seales
EQU0 y EQUx.
Los modos de salida se definen con los bits OUTMODx y se describen en la tabla
2. La seal OUTx se cambia con el flanco de subida del reloj temporizador para
todos los modos exceptuando el modo 0. Los modos de salida 2, 3, 6 y 7 no son
tiles para la unidad de salida 0, porque EQUx = EQU0.
OUTMODx Modo

Descripcin

000

Output

La seal de salida OUTx se define por el bit OUTx. La seal


OUTx se actualiza automticamente.

001

Set

La salida se pone a 1 cuando el reloj temporizador llega al


valor TACCRx. Se mantiene mientras no se reinicie el
temporizador, o hasta que se seleccione otro modo de salida
que afecte a la salida.

010

Toggle/Reset La salida se conmuta cuando el temporizador cuenta hasta el


valor de TACCRx. La salida se reinicia cuando el
temporizador cuenta hasta el valor de TACCR0.

011

Set/Reset

La salida se pone a 1 cuando el temporizador cuenta hasta el


valor de TACCRx. La salida se reinicia cuando el
temporizador cuenta hasta el valor de TACCR0.

100

Toggle

La salida se conmuta cuando el temporizador cuenta hasta el


valor de TACCRx. El periodo de salida es el doble que el
periodo del temporizador.

101

Reset

La salida se reinicia cuando el temporizador cuenta hasta el


valor de TACCRx. Se mantiene hasta que se seleccione otro
modo de salida y que afecte a la salida.

110

Toggle/Set

La salida se conmuta cuando el temporizador cuenta hasta el


valor de TACCRx. Se pone a 1 cuando el temporizador
cuenta hasta el valor de TACCR0.

111

Reset/Set

La salida se reinicia cuando el temporizador cuenta hasta el


valor de TACCRx. Se pone a 1 cuando el temporizador
cuenta hasta el valor de TACCR0.

Tabla Error! No hay texto con el estilo especificado en el documento..20 Modos de salida del
Timer_A

Ejemplo de salida del temporizador en modo ascendente


La seal OUTx se cambia cuando el temporizador cuenta en orden ascendente
hasta el valor TACCRx, y pasa desde TACCR0 hasta 0, dependiendo del modo de
salida. En el siguiente ejemplo se utiliza TACCR0 y TACCR1.

Figura Error! No hay texto con el estilo especificado en el documento..23 Ejemplo de salida del
Timer_A en Up mode

1.1.10.6. Interrupciones del Timer_A


Dos vectores de interrupcin estn asociados al mdulo del Timer_A de 16-bit:

El vector de interrupcin TACCR0 para TACCR0 CIFG.


El vector de interrupcin TAIV para todas las flags CCIFG y TAIFG.

En el modo de captura cualquier flag CCIFG se pone a 1 cuando el valor


temporizador se captura en el registro TACCRx asociado. En el modo
comparacin, cualquier flag CCIFG se pone a 1 si TAR cuenta hasta el valor
registro TACCRx asociado. A travs del software tambin se debe poner a 1 o
cualquier flag CCIFG. Todas las flags CCIFG llaman a una interrupcin cuando
bits CCIE y GIE correspondientes estn a 1.

del
de
del
a0
sus

Vector de interrupcin TACCR0


El flag TACCR0 CCIFG tiene la prioridad mxima de la interrupcin de Timer_A
y tiene un vector de interrupcin dedicado como se muestra en la figura 2.24. El flag
TACCR0 CCIFG se reinicia automticamente cuando la llamada a la interrupcin
TACCR0 es atendida

Figura Error! No hay texto con el estilo especificado en el documento..24 Flag de interrupcin
TACCR0

Generador del vector de interrupcin, TAIV


Los flags TACCR1 CCIFG, TACCR2 CCIFG y TAIFG estn priorizados y
combinados para generar un simple vector de interrupcin. El registro del vector de
interrupcin TAIV se utiliza para determinar que flag hizo la llamada a una
interrupcin.
La interrupcin de habilitacin de mxima prioridad genera un nmero en el
registro TAIV. ste nmero se puede evaluar o aadir al PC para entrar
automticamente en la rutina de software apropiada. Desactivadas las interrupciones
del Timer_A no afectan el valor de TAIV.
Cualquier acceso de lectura/escritura del registro TAIV reinicia automticamente
el ms alto flag de interrupcin pendiente. Si otro flag se pone a 1, otra interrupcin
se genera inmediatamente despus de atender la interrupcin inicial.

1.1.10.7. Registros Timer_A

Registro de control, TACTL

Unused
TASSELx

IDx

Bits
15-10
Bits
9-8

Bits
7-6

MCx

Bits
5-4

Unused
TACLR

Bit-3
Bit-2

TAIE

Bit-1

TAIFG

Bit-0

No se utiliza.
Seleccin de la fuente de reloj del Timer_A.
00 TACLK
01 ACLK
10 SMCLK0
11 TACLK invertido
Estos bits seleccionan el divisor para el reloj de entrada.
00 /1
01 /2
10 /4
11 /8
Control de modo. Poniendo MCx = 00h cuando el Timer_A no est
en uso ahorra energa.
00 Modo de parada: el temporizador se para
01 Modo ascendente: el temporizador cuenta hasta TACCR0
10 Modo continuo: el temporizador cuenta hasta 0FFFFh
11 Modo ascendente/descendente: cuenta hasta TACCR0 y de
ah hasta 0
No se utiliza.
Se borra el Timer_A. ste bit reinicia el TAR, el divisor de reloj y
la direccin de la cuenta. TACLR se reinicia automticamente y
siempre se lee como 0.
Habilitacin de interrupcin del Timer_A. ste bit habilita la
llamada a la interrupcin TAIFG.
0
Interrupcin deshabilitada
1
Interrupcin habilitada
Flag de interrupcin del Timer_A.
0
No hay interrupcin pendiente
1
Interrupcin pendiente

Registro del Timer_A, TAR

TARx

Bits
15-0

El registro TAR es la cuenta del Timer_A.

Registro de captura/comparacin del Timer_A, TACCRx

TACCRx

Bits
15-0

En modo comparacin: TACCRx mantiene los datos para la


comparacin con el valor del temporizador del registro TAR.
En modo captura: el registro TAR se copia en el registro
TACCRx cuando se ejecuta una captura.

Registro de control de captura/comparacin, TACCTLx

CMx

CCISx

SCS

SCCI

Unused
CAP

OUTMODx

CCIE

Bits
15-14

Modo de captura.

00
No hay captura
01
Captura en el flanco de subida
10
Captura en el flanco de bajada
11
Captura en ambos flancos
Bits
Seleccin de entrada de captura/comparacin.
13-12 stos bits seleccionan la seal de entrada.
CCIxA
00
CCIxB
01
GND
10
VCC
11
Bit-11 Sincronizacin de la fuente de captura. ste bit se utiliza para
sincronizar la seal de entrada de captura con el reloj
temporizador.
Captura asncrona
0
Captura sncrona
1
Bit-10 Entrada sincronizada de captura/comparacin. La seal de
entrada CCI seleccionada se retiene con la seal EQUx y se
puede leer a travs de este bit.
Bit-9 No se utiliza.
Bit-8 Seleccin de modo captura/comparacin.
0
Modo de comparacin
1
Modo de captura
Bits
Modo de salida. Los modos 2, 3, 6 y 7 no tiles para el
7-5
TACCR0 porque EQUx = EQU0.
000
Valor del bit OUT
001
Set
010
Toggle/Reset
011
Set/Reset
100
Toggle
101
Reset
110
Toggle/Set
111
Reset/Set
Bit-4 Habilitacin de la interrupcin de captura/comparacin. Este
bit habilita la llamada a la interrupcin del flan CCIFg
correspondiente.

CCI

Bit-3

OUT

Bit-2

COV

Bit-1

CCIFG

Bit-0

0 Interrupcin deshabilitada
1 Interrupcin habilitada
Entrada de captura/comparacin. La seal de entrada
seleccionada se puede leer con este bit.
Salida. Para el modo de salida 0, este bit controla
directamente el estado de la salida.
0 Salida baja
1 Salida alta
Desbordamiento de captura. Este bit indica la existencia de un
desbordamiento en la captura. COV se debe reiniciar con
software.
0 No hay desbordamiento de captura
1 Existencia de desbordamiento en la captura
Flag de interrupcin de captura/comparacin
0
1

No hay interrupcin pendiente


1 Interrupcin pendiente

Registro del vector de interrupcin del Timer_A, TAIV

TAIVx

Bits
15-0

Valor del vector de interrupcin del Timer_A.

1.1.11. Timer_B
El Temporizador_B es un contador/temporizador de 16-bit con tres o siete
registros de captura/comparacin. Admite mltiples capturas/comparaciones, salidas
PWM, e intervalos de temporizacin. Timer_B tiene capacidad para varias
interrupciones. Las interrupciones se deben generar desde el contador en
condiciones de desbordamiento y desde cada registro de captura/comparacin. Este
temporizador se caracteriza por:
Contador de temporizacin asncrono de 16-bit con cuatro modos de
funcionamiento y cuatro longitudes seleccionables.
Fuente de reloj con posibilidad de configuracin y eleccin.
Tres o siete registros configurables de captura/comparacin.
Salidas configurables con capacidad de PWM.
Enganches de comparacin de buffer doble con carga sincronizada.
Registro del vector de interrupcin para una rpida decodificacin de
todas las interrupciones del Timer_B.
En la figura 2.23 se puede observar el diagrama de bloques del funcionamiento
del Temporizador_B.
1.1.11.1. Contador de 16-bit
El registro del contador de 16-bit, TBR, se incrementa o decrementa con cada
flanco de subida de la seal de reloj. Se puede tener acceso de lectura o escritura al
TBR mediante software. Adems, el temporizador puede generar una interrupcin
cuando se desborda. TBR se debe borrar ajustando el bit TBCLR. Con este bit
tambin se borra el divisor de reloj y el modo ascendente o descendente de la cuenta.
El reloj de temporizacin se puede generar desde ACLK, SMCLK o externamente
a travs de TBCLK o INCLK. La fuente de reloj se selecciona con los bits
TBSSELx. La fuente de reloj debe pasar directamente al temporizador o al divisor
por 2, 4 u 8 utilizando los bits IDx. El divisor de reloj se reinicia cuando TBCLR
est a 1.
El Timer_B se puede configurar a travs de los bits CNTLx para funcionar como
temporizador de 8, 10, 12 o 16-bit. El mximo valor de conteo, TBR(max),para las
longitudes seleccionables es 0FFh, 03Fh, 0FFFh, y 0FFFFh, respectivamente. Los
datos escritos en el registro TBR en los modos de 8, 10 y 12-bit estn justificados a
la derecha con los ceros a la izquierda.
1.1.11.2. Iniciando el temporizador
El temporizador se debe iniciar o reiniciar por los siguientes mtodos:

El temporizador cuenta cuando MCx > 0 y la fuente de reloj est activa.

Cuando el modo de temporizador est o bien ascendente o


ascendente/descendente, el temporizador se debe parar escribiendo 0 en TBCL0.
Entonces el temporizador se debe reiniciar escribiendo un valor distinto de 0 en
TBCL0. En esta situacin el temporizador inicia a incrementar su valor desde 0.

Figura Error! No hay texto con el estilo especificado en el documento..25 Diagrama de bloques
del Timer_B

1.1.11.3. Control del modo del temporizador


El temporizador tiene cuatro modos de funcionamiento como se describe en la
siguiente tabla.
MCx
00
01

Modo
Parado
Ascendente

10

Continuo

11

Ascendente/descendente

Descripcin
El temporizador se para
El temporizador cuenta repetidamente desde 0
hasta el valor de TBCL0
El temporizador cuenta repetidamente desde 0
hasta el valor seleccionado por los bits CNTLx
El temporizador cuenta repetidamente desde 0
hasta el valor de TBCL0 y vuelve hasta 0

Tabla Error! No hay texto con el estilo especificado en el documento..21 Modos del
temporizador B

Modo ascendente
El modo ascendente se utiliza si el periodo del temporizador debe ser diferente
del cmputo TBR(max). El temporizador cuenta repetidamente en orden ascendente
hasta el valor del registro de comparacin TBCL0, el cual define el periodo como se
muestra en la figura 2.24. El nmero de la cuenta del temporizador en el perodo es
TBCL0+1. Cuando el valor del temporizador se iguala a TBCL0 se reinicia el
temporizador contando desde 0 de nuevo. Si se selecciona este modo cuando el valor
del temporizador es mayor que TBCL0, el temporizador se reinicia empezando
desde 0.

Figura Error! No hay texto con el estilo especificado en el documento..26 Periodo de conteo del
Timer_B Up mode

El flag de interrupcin CCIFG del registro TBCCR0 se pone a 1 cuando el


temporizador cuenta hasta TBCL0. El flag de interrupcin TBIFG se pone a 1
cuando el temporizador cuenta desde TBCL0 hasta 0. Esto se puede entender mejor
en la figura 2.25 que detalla lo que ocurre en un ciclo de reloj del temporizador en
ste modo de funcionamiento.

Figura Error! No hay texto con el estilo especificado en el documento..27 Ajuste del flag en el
modo ascendente del Timer_B

Cuando se cambia el valor del registro TBCL0 mientras el temporizador est


ejecutndose y cuando el evento de carga de TBCL0 es inmediato, si el nuevo
periodo es mayor o igual que el antiguo, o es mayor que el valor de cuenta vigente,
el temporizador seguir hasta el fin del nuevo periodo. Si el valor del nuevo periodo
es menor que el valor actual del conteo, el temporizador vuelve a 0.
Modo continuo
En el modo continuo, el temporizador cuenta repetidamente hasta TBR(max) y se
reinicia desde 0 como se muestra en la figura 2.26. El registro de
comparacin/captura TBCL0 trabaja de la misma manera que los otros registros de
captura/comparacin.

Figura Error! No hay texto con el estilo especificado en el documento..28 Periodo de conteo del
Timer_B Continuous mode

El flag de interrupcin TBIFG se pone a 1 cuando el temporizador cuenta desde


TBR(max) hasta 0. En la figura 2.27 se observa este suceso.

Figura Error! No hay texto con el estilo especificado en el documento..29 Ajuste del flag en el
modo continuo del Timer_B

Modo ascendente/descendente
ste modo se utiliza si el periodo del temporizador debe ser diferente del
cmputo TBR(max), y si se necesita una generacin de pulsos simtrica. El
temporizador cuenta en orden ascendente repetidamente hasta el valor del registro
TBCL0 y vuelve hasta 0 en orden descendente, tal como muestra la figura 2.28. El
periodo es dos veces el valor del registro TBCL0.

Figura Error! No hay texto con el estilo especificado en el documento..30 Periodo de conteo del
Timer_B Up/down mode

La direccin de la cuenta se retiene. Esto permite al temporizador pararse y


reiniciarse en la direccin que se encontraba antes de pararse. Si no se desea, se
puede poner a 1 el bit TBCLR para borrar la direccin de conteo.
En el modo ascendente/descendente, el flag de interrupcin CCIFG del registro
TBCCR0 y el flag de interrupcin TBIFG se ponen a 1 solo una vez durante un
periodo, separados por la mitad del periodo del temporizador. El flag de interrupcin
CCIFG se pone a 1 cuando la cuenta del temporizador pasa de TBCL0 -1 a TBCL0,
y el flag de interrupcin TBIFG se pone a 1 cuando completa la cuenta descendente
de 0001h a 0000h. En la figura 2.29 se puede ver el funcionamiento del ciclo de
reloj en este modo.

Figura Error! No hay texto con el estilo especificado en el documento..31 Ajuste del flag en
modo Ascendente/descendente

1.1.11.4. Bloques de captura/comparacin


En el temporizador B estn presentes tres o siete bloques idnticos de
captura/comparacin, TBCCRx. Cualquiera de los bloques se debe utilizar para
capturar los datos del temporizador o para generar intervalos de tiempo. Es posible
elegir en que modo han de funcionar estos bloques, si en el modo de captura o en el
modo de comparacin.
Modo de captura
ste modo se selecciona cuando CAP = 1. El modo de captura se utiliza para
grabar eventos de tiempo. Se puede utilizar para clculos de velocidad o medidas de
tiempo. Las entradas de captura CCIxA y CCIxB estn conectadas a pins externos o
seales internas y se seleccionan con los bits CCISx. Los bits CMx seleccionan el
flanco de captura de la seal de entrada como subida, bajada o ambos. Una captura
tiene lugar en el flanco seleccionado de la seal de entrada. Cuando se produce una
captura los siguientes se efectan las acciones siguientes:
El valor del temporizador se copia en el registro TBCCRx.
El flag de interrupcin CCIFG se pone a 1.
El nivel de la seal de entrada se puede leer en cualquier momento desde el bit
CCI. Este tipo de controladores deben tener diferentes seales conectadas a CCIxA y
CCIxB. La seal de captura puede ser asncrona con el reloj temporizador y causar
una condicin de carrera. Poniendo a 1 el bit SCS se sincroniza la captura con el
siguiente reloj temporizador. Es recomendado sincronizar la captura de la seal con
el reloj temporizador poniendo a 1 el bit SCS.
Modo de comparacin
ste modo se selecciona cuando CAP = 0. Se utiliza para generar una seal de
salida PWM o interrupciones en un intervalo de tiempo especfico. Cuando TBR
cuenta hasta el valor en TBCLx:
El flag de interrupcin CCIFG se pone a 1.
La seal interna EQUx =1.
EQUx afecta la salida de acuerdo con el modo de salida.

1.1.11.5. Unidad de salida


Cada bloque de captura/comparacin contiene una unidad de salida. La unidad de
salida se utiliza para generar seales de salida como PWM. Cada unidad de salida
tiene ocho modos de funcionamiento que generan seales basadas en las seales
EQU0 y EQUx. La funcin del pin TBOUTH se puede utilizar para poner todas las
salidas del Timer_B en un estado de alta impedancia. Cuando la funcin del pin
TBOUTH se selecciona para el pin, y cuando el pin se establece en HIGH, todas las
salidas del Timer_A estn en un estado de alta impedancia.
Los modos de salida se definen con los bits OUTMODx y se describen en la tabla
2. La seal OUTx se cambia con el flanco de subida del reloj temporizador para
todos los modos exceptuando el modo 0. Los modos de salida 2, 3, 6 y 7 no son
tiles para la unidad de salida 0, porque EQUx = EQU0.
OUTMODx Modo

Descripcin

000

Output

La seal de salida OUTx se define por el bit OUTx. La seal


OUTx se actualiza automticamente.

001

Set

La salida se pone a 1 cuando el reloj temporizador llega al


valor TBCLx. Se mantiene mientras no se reinicie el
temporizador, o hasta que se seleccione otro modo de salida
que afecte a la salida.

010

Toggle/Reset La salida se conmuta cuando el temporizador cuenta hasta el


valor de TBCLx. La salida se reinicia cuando el temporizador
cuenta hasta el valor de TBCL0.

011

Set/Reset

La salida se pone a 1 cuando el temporizador cuenta hasta el


valor de TBCLx. La salida se reinicia cuando el temporizador
cuenta hasta el valor de TBCL0.

100

Toggle

La salida se conmuta cuando el temporizador cuenta hasta el


valor de TBCLx. El periodo de salida es el doble que el
periodo del temporizador.

101

Reset

La salida se reinicia cuando el temporizador cuenta hasta el


valor de TBCLx. Se mantiene hasta que se seleccione otro
modo de salida y que afecte a la salida.

110

Toggle/Set

La salida se conmuta cuando el temporizador cuenta hasta el


valor de TBCLx. Se pone a 1 cuando el temporizador cuenta
hasta el valor de TBCL0.

111

Reset/Set

La salida se reinicia cuando el temporizador cuenta hasta el


valor de TBCLx. Se pone a 1 cuando el temporizador cuenta
hasta el valor de TBCL0.

Tabla Error! No hay texto con el estilo especificado en el documento..22 Modos de


salida del Timer_B

Ejemplo de salida del temporizador en modo ascendente/descendente


La seal OUTx cambia cuando el temporizador es igual a TBCLx en cualquiera
de las direcciones y cuando el temporizador es igual a TBCL0, dependiendo del
modo de salida. En el ejemplo de la figura 2.32 se utilizan TBCL0 y TBCL3.

Figura Error! No hay texto con el estilo especificado en el documento..32 Ejemplo de salida del
Timer_B en Up/down mode

1.1.11.6. Interrupciones del Timer_B


Dos vectores de interrupcin estn asociados al mdulo del Timer_B de 16-bit:

El vector de interrupcin TBCCR0 para TBCCR0 CIFG.


El vector de interrupcin TBIV para todas las flags CCIFG y TBIFG.

En el modo de captura cualquier flag CCIFG se pone a 1 cuando el valor del


temporizador se captura en el registro TBCCRx asociado. En el modo de
comparacin, cualquier flag CCIFG se pone a 1 si TBR cuenta hasta el valor del
registro TBCLx asociado. A travs del software tambin se debe poner a 1 o a 0
cualquier flag CCIFG. Todas las flags CCIFG llaman a una interrupcin cuando sus
bits CCIE y GIE correspondientes estn a 1.
Vector de interrupcin TBCCR0
El flag TBCCR0 CCIFG tiene la prioridad mxima de la interrupcin de Timer_B
y tiene un vector de interrupcin dedicado como se muestra en la figura 2.33. El flag
TBCCR0 CCIFG se reinicia automticamente cuando la llamada a la interrupcin
TBCCR0 es atendida.

Figura Error! No hay texto con el estilo especificado en el documento..33 Flag de interrupcin
TBCCR0

Generador del vector de interrupcin, TBIV


Los flags TBCCRx CCIFG y TBIFG (exceptuando TBCCR0 CCIFG) estn
priorizados y combinados para generar un simple vector de interrupcin. El registro
del vector de interrupcin TBIV se utiliza para determinar que flag hizo la llamada a
una interrupcin.
La interrupcin de habilitacin de mxima prioridad genera un nmero en el
registro TBIV. ste nmero se puede evaluar o aadir al PC para entrar
automticamente en la rutina de software apropiada. Desactivadas las interrupciones
del Timer_B no afectan el valor de TBIV.
Cualquier acceso de lectura/escritura del registro TBIV reinicia automticamente
el ms alto flag de interrupcin pendiente. Si otro flag se pone a 1, otra interrupcin
se genera inmediatamente despus de atender la interrupcin inicial.

1.1.11.7. Registros Timer_B

Registro de control Timer_B, TBCTL

Unused

Bit-15 No se utiliza.

TBCLGRPx

Bits Grupo TBCLx.


14-13
00
Cada latch TBCLx carga independientemente
01
TBCL1+TBCL2 (Los bits TBCCR1 CLLDx controlan la
actualizacin)
TBCL3+TBCL4 (Los bits TBCCR3 CLLDx controlan la
actualizacin)
TBCL5+TBCL6 (Los bits TBCCR5 CLLDx controlan la
actualizacin)
TBCL0 independiente
10
TBCL1+TBCL2+TBCL3 (Los bits TBCCR1 CLLDx
controlan la actualizacin)
TBCL4+TBCL5+TBCL6 (Los bits TBCCR4 CLLDx
controlan la actualizacin)
TBCL0 independiente
11
TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6
(Los bits TBCCR1 CLLDx controlan la actualizacin)
Bits
Longitud del contador.
12-11
00
16-bit, TBR(max) = 0FFFFh
01
12-bit, TBR(max) = 0FFFh
10
10-bit, TBR(max) = 03FFh
11
8-bit, TBR(max) = 0FFh

CNTLx

Unused
TBSSELx

IDx

Bit-10
Bits
9-8

Bits
7-6

No se utiliza.
Seleccin de la fuente de reloj del Timer_B.
00 TBCLK
01 ACLK
10 SMCLK0
11 TBCLK invertido
Estos bits seleccionan el divisor para el reloj de entrada.
00
01
10
11

/1
/2
/4
/8

MCx

Bits
5-4

Unused
TBCLR

Bit-3
Bit-2

TBIE

Bit-1

TBIFG

Bit-0

Control de modo. Poniendo MCx = 00h cuando el Timer_B no est en


uso ahorra energa.
00 Modo de parada: el temporizador se para
01 Modo ascendente: el temporizador cuenta hasta TBCL0
10 Modo continuo: el temporizador cuenta hasta TBCNTLx
11 Modo ascendente/descendente: cuenta hasta TBCL0 y de ah
hasta 0
No se utiliza.
Se borra el Timer_B. ste bit reinicia el TBR, el divisor de reloj y la
direccin de la cuenta. TBCLR se reinicia automticamente y siempre
se lee como 0.
Habilitacin de interrupcin del Timer_B. ste bit habilita la llamada
a la interrupcin TBIFG.
0
Interrupcin deshabilitada
1
Interrupcin habilitada
Flag de interrupcin del Timer_B.
0
No hay interrupcin pendiente
1
Interrupcin pendiente

Registro del Timer_B

TBRx

Bits
15-0

El registro TBR es la cuenta del Timer_B.

Registro de captura/comparacin del Timer_B, TBCCRx

TBCCRx

Bits
15-0

En modo comparacin: compara los datos que se escriben en


cada TBCCRx y automticamente los transfiere a TBCLx.
TBCLx mantiene los datos para compararlos con los valores
del temporizador en el TBR.
En modo captura: el registro TBR se copia en el registro
TBCCRx cuando se ejecuta una captura.

Registro de control de captura/comparacin, TBCCTLx

CMx

CCISx

SCS

Bits
15-14

Modo de captura.

00
No hay captura
01
Captura en el flanco de subida
10
Captura en el flanco de bajada
11
Captura en ambos flancos
Bits
Seleccin de entrada de captura/comparacin. stos bits
13-12 seleccionan la seal de entrada.
CCIxA
00
CCIxB
01
GND
10
VCC
11
Bit-11 Sincronizacin de la fuente de captura. ste bit se utiliza para
sincronizar la seal de entrada de captura con el reloj
temporizador.
Captura asncrona
0
Captura sncrona
1

CLLDx

Bits
10-9

CAP

Bit-8

OUTMODx

Bits
7-5

CCIE

Bit-4

CCI

Bit-3

OUT

Bit-2

COV

Bit-1

CCIFG

Bit-0

Carga del latch de comparacin. stos bits seleccionan el


evento de carga del latch de comparacin.
TBCLx carga en escritura al TBCCRx
00
01
TBCLx carga cuando TBR cuenta hasta 0
10
TBCLx carga cuando TBR cuenta hasta 0 (Up y
continuous mode)
TBCLx carga cuando TBR cuenta hasta TBCL0
(Up/down mode)
11
TBCLx carga cuando TBR cuenta hasta TBCLx
Seleccin de modo captura/comparacin.
0
Modo de comparacin
1
Modo de captura
Modo de salida. Los modos 2, 3, 6 y 7 no tiles para el
TBCL0 porque EQUx = EQU0.
Valor del bit OUT
000
001
Set
010
Toggle/Reset
011
Set/Reset
100
Toggle
101
Reset
110
Toggle/Set
111
Reset/Set
Habilitacin de la interrupcin de captura/comparacin. Este
bit habilita la llamada a la interrupcin del flan CCIFg
correspondiente.
0 Interrupcin deshabilitada
1 Interrupcin habilitada
Entrada de captura/comparacin. La seal de entrada
seleccionada se puede leer con este bit.
Salida. Para el modo de salida 0, este bit controla
directamente el estado de la salida.
0 Salida baja
1 Salida alta
Desbordamiento de captura. Este bit indica la existencia de un
desbordamiento en la captura. COV se debe reiniciar con
software.
0 No hay desbordamiento de captura
1 Existencia de desbordamiento en la captura
Flag de interrupcin de captura/comparacin
0
1

No hay interrupcin pendiente


1 Interrupcin pendiente

Registro del vector de interrupcin del Timer_B, TBIV

TBIVx

Bits
15-0

Valor del vector de interrupcin del Timer_B.

1.1.12. Convertidor Analgico/Digital SD16_A


ste mdulo se refiere a un convertidor analgico-digital sigma-delta multicanal
de 16-bit. Est compuesto por cuatro convertidores individuales, denominados
canales, y por un voltaje interno de referencia. Cada canal tiene hasta ocho pares de
entrada analgica FULLY DIFFERNTIAL MULTIPLEXED incluyendo un sensor
de temperatura integrado y un suministro dividido de tensin. Los convertidores se
basan en moduladores sigma-delta de segundo orden de sobremuestreo y filtros
digitales de conversin decimal. Dichos filtros son del tipo peine con una
proporcin de sobremuestreo seleccionable de hasta 1024. Se puede hacer un filtrado
adicional mediante software.
Caractersticas del convertidor SD16_A:

Arquitectura de 16-bit sigma-delta.


Cuatro canales ADC independientes muestreando simultneamente.
Cuatro entradas analgicas multiplexadas diferenciales.
Seleccin por software de la generacin de la tensin de referencia en el
chip.
Seleccin por software de la referencia externa o interna.
Sensor de temperatura integrado accesible por todos los canales.
Frecuencia de entrada al modulador de hasta 1.1-MHz.
Buffer de entrada de alta impedancia.
Seleccin de modo de conversin de bajo consumo.

1.1.12.1. Corazn del ADC


La conversin analgica-digital se ejecuta en 1-bit, un modulador sigma-delta de
segundo orden. Un comparador de 1 slo bit en el modulador cuantifica la seal de
entrada con la frecuencia del modulador f M. La secuencia de datos resultantes de 1bit se hace el promedio por un filtro digital para obtener los resultados de la
conversin.

Comentario [M1]: Software selectable


on-chip reference voltaje generation

Figura Error! No hay texto con el estilo especificado en el documento..34 Diagrama de bloques
del convertidor AD

1.1.12.2. Rango de entrada analgica y PGA


La escala real del rango de la tensin de entrada para cada par analgico de
entrada es dependiente del ajuste de ganancia del amplificador de ganancia
programable (PGA) de cada canal. El mximo rango de escala real es VFSR donde
VFSR est definido por:

Para una tensin de referencia de 1.2V, el mximo rango de entrada de la escala


real para una ganancia de 1 sera:

1.1.12.3. Generador de tensin de referencia


El mdulo SD16_A tiene integrado una tensin de referencia de 1.2V. sta se
puede utilizar para cada canal y se habilita con el bit SD16REFON. Cuando se
utiliza la referencia interna se recomienda conectar externamente un condensador de
100nF del pin VREF al pin AVSS para reducir el ruido. La tensin de referencia
externa se puede utilizar fuera del chip cuando SD16VMIDON=1. La salida con
etapa separadora puede proporcionar hasta 1mA de funcionamiento. Cuando se
utiliza la tensin de referencia interna externamente se recomienda conectar un
condensador de 470nF del pin VREF al pin AVSS.
1.1.12.4. Apagado automtico
El ADC est diseado para aplicaciones de bajo consumo. Cuando el SD16_A no
est convirtiendo activamente, se desactiva automticamente y reactiva
automticamente cuando empieza la conversin. La referencia no se desactiva
automticamente, pero se puede desactivar ajustando el bit SD16REFON = 0.
Cuando estn desactivados tanto el SD16_A como la tensin de referencia, no se
consume energa.
1.1.12.5. Seleccin del par de entrada analgica
El mdulo SD16_A puede convertir hasta 8 pares de entrada diferencial
multiplexado en el PGA. Cuatro pares de entrada analgica (A0-A4) estn
disponibles externamente en el dispositivo. Tambin est disponible un divisor
resistivo para medir la tensin de suministro utilizando el multiplexor de entrada A5.
Un sensor de temperatura interno est disponible utilizando el multiplexor de
entrada A6. La entrada A7 est cortocircuitada entre el + y el y se puede utilizar
para calibrar el offset de la fase de entrada del SD16_A.

Ajustando la entrada analgica


La entrada analgica de cada canal se configura con el registro SD16INCTLx.
Estos ajustes se pueden configurar independientemente para cada canal. Los bits
SD16INCHx seleccionan uno de los pares de entrada del multiplexor analgico. La
ganancia para cada PGA se selecciona con los bits SD16GAINx. Estn disponibles
un total de 6 ajustes de ganancia.
Cualquier modificacin que se haga en los bits SD16INCHx o SD16GAINx
durante la conversin tendr efecto en el siguiente paso de la conversin decimal del
filtro digital. Despus de la modificacin de estos bits, las prximas tres
conversiones pueden ser invlidas, debido a que el tiempo de estabilizacin del filtro
digital. Esto se puede llevar a cabo automticamente con los bits SD16INTDLYx.
Cuando SD16INTDLYx = 00h, la llamada a la interrupcin de la conversin no
empezar hasta la cuarta conversin despus de una condicin de inicio.
1.1.12.6. Caractersticas de la entrada analgica
Este mdulo convertidor AD utiliza una fase de entrada de capacidad conmutada
que aparece como una impedancia de la circuitera externa, tal como se muestra en
la figura 2.35.

V S- = Fuente de tensin externa negativa


V S+ = Fuente de tensin externa positiva
RS = Fuente de resistencia externa
CS = Capacidad de muestreo

Figura Error! No hay texto con el estilo especificado en el documento..35 Circuito equivalente
de la entrada analgica

Cuando se utiliza los buffers, RS no afecta a la frecuencia de muestreo fS. De


cualquier modo cuando los buffers no se utilizan o no estn presentes en el
dispositivo, la mxima frecuencia del modulador fM se debe calcular desde el
mnimo tiempo de estabilizacin tSettling del circuito de muestreo dado por:

Donde:

Con

haciendo referencia a

. CS vara con el ajuste de ganancia como

se muestra en la tabla 2.23.


Ganancia PGA
1
2, 4
8
16, 32

Capacidad de muestreo CS
1.25-pF
2.5-pF
5-pF
10-pF

Tabla Error! No hay texto con el estilo especificado en el documento..23 Capacidad de


muestreo

1.1.12.7. Filtro digital


El filtro digital procesa el muestreo de datos de 1-bit desde el modulador
utilizando un filtro peine SINC3. La funcin de transferencia en el Dominio z se
describe de la siguiente manera:

Y en el Dominio de la frecuencia:

Donde la tasa de sobremuestreo, OSR, es la proporcin entre la frecuencia del


modulador fM y la frecuencia de muestreo f S. La figura 2.36 muestra la respuesta en
frecuencia del filtro en cuestin para una OSR de 32. El primer corte del filtro se
encuentra en fS = fM/OSR. La frecuencia de corte se puede ajustar cambiando la
frecuencia del modulador, fM , utilizando los bits SD16SSELx y SD16DIVx, y la tasa
de sobremuestreo utilizando los bits SD16OSRx y SD16XOSR.

Figura Error! No hay texto con el estilo especificado en el documento..36 Respuesta en


frecuencia del filtro peine

El filtro digital para cada canal habilitado ADC completa la conversin decimal
del muestreo digital de bits y los resultados de salida de la nueva conversin para el
registro correspondiente SD16MEMx en la frecuencia de muestreo fS .
Salida del filtro digital

Comentario [M2]: Completar

El nmero de bits de salida del filtro digital depende de la tasa de sobremuestreo


y est comprendido entre 15 y 30 bits.
1.1.12.8. Registro de memoria de conversin, SD16MEMx
Hay un registro SD16MEMx asociado con cada canal SD16_A. Los resultados de
la conversin se mueven al correspondiente registro SD16MEMx con cada paso de
la conversin decimal del filtro digital. El Bit SD16IFG se pone a 1 cuando se
escriben nuevos datos en el registro SD16MEMx. Y estos datos se borran
automticamente del bit SD16IFG cuando la CPU los ha ledo o si ha sido borrado
por el software.
Formato de los datos de salida
El formato de los datos de salida es configurable en complemento de a dos, en
offset binario o en modo unipolar, tal como muestra la tabla 2.24. El formato de
datos se selecciona con los bits SD16DF y SD16UNI.
SD16UNI

SD16DF

Format
Bipolar
Offset
Binary
Bipolar
Twos
Complement

Analog
Input
+FSR
ZERO
FSR
+FSR
ZERO
FSR

SD16MEMx
FFFF
8000
0000
7FFF
0000
8000

Digital Filter Output


(OSR = 256)
FFFFFF
800000
000000
7FFFFF
000000
800000

Unipolar

+FSR
ZERO
FSR

FFFF
0000
0000

FFFFFF
800000
000000

Tabla Error! No hay texto con el estilo especificado en el documento..24 Formato de los datos
de salida

1.1.12.9. Modos de conversin


El mdulo SD16_A se puede configurar en cuatro modos de funcionamiento,
listados en la tabla 2.24 y detallados a continuacin. Por cada canal,los bits
SD16SNGL y SD16GRP seleccionan el modo de funcionamiento.
SD16SNGL
1

SD16GRP
0

Modo
Canal simple,
conversin simple

Funcionamiento
Se convierte un canal una vez

Canal simple,
Conversin continua

Se convierte continuamente un
canal

Grupo de canales,
Coversin simple

Se convierten una vez un grupo


de canales

Grupo de canales,
Conversin continua

Se convierten continuamente un
grupo de canales

Cuando SD16GRP = 0 el canal se agrupa y es el canal maestro si en el canal anterior SD16GRP = 1.

Tabla Error! No hay texto con el estilo especificado en el documento..25 Modos de conversin

Canal simple, conversin simple


Ajustando el bit SD16SC de un canal se inicia la conversin en dicho canal
cuando SD16SNGL = 1 y cuando ste canal no est agrupado con otros. El bit
SD16SC se pondr a 0 automticamente despus de la conversin.
Si se pone a 0 el bit SD16SC antes de que se complete la conversin,
inmediatamente se para el proceso de conversin del canal seleccionado, el canal y
el filtro digital se apagan. El valor del bit SD16MEMx puede cambiar cuando
SD16SC = 0. Se recomienda leer los datos de la conversin del registro SD16MEMx
antes de poner a 0 SD16SC para evitar una lectura de resultados errnea.
Canal simple, conversin continua
Cuando el bit SD16SNGL = 0 se selecciona el modo de conversin continua. La
conversin del canal seleccionado empezar cuando el bit SD16SC = 1 y contina
hasta que ste bit se ponga a 0 mediante el software mientras que el canal no est
agrupado con otro
Si se pone a 0 el bit SD16SC antes de que se complete la conversin,
inmediatamente se para el proceso de conversin del canal seleccionado, el canal y
el filtro digital se apagan. El valor del bit SD16MEMx puede cambiar cuando
SD16SC = 0. Se recomienda leer los datos de la conversin del registro SD16MEMx
antes de poner a 0 SD16SC para evitar una lectura de resultados errnea.
En la figura 2.37 tenemos un ejemplo de funcionamiento de canal simple para los
modos de conversin simple y continua.

Figura Error! No hay texto con el estilo especificado en el documento..37 Ejemplo de


conversin de canal simple

Grupo de canales, conversin simple


Canales consecutivos del SD16_A se pueden agrupar juntos con el bit SD16GP
para sincronizar la conversin. Poniendo a 1 el bit SD16GRP para un canal, se
agrupa con el canal siguiente en el mdulo. Por ejemplo, en el canal 0, se pone
SD16GRP = 1 y quedaran agrupados el canal 0 y el canal 1. En ste caso, el canal 1
sera el canal maestro, habilitando y deshabilitando la conversin de todos los
canales del grupo con el bit SD16SC del canal maestro. El bit SD16GRP del canal
maestro siempre es 0. El bit SD16GP del ltimo canal del mdulo SD16_A no tiene
funcin por lo que siempre es 0.
Cuando el bit SD16SNGL = 1 en el canal de un grupo, est seleccionado el modo
de conversin simple. Se proceder a la conversin simple de ese canal en
sincronizacin con el canal maestro cuando el bit SD16SC de ste est a 1. El bit
SD16SC de los canales de un grupo se pone automticamente a 0 o a 1 ajustando el
bit SD16SC del canal maestro. SD16SC de cada canal se puede poner a 0
independientemente por software.
Poniendo a 0 SD16SC para el canal maestro antes de completar la conversin
hace que el proceso de conversin en todos los canales del grupo se detenga,
apagando todos los canales y sus correspondientes filtros digitales. Los valores en el
registro SD16MEMx pueden cambiar cuando SD16SC se pone a 0. Se recomienda
leer los datos de la conversin de SD16MEMx antes de poner a 0 SD16SC para
evitar una lectura de resultados errnea.
Grupo de canales, conversin continua

Cuando SD16SNGL = 0 para cada canal en un grupo, est seleccionado el modo


de conversin continua. Se proceder a la conversin continua de ese canal en
sincronizacin con el canal maestro cuando el bit SD16SC de ste est a 1. El bit
SD16SC de los canales de un grupo se pone automticamente a 0 o a 1 ajustando el
bit SD16SC del canal maestro. SD16SC de cada canal se puede poner a 0
independientemente por software.
Cuando se pone a 1 el bit SD16SC del canal de un grupo por software
independientemente del maestro, la conversin de ese canal se sincronizar
automticamente con el canal maestro. Esto asegura que las conversiones de canales
agrupados se sincronicen siempre al maestro.
Poniendo a 0 SD16SC para el canal maestro antes de completar la conversin
hace que el proceso de conversin en todos los canales del grupo se detenga,
apagando todos los canales y sus correspondientes filtros digitales. Los valores en el
registro SD16MEMx pueden cambiar cuando SD16SC se pone a 0. Se recomienda
leer los datos de la conversin de SD16MEMx antes de poner a 0 SD16SC para
evitar una lectura de resultados errnea.
En la figura 2.38 se puede visualizar un ejemplo del funcionamiento de un grupo
de tres canales del mdulo SD16_A.

El canal 0 se configura en el modo de conversin simple, SD16SNGL = 1.


Los canales 1 y 2 se configuran en el modo de conversin continua,
SD16SNGL = 0.
El canal 2 es el ltimo canal del grupo, por lo tanto es el canal maestro.

Figura Error! No hay texto con el estilo especificado en el documento..38 Ejemplo de


conversin de grupo de canales

1.1.12.10. Registros SD16_A


En la siguiente tabla se listan todos los registros asociados al convertidor AD de
16-bit.

Tabla Error! No hay texto con el estilo especificado en el documento..26 Registros SD16_A

Registro de control SD16_A, SD16CTL

Reserved
SD16XDIVx

SD16LP

SD16DIVx

SD16SSELx

SD16
VMIDON

SD16
REFON

SD16OVIE

Reserved

Bits Reservado.
15-12
Bits Divisor de reloj SD16_A.
11-9
000
/1
001
/3
010
/16
011
/48
1xx
Reservado
Bit-8 Modo de bajo consumo. ste bit selecciona un modo de consumo
reducido a velocidad reducida.
0
Modo de bajo consumo deshabilitado
1
Modo de bajo consumo habilitado. La mxima frecuencia de
reloj para el SD16_A se reduce
Bits Divisor de reloj SD16_A.
7-6
00
/1
01
/2
10
/4
11
/8
Bits Seleccin de la fuente de reloj del SD16_A.
5-4
00
MCLK
01
SMCLK
10
ACLK
11
ACLK externo
Bit-3 VMID buffer on.
0
Off
1
On
Bit-2 Generador de referencia On.
0
Referencia off
1
Referencia on
Bit-1 Habilitacin de interrupcin de desbordamiento del SD16_A. El bit
GIE debe estar a 1 para habilitar la interrupcin.
0
Interrupcin de desbordamiento deshabilitada
1
Interrupcin de desbordamiento habilitada
Bit-0 Reservado.

Registro de control del canal x, SD16CCTLx

Reserved

Bit-15 Reservado.

SD16BUFx

Bits
14-13

Modo de buffer de entrada de alta impedancia.


00
01
10
11

Buffer deshabilitado
intensidad/velocidad baja
intensidad/velocidad media
intensidad/velocidad alta

SD16UNI

Bit-12 Seleccin del modo unipolar.


0
Modo bipolar
1
Modo unipolar

SD16XOSR

Bit-11 Proporcin de sobremuestreo extendida. ste bit junto a los bits


SD16OSrx seleccionan la proporcin de sobremuestreo.
Bit-10 Seleccin del modo de conversin simple.
0
Modo de conversin continua
1
Modo de conversin simple
Bits Proporcin de sobremuestreo
9-8
Cuando SD16XOSR = 0
256
00
128
01
64
10
32
11
Cuando SD16XOSR = 1
512
00
1024
01
Reservado
10
Reservado
11
Bit-7 Conmutador LSB. Cuando est a 1, conmuta el bit SD16LSBACC
cada vez que se lee el registro SD16MEMx.
0
SD16LSBACC no se conmuta con la lectura de
1
SD16MEMx
SD16LSBACC se conmuta con la lectura de SD16MEMx
Bit-6 Acceso LSB. ste bit permite el acceso a los ltimos o primeros
16-bits del resultado de la conversin SD16_A.
0
SD16MEMx contiene los 16-bits ms significativos de la
conversin
SD16MEMx contiene los 16-bits menos significativos de
1
la conversin
Bit-5 Flag de interrupcin de desbordamiento SD16_A.

SD16SNGL

SD16OSRx

SD16
LSBTOG

SD16
LSBACC

SD16OVIFG

SD16DF

Bit-4

SD16IE

Bit-3

SD16IFG

Bit-2

SD16SC

Bit-1

Reserved

Bit-0

0
No hay interrupcin de desbordamiento pendiente
1
Interrupcin de desbordamiento pendiente
Formato de datos de SD16_A.
0
Offset binario
1
Complemento de a 2
Habilitacin de interrupcin de SD16_A.
0
Deshabilitada
1
Habilitada
Flag de interrupcin de SD16_A. Se pone a 1 cuando hay
disponibles nuevos resultados de conversin. SD16IFG se reinicia
automticamente cuando el registro correspondiente SD16MEMx
es ledo.
0
No hay interrupcin pendiente
1
Interrupcin pendiente
Inicio de la conversin de SD16_A.
0
La conversin no se inicia
1
Se inicia la conversin
Reserved

Registro de control de entrada de canal x, SD16INCTLx

SD16INTDLYx

Bits
7-6

SD16GAINx

Bits
5-3

SD16INCHx

Bits
2-0

Generacin de retraso de interrupcin despus del inicio de la


conversin. Estos bits seleccionan el retraso para la primera
interrupcin despus del inicio de la conversin.
00
La cuarta muestra origina la interrupcin
01
La tercera muestra origina la interrupcin
10
La segunda muestra origina la interrupcin
11
La primera muestra origina la interrupcin
Ganancia de preamplificacin de SD16_A
000
x1
001
x2
010
x4
011
x8
100
x16
101
x32
110
Reservado
111
Reservado
Canal de par de entrada diferencial SD16_A
000
001
010
011
100
101
110
111

A0
A1
A2
A3
Reservado
(AVCC AVSS) /11
Sensor de temperatura
Short for PGA offset measurement

Registro de la memoria de conversin del canal x SD16_A, SD16MEMx

Conversion
Results

Bits
15-0

Resultados de la conversin. El registro SD16MEMx mantiene los


primeros 16-bit o los ltimos de la salida del filtro digital,
dependiendo del bit SD16LSBACC.

Registro del vector de interrupcin SD16_A, SD16IV

SD16IVxs

Bits
15-0

Valor del vector de interrupcin SD16_A.

1.1.13. Modulo de emulacin embebida


El mdulo de emulacin embebida (EEM) se controla y se accede a l a travs de
la interfaz JTAG. Para ste mdulo estn disponibles las siguientes caractersticas:

Ejecucin de cdigo no intrusivo con control de punto interrupcin en


tiempo real.
Funcionalidad de escaln simple, entrada de escaln y salto de escaln.
Total aceptacin de todos los modos de bajo consumo.
Aceptacin de todas las frecuencias del sistema y todas las fuentes de
reloj.
Hasta ocho disparadores/puntos de interrupcin hardware en el bus de
direccin de memoria (MAB) o en el bus de memoria de datos (MDB).
Hasta dos disparadores/puntos de interrupcin hardware en los accesos de
escritura al registro de la CPU.
Los disparadores MAB, MDB, y de los accesos al registro de la CPU se
pueden combinar para formar hasta ocho disparadores complejos.
Secuencia de disparo.
Almacenamiento del bus interno y la seal de control utilizando un buffer
de rastreo integrado.
Control de reloj para los temporizadores, comunicacin de los perifricos.

Figura Error! No hay texto con el estilo especificado en el documento..39 Diagrama de bloques
del EEM

Comentario [M3]: Single step, step


into, and step over functionality

1.1.13.1. Disparadores o triggers


El control de eventos en el EEM del sistema del MSP430F4794 consiste en
triggers, los cuales son seales internas indicando que un determinado evento ha
ocurrido. Estos triggers deben usarse como puntos de interrupcin simples, pero
tambin es posible combinar dos o ms triggers para permitir la deteccin de eventos
complejos y activar varias reacciones adems de detener la CPU.
Los triggers se pueden usar para controlar los bloques funcionales del EEM que
son los siguientes:
Puntos de interrupcin (Parada de la CPU)
Almacenamiento de estado
Secuenciador
Hay dos tipos de triggers, estn los triggers de memoria y los triggers de escritura
en el registro de la CPU.
Cada bloque de trigger de memoria se puede seleccionar independientemente para
comparar o el MAB o el MDB con un valor dado. Dependiendo del mdulo EEM
implementado la comparacin puede ser =, , o . La comparacin tambin se
puede limitar hasta un nmero determinado de bits con la utilizacin de una
mscara. La mscara o es de bit a bit o es de byte a byte, dependiendo del
dispositivo. Adems para seleccionar el bus y la comparacin, se puede seleccionar
la condicin bajo la cual se activa el trigger. Las condiciones incluyen acceso de
lectura, acceso de escritura, acceso DMA, y recopilacin de instrucciones.
Cada bloque de trigger de escritura en el registro de la CPU se puede seleccionar
independientemente para comparar lo que se ha escrito en l con un valor dado. El
registro observado se puede seleccionar para cada trigger independientemente. LA
comparacin puede ser =, , o . Como sucede en el bloque de trigger de memoria
la comparacin tambin se puede limitar hasta un nmero determinado de bits con la
utilizacin de una mscara.
Ambos tipos de trigger se pueden combinar para formar triggers ms complejos.
Por ejemplo, un trigger complejo puede indicar cuando un valor en concreto se ha
escrito en una direccin especificada por el usuario.

1.1.13.2. Secuenciador del trigger


El secuenciador de disparo permite la definicin de una determinada secuencia de
seales de disparo antes de que se acepte un evento para una pausa o un evento de
almacenamiento de estado. Dentro de la secuencia de disparo, es posible utilizar las
siguientes caractersticas:

Cuatro estados (Estado 0 al estado 3).


Dos transiciones por estado hasta otro estado.
Reinicio del trigger, que reinicia el secuenciador al estado 0.

El secuenciador de estado siempre se inicia en el estado 0 y se debe ejecutar hasta


el estado 3 para generar una accin. Si el estado 1 y el estado 2 no son necesarios se
pueden eludir.
1.1.13.3. Almacenamiento de estado (buffer de seguimiento interno)
La funcin de almacenamiento de estado utiliza un buffer integrado para
almacenar la informacin de la seal de control de MAB, MDB, y CPU de manera
no intrusiva. El buffer puede retener hasta ocho entradas. Su flexible configuracin
permite al usuario grabar la informacin de inters.
1.1.13.4. Control de reloj
El EEM proporciona un dispositivo dependiente del control de reloj flexible. Esto
es til en aplicaciones dnde es necesario un reloj en funcionamiento para los
perifricos antes de que la CPU se pare.
El control de reloj es flexible y compatible con los mdulos que necesitan un
reloj en funcionamiento y los mdulos que se pueden parar cuando la CPU se para a
causa de un punto de interrupcin.

También podría gustarte