Vous êtes sur la page 1sur 21

Instrumentacin MSP430

MSP430
Introduccin
Los tipos de dispositivos, tales como un microprocesador, microcontrolador, procesador,
procesador digital de seales (DSP), entre otros, de una cierta manera, estn relacionados con
el mismo dispositivo - el ASIC (Aplicacin Specific Integrated Circuit). Cada dispositivo de
procesamiento ejecuta instrucciones, siguiendo un programa determinado aplicado a las
entradas y compartiendo caractersticas arquitectnicas desarrolladas a partir de los primeros
microprocesadores creados en 1971. En las tres dcadas despus del desarrollo del primer
microprocesador, grandes desarrollos e innovaciones se han hecho en este campo de la
ingeniera. Cualquiera de los trminos utilizados en el principio de esta seccin son correctos
para definir un microprocesador, aunque cada uno tiene diferentes caractersticas y
aplicaciones.

La definicin de un microcontrolador es algo difcil debido a la naturaleza constantemente


cambiante de la industria del silicio. Lo que hoy consideramos un microcontrolador con
capacidades medianas es varios rdenes de magnitud ms potente que el equipo utilizado en
las primeras misiones espaciales. Sin embargo, algunas generalidades pueden ser hechas
como para que caracteriza a un microcontrolador. Tpicamente, los microcontroladores son
seleccionados para sistemas de proyectos embebidos, es decir, sistemas de control con un
nmero limitado de entradas y salidas cuando el controlador es embebido en un sistema.

El concepto de SoC (system-on-chip) programable inici en 1972 con la microcomputadora


TMS1000 de 4 bits desarrollado por Texas Instruments (TI), y en esos das, era ideal para
aplicaciones tales como calculadoras y hornos. Este trmino se cambi a Unidad de
microcontrolador (MCU), que era ms descriptivo de una aplicacin tpica.

Hoy en da, MCUs estn en el corazn de muchos sistemas fsicos, con mayores niveles de
integracin y la capacidad de procesamiento con bajos niveles de consumo de energa.

La siguiente lista presenta una serie de cualidades que definen a un microcontrolador:

Costo: Por lo general, los microcontroladores son de gran volumen, dispositivos de


bajo costo;
Frecuencia de reloj: En comparacin con otros dispositivos (microprocesadores y
DSPs), los microcontroladores utilizan una frecuencia de reloj de baja.
Microcontroladores hoy pueden correr hasta 100 MHz / 100 Millones de instrucciones
por segundo (MIPS).
Consumo de energa: rdenes de magnitud inferior a un DSP y a un MPU;
Bits: 4 bits (dispositivos ms antiguos) a 32 bits en los dispositivos;
Memoria: memoria disponible limitada, por lo general menos de 1 MByte;
Entrada/Salida (I/O): Cuenta desde pocos hasta muchos pines (8-150) de I/O.

La Figura 1 muestra un microcontrolador que cumpla con los criterios anteriores.

1
Instrumentacin MSP430

Fig. 1 Microcontroladores de Texas Instruments MSP430F169.

Principales caractersticas de un microcontrolador MSP430

Aunque hay variantes en la familia de dispositivos, un microcontrolador MSP430 puede


caracterizarse por:

Bajo consumo de energa:


0.1 A para la retencin de datos en la memoria RAM;
0.8 A para el funcionamiento del reloj en modo operacin tiempo real;
250 A / MIPS en funcionamiento activo.
Voltaje de funcionamiento bajo (de 1,8 V a 3,6 V).
< 1 s de reloj de puesta en marcha.
< 50 nA de corriente de fuga del puerto.
Potencia Cero Caida de voltaje en Reset (BOR).
Dispositivo analgico en el Chip:
Convertidor Analgico Digital de 10/12/16-bit (ADC);
Convertidor Digital Analgico de 12 bits (DAC);
Temporizadores con Compuerta de comparadores;
Amplificadores Operacionales (OP Amps);
Supervisor del Voltaje de Alimentacin (SVS).
CPU con arquitectura RISC de 16 bits:
Procesamiento de instrucciones en cualquiera de los bits, bytes o palabras;
Nucleo compacto diseado para reducir el consumo de energa y su costo;
Compilador eficiente;
27 instrucciones bsicas;
7 modos de direccionamiento;
Capacidad extendida dl vector de interrupciones.
Flexibilidad:
Memoria hasta de 256k en la Flash Programable(ISP);
Opcin hasta 100 pines;
USART, I2C, Temporizadores;
Controlador LCD;
Emulador incorporado.

2
Instrumentacin MSP430

El rendimiento del microcontrolador est directamente relacionada con el bus de datos de 16


bits, los 7 modos de direccionamiento y el conjunto de instrucciones reducido, lo que permite
un cdigo de programacin ms compacto y corto para una rpida ejecucin. Estas familias
de microcontroladores comparten un ncleo del CPU de 16 bits (Central Processing Unit), tipo
RISC, perifricos inteligentes, y un sistema de reloj flexible. Emplea una arquitectura Von
Neumann que interconecta comnmente los Buses de direcciones de memoria (MAB) y el bus
de datos de memoria (MDB).

Fig. 2. Arquitectura del MSP430.

Unidad Central de Procesos (CPU del MSP430)

La arquitectura de tipo RISC de la CPU se basa en un conjunto breve de instrucciones (27


instrucciones), interconectados por un conjunto de instrucciones de 3 etapas para codificar la
instruccin. La CPU tiene una ALU de 16 bits, cuatro registros dedicados y doce registros de
trabajo, que hace que el MSP430 sea un microcontrolador de alto rendimiento adecuado para
aplicaciones de baja potencia. La adicin de doce de registros de trabajo de propsito general
ahorra ciclos de CPU, al permitir el almacenamiento de valores y variables utilizadas con
frecuencia en vez de utilizar la memoria RAM.

El conjunto de instrucciones ortogonal permite el uso de cualquier modo de direccionamiento


para cualquier instruccin que hace que la programacin sea clara y coherente, con pocas
excepciones, lo que aumenta la eficiencia del compilador para lenguajes de alto nivel, como
C.
3
Instrumentacin MSP430

Unidad Aritmtica Lgica (ALU)

El MSP430 CPU incluye una unidad lgica aritmtica (ALU) que se encarga de las operaciones
de suma, resta, comparacin y lgicas (AND, OR, XOR). Las operaciones de la ALU pueden
afectar las banderas del desbordamiento, del cero, del negativo, en el registro de estado.

Registros de la CPU del MSP430

La CPU incorpora diecisis registros de 16 bits:


Cuatro registros tiene funciones dedicadas (R0, R1, R2 y R3);
Hay 12 registros de trabajo para uso general (R4 a R15).

R0: Contador de Programa (PC)

El contador de programa de 16 bits (PC/R0) apunta a la siguiente instruccin para ser leda
por la memoria y ejecutada por la CPU. El contador de programa es implementado por el
numero de bytes usados por la instruccin (2, 4, o 6 bytes). Es importante recordar que el PC
est alineado en direcciones pares, porque las instrucciones son de 16 bits, a pesar de que las
direcciones de memoria individuales contienen valores de 8 bits.

R1: Puntero de Pila (SP)

El puntero de pila (SP/R1) se encuentra en R1.

Primero: la pila puede ser utilizado por el usuario para almacenar datos para su uso posterior
(instrucciones: almacenar a travs de PUSH, recuperar mediante POP);

Segundo: la pila puede ser utilizado por el usuario o por el compilador para los parmetros de
subrutinas (PUSH, POP en llamadas a la rutina; direcciona va el clculo del offset del puntero
de la pila (SP) en el llamado a una subrutina);

Tercero: utilizado por llamadas a subprogramas para almacenar el valor del contador de
programa para el retorno al finalizar la subrutina (RET);

Cuarto: utilizado por interrupcin, el sistema almacena el valor real de PC, y luego el contenido
del registro de estado actual (en la parte superior de la pila) al regreso de interrupcin (RETI),
el sistema recibe el mismo estado que tena justo antes de que ocurriera la interrupcin
(siempre y cuando no ha cambiado el valor de TOS) y el mismo valor del contador del programa
de la pila.

R2: Registro de Estados (SR)

El Registro de estado (SR/R2) guarda los bits de estado y de control. Los indicadores del
sistema se cambian automticamente por la CPU en funcin del resultado de una operacin
en un registro. Los bits reservados de la SR se utilizan para apoyar el generador de constantes.

4
Instrumentacin MSP430

R2/R3: Registro del Generador de Constantes (CG1/CG2)

Dependiendo del valor de la fuente de registro del modo de direccionamiento (As), seis
constantes comnmente pueden ser generadas sin una palabra de cdigo o sin un cdigo de
acceso a la memoria para recuperarlos. Esta es una caracterstica muy poderosa, que permite
la implementacin de instrucciones emuladas, por ejemplo, en lugar de implementar una
instruccin de ncleo para un incremento, se utiliza el generador constante.

R4 - R15: Registros de Propsito General.

Estos registros de propsito general se utilizan para almacenar valores de datos, indicadores
de direccin, o los valores del ndice y se puede acceder con bytes o palabras de instrucciones.

Configuracin de los Puertos Generales I/O

Registros
Independiente del tipo de puerto de E/S, la configuracin de la operacin de puerto se define
mediante el software usando los siguientes registros:

Registros de Direccin (PxDIR)


Registros de 8 bits que Lee / Escribe
Selecciona la direccin del correspondiente pin de E/S, sin tener en cuenta la funcin
seleccionada en el Pin (de uso general E/S o como una funcin especial de E/S);
Otras funciones de mdulo deben ajustarse segn se requiera por los otros mdulos;
Configuracin del registro PxDIR:
o Bit = 1: El pin del puerto se configura como una salida;
o Bit = 0: el pin del puerto se configura como una entrada.

Registros de Entrada (PxIN)


Cada bit de estos registros de slo lectura refleja la seal de entrada en el pin de E/S
correspondiente (pin configurado como propsito general E/S);
Configuracin del registro PxIN:
o Bit = 1: La entrada es alta;
o Bit = 0: La entrada es baja;
Consejo: Evite escribir a estos registros de slo lectura, ya que se da lugar a un aumento
del consumo de corriente.

Registros de salida (PxOUT)

Los registros de salida son de lectura y escritura. Cada bit de estos registros refleja el
valor escrito en el pin de salida correspondiente.
Configuracin PxOUT:

5
Instrumentacin MSP430

o Bit = 1: La salida es alta;


o Bit = 0: La salida es baja.
La familia 2xx ofrece la caracterstica adicional de que cada E/S tiene una resistencia
pullup / pulldown que se puede programar individualmente. Si la resistencia pullup /
pulldown del pin es habilitada, el correspondiente bit en el registro PxOUT selecciona el
pull-up o pull-down:
o Bit = 1: El pin esta puesto en alto;
o Bit = 0: El pin esta puesto en bajo.

Registro de Habilitacin de la Resistencia Pull-up/Pull-down (PxREN)


Se aplica slo a la familia 2xx.
Cada bit de este registro activa o desactiva la resistencia pullup/pulldown del correspondiente
pin E/S.
Configuracin del registro PxREN:
o Bit = 1: Resistencia Pullup/pulldown Habilitado;
o Bit = 0: Resistencia Pullup/pulldown deshabilitado.

Registro de seleccin de funciones: (PxSEL) y (PxSEL2)


Algunos pines del puerto son multiplexados con otras funciones del mdulo perifrico
(ver la ficha tcnica especfica del dispositivo);
Los bits: (PxSEL) y (PxSEL2 - 2xx familia y algunos dispositivos de la familia 47x (x)),
se utilizan para seleccionar la funcin del pin: Puerto de propsito general E/S o funcin
del mdulo perifrico.
Configuracin del registro PxSEL:
o Bit = 0: la funcin de E/S es seleccionada para este pin.
o Bit = 1: la funcin del mdulo perifrico es seleccionada para este pin.
Los dispositivos de la familia 2xx proporcionan el bit PxSEL2 para configurar las
caractersticas adicionales del dispositivo. La combinacin PxSEL y PxSEL2
proporciona la siguiente configuracin de los dispositivos 2xx:
o Bit = 0: la funcin de E/S es seleccionada para este pin.
o Bit = 1: la funcin del mdulo perifrico es seleccionada para este pin.

Funcin del Pin PxSEL PxSEL2 Pin


0 0 Selecciona la funcin de E/S de propsito general
0 1 Selecciona la funcin del mdulo perifrico primaria
1 0 Reservado (Vea la hoja de datos especfica del dispositivo)
1 1 Selecciona la funcin del mdulo perifrico secundario
Nota: Cuando los puertos P1 y P2 estn configurados para la funcin del mdulo
perifrico (PxSEL = 1 y/0 PxSEL2), las interrupciones estn deshabilitadas.

6
Instrumentacin MSP430

Configuracin de los Puertos Generales I/O para aceptar


interrupciones externas

Puertos que pueden aceptar interrupciones (P1 y P2)


Cada pin de los puertos P1 y P2 puede generar una peticin de Interrupcin y es configurable
usando los registros PxIFG, PxIE, y PxIES. De igual manera los puertos hacen uso de los
registros para su configuracin que como puertos no interrumpibles que son PxDIR, PxIN,
PxREN, PxSEL1, PxSEL2 y PxOUT, pero con estos tres registros adicionales:

Habilitar Interrupcin (PxIE)

Registro de Lectura y escritura para habilitar la interrupcin mediante pines individuales;

Configuracin del PxIE:


Bit = 1: La interrupcin es habilitada;
Bit = 0: La interrupcin es deshabilitada.

Cada bit del registro PxIE permite la solicitud de interrupcin asociada con la bandera de la
interrupcin correspondiente PxIFG;

Escribir en PxOUT y/o PxDIR puede resultar en el establecimiento de la bandera en PxIFG.

Registro de Seleccin de Transicin de la Interrupcion (PxIES)

Este registro de lectura y escritura selecciona la transicin en que se produzca una interrupcin
para el pin correspondiente de E/S

Configuracin del PxIES:

Bit = 1: la bandera de interrupcin se establece en una transicin de alto a bajo;


Bit = 0: la bandera de interrupcin se establece en una transicin de bajo a alto.

Registro de Bandera de Interrupcin (PxIFG)

En este registro de lectura y escritura, los bits se coloca automticamente cuando la transicin
de la seal programada (Flanco) se produce en el correspondiente Pin de E/S.

Cada Bit de la bandera PxIFG se puede colocar por medio de software, lo que permite generar
interrupciones por software.

Cada Bit de la bandera PxIFG se debe resetear mediante software.

Configuracin del PxIFG:


Bit = 0: No hay una interrupcin pendiente;
Bit = 1: Hay una interrupcin pendiente.

7
Instrumentacin MSP430

Configuracin del MSP430 para el empleo del convertidor


analgico digital

El mdulo ADC10 incluido en el MSP430 permite un soporte rpido, el convertidor analgico-


Digital de 10 bits. El mdulo implementa un:

El ncleo SAR es de 10 bits


Control de seleccin de muestreo
Generador de Referencia.
El Controlador de transferencia de datos (DTC) manipula automtica de los resultados
de la conversin (conversin y almacenamiento de muestras del ADC, sin intervencin
de la CPU).

Las caractersticas del ADC10 incluyen:

Mayor que 200 ksps de la mxima tasa de conversin;


Convertidor monotnica de 10 bits sin cdigos;
Muestreo y retencin, con perodos de muestreo programables;
Iniciacin de conversin por software o mediante el Timer_A;
Seleccin mediante software del voltaje de referencia del Chip (1,5 V o 2,5 V)
Seleccin mediante software de la referencia interna o externa;
Ocho canales de entrada externos;
Canales de conversin para sensor de temperatura interno, VCC, y para las referencias
externas;
Seleccin de la fuente del reloj de conversin;
Diversos modos de conversin: canal simple, canal simple repetitivo, secuencial y
secuencial y repetitivo.
El ncleo del ADC y el voltaje de referencia se pueden apagar por separado;
Controlador de transferencia de datos para el almacenamiento automtico de los
resultados convertidos.

El mdulo del ADC10 se configura mediante el software por el usuario.

Ncleo del ADC de 10 bits

El ncleo del ADC convierte una entrada analgica a su representacin digital de 10 bits y
almacena el resultado en el registro ADC10MEM.

El rango de conversin analgica se limita a sus lmites superior e inferior (V R+ y VR-), dichos
voltajes son programables y se pueden seleccionar.

La salida digital (NADC) es:

Escala completa: NADC = 03FFh, cuando la seal de entrada VR+ - 0.5LSB;


Cero: NADC = 0000h, cuando la seal de entrada VR- + 0.5LSB.

8
Instrumentacin MSP430

Resultados de conversin pueden estar en formato binario o formato de complemento a dos.


Cuando se usa el formato binario, la frmula de conversin para el resultado del ADC est
dada por:


= 1023
+

El ncleo del ADC10 se habilita con el bit ADC10ON. Entonces, puede ser configurado por los
dos registros de control, ADC10CTL0 y ADC10CTL1. Estos bits de control slo pueden
modificarse cuando ENC = 0, ya que este bit debe establecerse para iniciar las conversiones.

Cuando la conversin no est en forma activa, el ncleo se desactiva automticamente y


vuelve a activar automticamente cuando sea necesario.

Seleccin del reloj de conversin


El ADC10CLK se utiliza tanto para el reloj de conversin, como para generar el periodo de
muestreo.

Cada fuente del reloj del ADC10 que dispone se selecciona mediante los bits ADC10SSELx:

SMCLK;
MCLK;
ACLK;
Oscilador interno ADC10OSC;
Cada uno se puede dividir por 1-8 usando los bits ADC10DIVx.

El ADC10CLK debe permanecer activo hasta el final de una conversin. Si se quita el reloj
durante una conversin, la operacin no se completar, y cualquier resultado no ser vlido.
Sin embargo, el ADC10OSC es tambin activado automticamente cuando sea necesario y se
desactiva cuando no se requiera durante las conversiones.

Entradas y multiplexor del ADC10

El multiplexor de entrada analgica permite la seleccin de uno de los ocho canales externos
y de las cuatro seales analgicas internas, para que sea el canal para la conversin.

Seleccin del puerto analgico

Las entradas externas Ax, y las terminales VeREF+ y VREF- estn compartidas con los pines
GPIO pines.
Para reducir las corrientes parsitas entre VCC y GND y en consecuencia un mayor consumo
de corriente, el bfer del pin del puerto de entrada / salida se puede desactivar desde el puerto
del buffer del pin configurando los bits ADC10AEx.

Generador del voltaje de referencia

9
Instrumentacin MSP430

El voltaje de referencia interno (1.5 V o 2.5 V) se puede seleccionar mediante la deshabilitacion


o habilitacin a travs del bit REFON, respectivamente. Este generador del voltaje de
referencia interno est diseado para aplicaciones de baja potencia, que consiste en una
fuente de voltaje y un buffer separado. El buffer puede ser habilitado o deshabilitado,
dependiendo del estado de la conversin, puede ser activo o inactivo, respectivamente.

El buffer interno de referencia se selecciona mediante la velocidad y la potencia. (por ejemplo:


fconversin 50 ksps y ADC10SR = 1 Ibuffer 50% de reduccin). El tiempo de establecimiento
total cuando se REFON = 1 es 30 s.

El voltaje de referencia interno tambin se puede utilizar externamente (PIN VREF+), mediante
la desactivacin del bit de REFOUT. Las referencias externas pueden suministrar VR+ y VR- o
utilizar VCC como referencia. En estos casos, la referencia interna puede estar apagado para
ahorrar energa. Para utilizar una referencia positiva externa VeREF +, los bits SREFx deben ser
activadas.

Tiempo de muestro y la conversin

Una conversin de analgico-digital es iniciada en el flanco de subida de la seal de muestreo


de entrada SHI. La fuente de SHI (Seleccin de los bits SHSx) puede ser:

Bit ADC10SC;
Salida del Timer_A de la unidad 1;
Salida del Timer_A de la unidad 0;
Salida del Timer_A de la unidad 2.

La polaridad de la seal de la fuente SHI puede invertida por el bit ISSH.

Los bits de SHTx seleccionan el perodo de muestreo, tsample, sern 4, 8, 16, o 64 ciclos de
ADC10CLK. Los temporizadores de muestreo colocan al SAMPCON en alto para seleccionar
el periodo de muestreo despus de sincronizarse con ADC10CLK. Por lo tanto, el tiempo de
muestreo total es: = +

Modos de conversin

El ADC10 tiene cuatro modos de operacin, los cuales son seleccionados por los bits
CONSEQx:

Canal simple, simple conversin: Una simple conversin para el canal seleccionado por
los bits INCHx, el resultado se almacena en los registros ADC10MEM;
Canales secuenciales: Una conversin en mltiples canales que comienzan con el canal
seleccionado por los bits INCHx y decrementa hasta el canal A0, el enlace de un nmero
especfico de registros ADC10MEM y para despus de la conversin del canal A0;
Canal simple repetidos: Un simple canal seleccionado por los bits INCHx se convierte
en varias ocasiones hasta que se detenga, almacena el resultado en el registro
ADC10MEM;
Canales secuenciales repetidos: conversiones repetidas a travs de mltiples canales,
comenzando con el canal seleccionado por los bits INCHx y decrementa hasta el canal

10
Instrumentacin MSP430

A0. Cada resultado de ADC se escribe en ADC10MEM. La secuencia termina despus


de la conversin del canal A0, y la siguiente seal de disparo vuelve a iniciar la
secuencia.

Reinicio de conversin

Las conversiones sucesivas pueden comenzar de forma automtica y muy rpidamente


cuando MSC = 1 y CONSEQx > 0. El primer flanco de subida de la seal de SHI desencadena
la primera conversin y las siguientes conversiones se disparan automticamente tan pronto
como se complete la conversin anterior, sin necesidad de flancos ascendentes adicionales
en SHI.

Detener conversiones

Para detener las conversiones depende del modo de operacin:

Modo Canal simple conversin simple: Se sondear el bit ADC10BUSY hasta que se resetee y
que resetee el bit ENC;
Modo canal simple repetido: Resetear el bit ENC;
Modo canales secuenciales o modo canales secuenciales repetidos: Reseterar el bit ENC.
Cualquier modo de conversin puede ser detenido de inmediato al resetear los bits CONSEQx
y ENC. Sin embargo, los datos de la conversin no son fiables.

Controlador de transferencia de datos (DTC)

El DTC (ADC10DTC1 0) transfiere automticamente los resultados de la conversin de


ADC10MEM a otras ubicaciones de la memoria en el chip, cada vez que el ADC10 completa
una conversin y carga el resultado a ADC10MEM. Dado que se requiere una MCLK CPU, si
la CPU est activada durante este perodo, se detendr para asegurar que la transferencia se
haya completado. Adems, hay que asegurarse de que no hay conversin activa o secuencia
est en curso (ADC10 ocupado) durante el inicio de transferencia de DTC.

El DTC se puede configurar para:

Modo de Transferencia de Un-Bloque (ADC10TB = 0): El valor de n en ADC10DTC1


define el nmero total de las transferencias de un bloque. El bloque inicia en la direccin
por el registro ADC10SA registro de 16 bits y termina en ADC10SA+2n-2.
Modo de Transferencia de Dos-Bloques (ADC10TB = 1): El valor de n en ADC10DTC1
define el nmero de transferencias de un bloque. El rango de direccin del primer bloque
se define por el registro ADC10SA de 6 bits y termina en ADC10SA+2n-2. El rango de
direcciones para el segundo bloque se define como SA+2n a SA+4n-2.

Una transferencia continua (ADC10CT = 1) indica que el DTC no se detendr despus de un


bloque o (modo de un solo bloque) o dos bloques (modo de dos bloques) se hayan transferido.
Las transferencias continan en el bloque uno.

11
Instrumentacin MSP430

Sensor de temperatura Integrado

El canal de entrada analgica INCHx = 1010 usa el sensor de temperatura que se encuentra
integrado en el chip. Su funcin de transferencia que relaciona el voltaje de entrada, V Temperature
[V] a la temperatura, T [ C], est dada por:

= 0.00355 + 0.986

Cuando se utiliza el sensor de temperatura, se debe de tener en cuenta lo siguiente:

El perodo de muestro debe ser mayor que 30 s;


Como el error del offset es grande, las aplicaciones deben incluir la calibracin;
Seleccionando INCHx = 1010, cambia automticamente en el chip del voltaje de
referencia como una fuente de voltaje.
La referencia seleccionada para la conversin de la temperatura empleada con el
sensor integrado son el mismo que con otros canales.

Interrupciones en el ADC10

Una interrupcin y un vector de interrupcin estn asociado con el ADC10.

Cuando el DTC no se utiliza (ADC10DTC1 = 0): ADC10IFG es colocado en 1, cuando


los resultados de la conversin se en ADC10MEM.
Cuando el DTC se utiliza (ADC10DTC1> 0): ADC10IFG es colocado en 1, cuando se
complete un bloque de transferencia y el contador de trasferencia interna sea n = 0.

Si tanto el ADC10IE y los bits GIE son colocador en 1, entonces la bandera ADC10IFG genera
una peticin de interrupcin. La bandera ADC10IFG es automticamente reseteada cuando la
solicitud de interrupcin es atendida o tambin puede ser reseteada por software.

Configuracin del MSP430 para el empleo del Timers


El correcto funcionamiento del Sistema de temporizacin es esencial para el buen
funcionamiento de una aplicacin en tiempo real. La definicin de temporizacin puede
establecerse como el procesamiento de los datos de informacin durante la ejecucin de un
programa de aplicacin. Las implementaciones del reloj varan entre los dispositivos de la
familia MSP430. Cada dispositivo ofrece diferentes fuentes de reloj, controles y usos. Este
documento trata de los controles de reloj incluidos en las plataformas utilizadas.

La familia MSP430 4xx tiene dos contadores de propsito general de 16 bits o de 8 bits y
temporizadores de eventos, llamados Timer_A, Timer_B, y un temporizador bsico. El mdulo
del temporizador Bsico slo se implementa en los Dispositivos 4xx. La familia de dispositivos
2xx tambin tiene Timer_A y Timer_B, pero las seales de reloj son proporcionados por el
mdulo del reloj bsico +.

Los temporizadores pueden recibir un reloj interno o externo. El Timer_A y Timer_B tambin
incluyen mltiples capturas independientes y bloques de comparacin, con capacidades de
12
Instrumentacin MSP430

interrupcin.

Los bloque de captura y comparar son adecuados para aplicaciones tales como
temporizadores de eventos y Modulacin por ancho de pulso (PWM), respectivamente.

Este apartado se centra principalmente en la configuracin y el funcionamiento de los


temporizadores y sus diferentes usos, adems se describe el mdulo de reloj bsico+ (BCS+),
sus tres registros direccionables, los cuales son totalmente controlable por software. Esto
permite que las fuentes de reloj para sean configuradas por uno o dos osciladores
(dependiendo del dispositivo) o por cristales o resonadores externos, tan bien como por el
oscilador interno controlado digitalmente (DCO). El DCO permite una frecuencia de trabajo
de hasta 16 MHz, menor consumo de energa y menor tiempo de inicio.

El sistema del Temporizador es fundamental para casi cualquier aplicacin embebida. Los
temporizadores se utilizan en aplicaciones para:

Generar eventos de tiempo de periodo fijo;


Permitir una activacin peridica del modo de suspensin;
Contar flancos de una seal;
Reemplazar bucles de retardo con llamadas al temporizador para que el CPU duerma,
consumiendo mucha menos energa.

Las seales de reloj de los dispositivos de la familia MSP430x4xx son controlados por dos
conjuntos de registros. El primer conjunto de registros configura las seales de baja
frecuencia para ser usada por los mdulos perifricos. Estos registros, a llamados Registros
de Control del Timer bsico (BTCTL), Contador 1 del Timer Bsico (BTCNT1) y el control del
Contador 1 del Timer Bsico (BTCNT2), el cual controla el mdulo del temporizador bsico 1.

El segundo conjunto de registros est dedicado a la configuracin del sistema de relojes de


propsito general. Forman parte del Control del Sistema de Reloj (SCFQCTL), Reloj del
Sistema Integrador de frecuencia 0 (SCFI0), Reloj del Sistema Integrador de frecuencia 1
(SCFI1), y los dos registros de control del bucle bloqueado en frecuencia, FLL + CTL0 y FLL
+ CTL1.

Timer Bsico 1

El mdulo Timer bsico 1 est formado por dos temporizadores independientes de 8 bits:
Contador Temporizador Bsico 1 (BTCNT1) y Contador Temporizador Bsico 1 (BTCNT2), que
se pueden usar en cascada para formar un temporizador de 16 bits (seleccionable por software
por el registro de configuracin BTCTL).

Las principales caractersticas de este mdulo son:

Reloj para el mdulo LCD;


Adecuado para una implementacin RTC;

13
Instrumentacin MSP430

Temporizador bsico de intervalo;


Capacidad simple de interrupcin.

Estos temporizadores / contadores tienen diferentes aplicaciones:

BTCNT1: Se utiliza para generar la frecuencia de cuadro para el controlador LCD:


o Registro de 8 bits de Lectura / escritura;
o Fuente de reloj: ACLK;
o Frecuencia de fotogramas seleccionable por software (bits BTFRFQx en la BTCTL
registro), basado en la divisin ACLK (x);
o flcd = ACLK / x.
BTCNT2: Se utiliza como un divisor de frecuencia programable con capacidad de
interrupcin, para proporcionar alarmas peridicas del CPU peridicas y/o un sistema
de reloj de tiempo real.
o Registro de 8 bits de Lectura / escritura;
o Tres posibles fuentes de reloj: ACLK o SMCLK o ACLK / 256 cuando en cascada
con BTCNT1 (seleccionados por los bits BTSSEL y BTDIV en el registro BTCTL);
o Fuentes interrupcin del Timer Bsica 1 BTIFG, con un intervalo seleccionado por
los bits BTIPx en el registro BTCTL;

Figura 1. Diagrama a bloques del Timer Bsico 1.

Registros
BTCTL, Registro de Control Timer Bsico 1 Control

7 6 5 4 3 2 1 0

BTSSEL BTHOLD BTDIV BTFRFQ1 BTFRFQ0 BTIP2 BTIP1 BTIP0

Bit Descripcin

7 BTSSEL BTCNT2 seleccin del reloj (junto con el bit de BTDIV)

14
Instrumentacin MSP430

6 BTHOLD Basic Timer 1


hold: BTCNT1 y BTCNT2 activo
BTHOLD =
0
BTHOLD =1 BTCNT1 retenido, si BTDIV = 1
BTHOLD = 1
BTCNT1 y BTCNT2 retenidos
5 BTDIV Basic Timer 1 Divisor de reloj (junto con el bit BTSSEL selecciona la
seal de reloj BTCNT2):
BTSSEL BTDIV = 0 0 ACLK BTSSEL
BTDIV = 0 1 ACLK/256
BTSSEL BTDIV = 1 0 SMCLK
BTSSEL BTDIV = 1 1 ACLK/256
4-3 BTFRFQx Frecuencia del Cuadro del LCD:
BTFRFQ1 BTFRFQ0 = 0 0 fACLK/32
BTFRFQ1 BTFRFQ0 = 0 1 fACLK/64
BTFRFQ1 BTFRFQ0 = 1 0 fACLK/128
BTFRFQ1 BTFRFQ0 = 1 1 fACLK/256
2-0 BTIPX Intervalo de interrupcin del Timer Bsico 1:
BTIP2 BTIP1 BTIP0 = 0 0 0 fCLK2 / 2
BTIP2 BTIP1 BTIP0 = 0 0 1 fCLK2 / 4
BTIP2 BTIP1 BTIP0 = 0 1 0 fCLK2 / 8
BTIP2 BTIP1 BTIP0 = 0 1 1 fCLK2 / 16
BTIP2 BTIP1 BTIP0 = 1 0 0 fCLK2 / 32
BTIP2 BTIP1 BTIP0 = 1 0 1 fCLK2 / 64
BTIP2 BTIP1 BTIP0 = 1 1 0 fCLK2 / 128
BTIP2 BTIP1 BTIP0 = 1 1 1 fCLK2 / 256

IE2, Registro 2 de Habilitacion de Interrupcin

7 0

BTIE

Bit Descripcin
7 BTIE Interrupcion de Habilitacin del Timer Basico 1 cuando BTIE = 1

IFG2, Registro 2 de bandera de Interrupcin

7 0

BTIFG

Bit Descripcin
7 BTIFG Bandera de la Interrupcin del Timer Bsico 1 BTIFG = 1 cuando
ocurre o est pendiente una interrupcin

15
Instrumentacin MSP430

Timer_A y Timer_B

Los Timer_A y Timer_B son dos contadores de propsito general de 16 bits y temporizadores de
eventos. Existen ligeras diferencias entre los dos temporizadores.

Ambos temporizadores cuentan:

Temporizador/Contador asncrono de 16-bit con cuatro modos de funcionamiento:


o Longitud del Timer_A: 16 bits;
o Longitud Timer_B: programable para ser 8, 10, 12, o 16 bits.
o El registro del temporizador / contador, TAR (Timer_A) o TBR (Timer_B)-de ahora
en adelante descrito como TxR- incrementos o decrementos (Dependiendo del
modo de operacin) con cada flanco ascendente de la seal de reloj;
o El temporizador puede generar una interrupcin cuando se desborda;
o Amplia gama de intervalos de interrupcin: 1 / MCLK a 32 segundos.

Fuente de reloj seleccionable y configurable:


o ACLK, SMCLK, o externamente a travs TxCLK o INCLK (seleccionado con los
bits TASSELx);
o La fuente de reloj seleccionada puede, adems, ser dividido por 2, 4, u 8
(configuracin de bits de IDx).

Registro de captura / comparar configurable:


o Timer_A tiene tres o cinco registros de captura/comparar;
o Timer_B tiene tres o siete registros de captura/comparar;
o Timer_B Los registros de captura/comparar registros se pueden agrupados.

Salidas configurables y varias conexiones internas a otros mdulos, lo que permite una
respuesta ms rpida porque no hay ciclos donde se pierda tiempo mientras se carga
el ISR/ejecuta y evita despertar al CPU, que a su vez ahorra energa:
o Salidas con capacidad de modulacin del ancho de pulso (PWM);
o Comparador_A;
o Acceso directo a memoria;
o Convertidor digital a analgico (DAC12);

Entradas asncronas y salidas lacheadas:


o Registros de Timer A de captura/comparacin no se almacenan, se actualice
inmediatamente cuando se escriben en;
o Registros de Timer B de captura/comparacin son de doble bfer con carga
sincronizada.

Registro de vector de interrupcin para la decodificacin rpida de todas las


interrupciones del Timer_A y Timer_B.
o TACCR0 (o TBCCR0) Vector de interrupciones para TACCR0 (o TBCCCR0)
CCIFG;
o TAIV (o TBIV) Vector de interrupciones para el resto de las banderas CCIFG y
TAIFG (o TBIFG).

16
Instrumentacin MSP430

El temporizador tiene cuatro modos de funcionamiento, como se describe en la Tabla 1, seleccionados


con los bits MCX en los registros de control del Timer_A o Timer_B.

Tabla 1. Modos de operacin del Timer_A y Timer_B.


MCx Mode Description
00 Parado Se detiene el temporizador
01 Ascendente Modo cuenta ascendente repetidamente (Desde 0x0000 hasta el
valor del registro TACCR0 or TBCCR0)
10 continuo Modo cuenta continuo repetidamente (Desde 0x0000 hasta 0xFFFF)

11 Ascendente/ Modo cuenta ascendente / descendente repetidamente (Desde


Descendente 0x0000 a el valor del registro TACCR0 o TBCCR0 y regresa hasta
cero)

Caractersticas de los modos


Modo Ascendente

Las principales caractersticas del modo ascendente son:

TAR cuenta de modo ascendente con cada pulso de reloj hasta que alcanza el valor
del registro TACCR0 (o TBCCR0);
La bandera de interrupcin del TACCR0 (o TBCCR0), CCIFG, se coloca en 1 cuando
el temporizador llega al valor de TACCR0 (o TBCCR0);
Cuando se alcanza este valor, EQU0 = 1 (se reinicia TAR para contar desde cero);
La bandera de interrupcin TAIFG (o TBIFG) es puesta en 1 cuando el valor del
temporizador del contador de TACCR0 (o TBCCR0) es cero.
Perodo de interrupcin: tINT = 1/[fCLK/Prescaler/(TxCCR0+1)]
o tINT: TxIFG period de interrupcin [sec];
o fCLK: frecuencia de la Fuente de reloj [Hz];
o Prescaler: Divisor (IDx bits).

Modo contino

Las principales caractersticas del modo continuo son:

TxR cuenta con cada pulso de reloj hasta 0xFFFF (65536 series);
Cuando se alcanza este valor, el siguiente impulso de reloj se reiniciar el TxR a contar
desde cero;
La bandera de interrupcin TxIFG (o TxIFG) se coloca a 1 cuando el temporizador
cuenta de 0xFFFF a cero.
Perodo de interrupcin: tINT = 1/[fCLK/Prescaler/65536];

Modo ascendente/descendiente

Las principales caractersticas del modo ascendente/descendente son:

17
Instrumentacin MSP430

TxR cuenta con cada pulso de reloj hasta que alcanza el valor en el registro TxCCR0;
La bandera de interrupcin TxCCR0, CCIFG, se establece cuando la cuenta del
temporizador va de TxCCR0 - 1 a TxCCR0;
Cuando se alcanza este valor, la cuenta se invierte, comenzando en el siguiente pulso
de reloj para disminuir hasta cero;
La bandera de interrupcin TxIFG se establece cuando el temporizador termina la
cuenta descendente cuando pasa de 0x0001 a 0x0000;
perodo de interrupcin: tINT = 1/[fCLK/Prescaler/(TxCCR02];

Registros del Timer_A registers

TACTL, Timer_A Control Register

15 10 9 8

Unused TASSEL1 TASSEL0

7 6 5 4 3 2 1 0
ID1 ID0 MC1 MC0 Unused TACLR TAIE TAIFG

Bit Descripcin
9-8 TASSELx Timer_A fuente de reloj:
TASSEL1 TASSEL0 = 00 TACLK
TASSEL1 TASSEL0 = 01 ACLK
TASSEL1 TASSEL0 = 10 SMCLK
TASSEL1 TASSEL0 = 11 INCLK
7-6 IDx Divisor de la seal de reloj:
ID1 ID0 = 00 /1
ID1 ID0 = 01 /2
ID1 ID0 = 10 /4
ID1 ID0 = 11 /8
5-4 MCx Modo de operacin del reloj del Timer:
MC1 MC0 = 00 Mode parada
MC1 MC0 = 01 Modo ascendente
MC1 MC0 = 10 Modo Continuo
MC1 MC0 = 11 Modo Ascendente/Descendente
2 TACLR Limpia el Timer_A cuando TACLR = 1
1 TAIE Habilita la interrupcin del Timer_A cuando TAIE = 1
0 TAIFG Bandera de interrupcin del Timer_A cuando TAIFG = 1

Bloques de Captura/Comparacin

El TIMER_A y el TIMER_B contienen bloques de captura y de comparacin independientes, TACCRX


(o TBCCRX) que pueden utilizarse para capturar el contenido del registro del contador del tiempo, en
el momento de un evento, o para generar un evento cuando el contenido del registro contador de
tiempo corresponden a contenido de registro de captura/comparar, por ejemplo, para generar
intervalos de tiempo.

El modo se selecciona mediante el bit PACt para cada registro de control del Captura/Comparar,
TACCTLx (o TBCCTLx).

18
Instrumentacin MSP430

Modo Captura

El modo de captura se utiliza para medir el perodo de eventos en el tiempo, con una mnima
intervencin de la CPU.

La configuracin de modo de captura se logra mediante la realizacin de los siguientes pasos:

Escribir 1 en el bit de la PAC para seleccionar el modo de captura;


Escribir 1 en el bit SCS para sincronizar la captura con el siguiente reloj temporizador
(recomendado para evitar las condiciones de carrera);
La seal de entrada es muestreada por el CCIxA (o CCIxB) de entrada, seleccionado
por los bits CCISx en el Registro de Control de Captura / Comparar, TACCTLx (o
TBCCTLx);
El flanco de captura de la seal de entrada (subida, bajada, o ambos) es seleccionado
por los bits CMX;
Cuando se detecta el borde correspondiente de la lnea de entrada seleccionado, el
valor en el registro del temporizador est lacheado a los registros TACCRx (o TBCCRx),
proporcionando una marca de tiempo para el evento;
La bandera de interrupcin se coloca en 1 en el CCIFG;
El bits COV (= 1) controla un evento de desbordamiento cuando una segunda captura
se lleva a cabo antes de que el valor de la primera captura que se lee.

Modo Comparar

El modo de comparacin se utiliza para la generacin de impulsos o interrupciones a intervalos


especficos de tiempo. Una de sus aplicaciones comunes es la de generar una seal de salida de
modulacin del ancho de pulso (PWM).

La operacin en modo de comparacin est configurada como:

Se coloca en el bit CAP un cero para seleccionar el modo de comparacin;


TxR cuenta con el valor programado en el registro TxCCRx;
Cuando el valor del temporizador es igual al valor en el registro TxCCRx, se genera
una interrupcin:
o La bandera de interrupcin CCIFG est establecida;
o seal interna EQUx = 1 (x es el nmero del canal CCR).
EQUx afecta a las seales de salida del comparador OUTx de acuerdo con el modo
de salida (definido por los bits OUTMODx en el registro TxCCTLx- Vase el cuadro
2).
La seal de entrada CCI est lacheada al SCCI.

La unidad de salida se utiliza para generar seales de salida (tales como seales PWM) basndose en
las seales EQU0 y EQUx . Hay ocho modos de funcionamiento diferentes numeradas de 0 a 7. La
seal OUTx cambia con el flanco de subida del reloj del temporizador para todos los modos , excepto
el modo 0 .

19
Instrumentacin MSP430

Los modos de operacin de salida se describen en la Tabla 2 y los ejemplos de las seales de salida
para diferentes modos de temporizador se presentan en la Figura 2.

Modos de operacin de salida son:

Modos de 2, 3, 6 y 7: la generacin de seales de salida PWM:


o Modo 3: seal PWM activa en estado bajo;
o Modo 7: seal PWM activa en estado alto;
o Modos 2 y 6: seales PWM complementarias separadas por una banda muerta
cuando se restablecen las seales (ejemplo de aplicacin: puentes H de la unidad
de un motor bi-direccional).
Modos 1 y 5: solo generacin de eventos;
Modo 4: seal con la mitad de la frecuencia de la seal del temporizador.

Modo Ascendente Modo Continuo Modo


Ascendente/Descendente

1: Set

2: Toggle/Reset

3: Set/Reset

4: Toggle

5: Reset

6: Toggle/Set

Figura 2. Ejemplos de salida de los diferentes modos del temporizador.

Registro de los bloques de Captura/Comparacin

La descripcin de los siguientes registros se refiere a los registros del Timer_A. Los registros del
Timer_B tienen las mismas caractersticas, pero en el Registro de Control Captura / Comparacin
los bits tiene diferentes nombres y proporcionan caractersticas adicionales.

TACCTLx, Registro de Control de Captura/Comparacin del Timer_A

20
Instrumentacin MSP430
15 14 13 12 11 10 9 8
CM1 CM0 CCIS1 CCIS0 SCS SCCI Unused CAP

7 6 5 4 3 2 1 0
OUTMOD2 OUTMOD1 OUTMOD0 CCIE CCI OUT COV CCIFG

Bit Descripcion
15-14 CMx Modo Captura:
CM1 CM0 = 00 No captura
CM1 CM0 = 01 Captura en el flanco de subida
CM1 CM0 = 10 Captura en el flanco de bajada
CM1 CM0 = 11 Captura en ambos flancos
13-12 CCISx Seleccin de la entrada de Capturar/comparar:
xCCIS1 CCIS0 = 00 CCIxA
CCIS1 CCIS0 = 01 CCIxB
CCIS1 CCIS0 = 10 GND
CCIS1 CCIS0 = 11 Vcc
11 SCS Captura sincronizada de la seal de entrada con el reloj del
temporizador:
SCS = 0 Captura Asncrona
SCS = 1 Captura sncrona
10 SCCI Entrada sincronizada captura/compara
8 CAP Modo:
Modo Captura CAP = 1
Modo Compara CAP = 0
7-5 OUTMODx Modo Salida:
OUTMOD2 OUTMOD1 OUTMOD0 = 000 Bit OUT
OUTMOD2 OUTMOD1 OUTMOD0 = 001 Set
OUTMOD2 OUTMOD1 OUTMOD0 = 010 Toggle/Reset
OUTMOD2 OUTMOD1 OUTMOD0 = 011 Set / Reset
OUTMOD2 OUTMOD1 OUTMOD0 = 100 Toggle
Reset
OUTMOD2 OUTMOD1 OUTMOD0 = 101
Toggle / Set
OUTMOD2 OUTMOD1 OUTMOD0 = 110
Reset / Set
4 CCIE OUTMOD2
Habilitacin OUTMOD1 OUTMOD0
de la interrupcin = 111
de Captura/compara cuando CCIE = 1.
3 CCI Entrada Captura/compara
2 OUT Estado de salida
1 COV Sobreflujo de captura cuando COV = 1
0 CCIFG Bandera de la interrupcin de Captura/compara CCIFG = 1 cuando la
interrupcin est pendiente.

21

Vous aimerez peut-être aussi