Académique Documents
Professionnel Documents
Culture Documents
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.
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.
1
Instrumentacin MSP430
2
Instrumentacin MSP430
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.
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.
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.
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
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.
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.
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:
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
6
Instrumentacin MSP430
Cada bit del registro PxIE permite la solicitud de interrupcin asociada con la bandera de la
interrupcin correspondiente PxIFG;
Este registro de lectura y escritura selecciona la transicin en que se produzca una interrupcin
para el pin correspondiente de E/S
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.
7
Instrumentacin MSP430
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.
8
Instrumentacin MSP430
= 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.
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.
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.
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.
9
Instrumentacin MSP430
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.
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.
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
Reinicio de conversin
Detener conversiones
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.
11
Instrumentacin MSP430
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
Interrupciones en el ADC10
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.
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.
El sistema del Temporizador es fundamental para casi cualquier aplicacin embebida. Los
temporizadores se utilizan en aplicaciones para:
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.
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).
13
Instrumentacin MSP430
Registros
BTCTL, Registro de Control Timer Bsico 1 Control
7 6 5 4 3 2 1 0
Bit Descripcin
14
Instrumentacin MSP430
7 0
BTIE
Bit Descripcin
7 BTIE Interrupcion de Habilitacin del Timer Basico 1 cuando BTIE = 1
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.
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);
16
Instrumentacin MSP430
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
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
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];
15 10 9 8
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 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.
Modo Comparar
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.
1: Set
2: Toggle/Reset
3: Set/Reset
4: Toggle
5: Reset
6: Toggle/Set
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.
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