Instrumentación MSP430

MSP430
Introducción
Los tipos de dispositivos, tales como un microprocesador, microcontrolador, procesador,
procesador digital de señales (DSP), entre otros, de una cierta manera, están relacionados con
el mismo dispositivo - el ASIC (Aplicación Specific Integrated Circuit). Cada dispositivo de
procesamiento ejecuta instrucciones, siguiendo un programa determinado aplicado a las
entradas y compartiendo características arquitectónicas desarrolladas a partir de los primeros
microprocesadores creados en 1971. En las tres décadas después del desarrollo del primer
microprocesador, grandes desarrollos e innovaciones se han hecho en este campo de la
ingeniería. Cualquiera de los términos utilizados en el principio de esta sección son correctos
para definir un microprocesador, aunque cada uno tiene diferentes características y
aplicaciones.

La definición de un microcontrolador es algo difícil 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 más potente que el equipo utilizado en
las primeras misiones espaciales. Sin embargo, algunas generalidades pueden ser hechas
como para que caracteriza a un microcontrolador. Típicamente, los microcontroladores son
seleccionados para sistemas de proyectos embebidos, es decir, sistemas de control con un
número 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 días, era ideal para
aplicaciones tales como calculadoras y hornos. Este término se cambió a Unidad de
microcontrolador (MCU), que era más descriptivo de una aplicación típica.

Hoy en día, MCUs están en el corazón de muchos sistemas físicos, con mayores niveles de
integración y la capacidad de procesamiento con bajos niveles de consumo de energía.

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 comparación 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 energía: órdenes de magnitud inferior a un DSP y a un MPU;
➢ Bits: 4 bits (dispositivos más 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

Instrumentación MSP430

Fig. 1 Microcontroladores de Texas Instruments MSP430F169.

Principales características de un microcontrolador MSP430

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

➢ Bajo consumo de energía:
• 0.1 µA para la retención de datos en la memoria RAM;
• 0.8 µA para el funcionamiento del reloj en modo operación 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 analógico en el Chip:
• Convertidor Analógico Digital de 10/12/16-bit (ADC);
• Convertidor Digital Analógico de 12 bits (DAC);
• Temporizadores con Compuerta de comparadores;
• Amplificadores Operacionales (OP Amps);
• Supervisor del Voltaje de Alimentación (SVS).
➢ CPU con arquitectura RISC de 16 bits:
• Procesamiento de instrucciones en cualquiera de los bits, bytes o palabras;
• Nucleo compacto diseñado para reducir el consumo de energía y su costo;
• Compilador eficiente;
• 27 instrucciones básicas;
• 7 modos de direccionamiento;
• Capacidad extendida dl vector de interrupciones.
➢ Flexibilidad:
• Memoria hasta de 256k en la Flash Programable(ISP);
• Opción hasta 100 pines;
• USART, I2C, Temporizadores;
• Controlador LCD;
• Emulador incorporado.

2

y un sistema de reloj flexible. lo que permite un código de programación más compacto y corto para una rápida ejecución. 2. 3 . los 7 modos de direccionamiento y el conjunto de instrucciones reducido. Estas familias de microcontroladores comparten un núcleo del CPU de 16 bits (Central Processing Unit). Arquitectura del MSP430. lo que aumenta la eficiencia del compilador para lenguajes de alto nivel. al permitir el almacenamiento de valores y variables utilizadas con frecuencia en vez de utilizar la memoria RAM. Fig. La CPU tiene una ALU de 16 bits. tipo RISC. interconectados por un conjunto de instrucciones de 3 etapas para codificar la instrucción.Instrumentación MSP430 El rendimiento del microcontrolador está directamente relacionada con el bus de datos de 16 bits. periféricos inteligentes. cuatro registros dedicados y doce registros de trabajo. Emplea una arquitectura Von Neumann que interconecta comúnmente los Buses de direcciones de memoria (MAB) y el bus de datos de memoria (MDB). que hace que el MSP430 sea un microcontrolador de alto rendimiento adecuado para aplicaciones de baja potencia. 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). como C. con pocas excepciones. La adición de doce de registros de trabajo de propósito general ahorra ciclos de CPU. El conjunto de instrucciones ortogonal permite el uso de cualquier modo de direccionamiento para cualquier instrucción que hace que la programación sea clara y coherente.

del cero.Instrumentación MSP430 Unidad Aritmética Lógica (ALU) El MSP430 CPU incluye una unidad lógica aritmética (ALU) que se encarga de las operaciones de suma. comparación y lógicas (AND. el sistema almacena el valor real de PC. R0: Contador de Programa (PC) El contador de programa de 16 bits (PC/R0) apunta a la siguiente instrucción para ser leída por la memoria y ejecutada por la CPU. resta. 4 . en el registro de estado. XOR). Segundo: la pila puede ser utilizado por el usuario o por el compilador para los parámetros de subrutinas (PUSH. direcciona vía el cálculo del offset del puntero de la pila (SP) en el llamado a una subrutina). POP en llamadas a la rutina. a pesar de que las direcciones de memoria individuales contienen valores de 8 bits. Los indicadores del sistema se cambian automáticamente por la CPU en función del resultado de una operación en un registro. Registros de la CPU del MSP430 La CPU incorpora dieciséis registros de 16 bits: ➢ Cuatro registros tiene funciones dedicadas (R0. ➢ Hay 12 registros de trabajo para uso general (R4 a R15). R2: Registro de Estados (SR) El Registro de estado (SR/R2) guarda los bits de estado y de control. R1: Puntero de Pila (SP) El puntero de pila (SP/R1) se encuentra en R1. Es importante recordar que el PC está alineado en direcciones pares. El contador de programa es implementado por el numero de bytes usados por la instrucción (2. del negativo. Primero: la pila puede ser utilizado por el usuario para almacenar datos para su uso posterior (instrucciones: almacenar a través de PUSH. porque las instrucciones son de 16 bits. Las operaciones de la ALU pueden afectar las banderas del desbordamiento. 4. Cuarto: utilizado por interrupción. y luego el contenido del registro de estado actual (en la parte superior de la pila) al regreso de interrupción (RETI). R2 y R3). Los bits reservados de la SR se utilizan para apoyar el generador de constantes. el sistema recibe el mismo estado que tenía justo antes de que ocurriera la interrupción (siempre y cuando no ha cambiado el valor de TOS) y el mismo valor del contador del programa de la pila. R1. recuperar mediante POP). o 6 bytes). OR. Tercero: utilizado por llamadas a subprogramas para almacenar el valor del contador de programa para el retorno al finalizar la subrutina (RET).

se utiliza el generador constante. Registros de salida (PxOUT) ➢ Los registros de salida son de lectura y escritura. Configuración de los Puertos Generales I/O Registros Independiente del tipo de puerto de E/S. seis constantes comúnmente pueden ser generadas sin una palabra de código o sin un código de acceso a la memoria para recuperarlos. Registros de Entrada (PxIN) ➢ Cada bit de estos registros de sólo lectura refleja la señal de entrada en el pin de E/S correspondiente (pin configurado como propósito general E/S). o Bit = 0: el pin del puerto se configura como una entrada. Cada bit de estos registros refleja el valor escrito en el pin de salida correspondiente. Estos registros de propósito general se utilizan para almacenar valores de datos. o los valores del índice y se puede acceder con bytes o palabras de instrucciones. ya que se da lugar a un aumento del consumo de corriente. indicadores de dirección. ➢ Configuración PxOUT: 5 . o Bit = 0: La entrada es baja. ➢ Otras funciones de módulo deben ajustarse según se requiera por los otros módulos.Instrumentación MSP430 R2/R3: Registro del Generador de Constantes (CG1/CG2) Dependiendo del valor de la fuente de registro del modo de direccionamiento (As). que permite la implementación de instrucciones emuladas. sin tener en cuenta la función seleccionada en el Pin (de uso general E/S o como una función especial de E/S). ➢ Consejo: Evite escribir a estos registros de sólo lectura. la configuración de la operación de puerto se define mediante el software usando los siguientes registros: Registros de Dirección (PxDIR) ➢ Registros de 8 bits que Lee / Escribe ➢ Selecciona la dirección del correspondiente pin de E/S. ➢ Configuración del registro PxIN: o Bit = 1: La entrada es alta. ➢ Configuración del registro PxDIR: o Bit = 1: El pin del puerto se configura como una salida. por ejemplo.R15: Registros de Propósito General. Esta es una característica muy poderosa. en lugar de implementar una instrucción de núcleo para un incremento. R4 .

➢ La familia 2xx ofrece la característica adicional de que cada E/S tiene una resistencia pullup / pulldown que se puede programar individualmente. Función del Pin PxSEL PxSEL2 Pin 0 0 Selecciona la función de E/S de propósito general 0 1 Selecciona la función del módulo periférico primaria 1 0 Reservado (Vea la hoja de datos específica del dispositivo) 1 1 Selecciona la función del módulo periférico secundario ➢ Nota: Cuando los puertos P1 y P2 están configurados para la función del módulo periférico (PxSEL = 1 y/0 PxSEL2). o Bit = 1: la función del módulo periférico es seleccionada para este pin. ➢ Configuración del registro PxSEL: o Bit = 0: la función de E/S es seleccionada para este pin. o Bit = 0: El pin esta puesto en bajo. Registro de selección de funciones: (PxSEL) y (PxSEL2) ➢ Algunos pines del puerto son multiplexados con otras funciones del módulo periférico (ver la ficha técnica específica del dispositivo).2xx familia y algunos dispositivos de la familia 47x (x)). 6 . La combinación PxSEL y PxSEL2 proporciona la siguiente configuración de los dispositivos 2xx: o Bit = 0: la función de E/S es seleccionada para este pin. o Bit = 1: la función del módulo periférico es seleccionada para este pin. ➢ Los dispositivos de la familia 2xx proporcionan el bit PxSEL2 para configurar las características adicionales del dispositivo. se utilizan para seleccionar la función del pin: Puerto de propósito general E/S o función del módulo periférico. las interrupciones están deshabilitadas. Registro de Habilitación de la Resistencia Pull-up/Pull-down (PxREN) ➢ Se aplica sólo a la familia 2xx. el correspondiente bit en el registro PxOUT selecciona el pull-up o pull-down: o Bit = 1: El pin esta puesto en alto. ➢ Configuración del registro PxREN: o Bit = 1: Resistencia Pullup/pulldown Habilitado. ➢ Cada bit de este registro activa o desactiva la resistencia pullup/pulldown del correspondiente pin E/S. Si la resistencia pullup / pulldown del pin es habilitada. ➢ Los bits: (PxSEL) y (PxSEL2 . o Bit = 0: La salida es baja.Instrumentación MSP430 o Bit = 1: La salida es alta. o Bit = 0: Resistencia Pullup/pulldown deshabilitado.

Escribir en PxOUT y/o PxDIR puede resultar en el establecimiento de la bandera en PxIFG. PxIE. ➢ Bit = 0: la bandera de interrupción se establece en una transición de bajo a alto. Configuración del PxIE: ➢ Bit = 1: La interrupción es habilitada. PxSEL1. PxREN. Registro de Bandera de Interrupción (PxIFG) En este registro de lectura y escritura. pero con estos tres registros adicionales: Habilitar Interrupción (PxIE) Registro de Lectura y escritura para habilitar la interrupción mediante pines individuales. y PxIES. ➢ Bit = 1: Hay una interrupción pendiente. Registro de Selección de Transición de la Interrupcion (PxIES) Este registro de lectura y escritura selecciona la transición en que se produzca una interrupción para el pin correspondiente de E/S Configuración del PxIES: ➢ Bit = 1: la bandera de interrupción se establece en una transición de alto a bajo. 7 .Instrumentación MSP430 Configuración 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 petición de Interrupción y es configurable usando los registros PxIFG. De igual manera los puertos hacen uso de los registros para su configuración que como puertos no interrumpibles que son PxDIR. los bits se coloca automáticamente cuando la transición de la señal programada (Flanco) se produce en el correspondiente Pin de E/S. Configuración del PxIFG: ➢ Bit = 0: No hay una interrupción pendiente. Cada Bit de la bandera PxIFG se debe resetear mediante software. PxSEL2 y PxOUT. ➢ Bit = 0: La interrupción es deshabilitada. Cada bit del registro PxIE permite la solicitud de interrupción asociada con la bandera de la interrupción correspondiente PxIFG. PxIN. lo que permite generar interrupciones por software. Cada Bit de la bandera PxIFG se puede colocar por medio de software.

5LSB. dichos voltajes son programables y se pueden seleccionar. cuando la señal de entrada ≤ VR.+ 0. con períodos de muestreo programables. El módulo implementa un: ➢ El núcleo SAR es de 10 bits ➢ Control de selección de muestreo ➢ Generador de Referencia.5 V o 2. ➢ El Controlador de transferencia de datos (DTC) manipula automática de los resultados de la conversión (conversión y almacenamiento de muestras del ADC. ➢ Selección de la fuente del reloj de conversión. Núcleo del ADC de 10 bits El núcleo del ADC convierte una entrada analógica a su representación digital de 10 bits y almacena el resultado en el registro ADC10MEM. ➢ El núcleo del ADC y el voltaje de referencia se pueden apagar por separado. El módulo del ADC10 se configura mediante el software por el usuario.Instrumentación MSP430 Configuración del MSP430 para el empleo del convertidor analógico digital El módulo ADC10 incluido en el MSP430 permite un soporte rápido. ➢ Selección mediante software del voltaje de referencia del Chip (1. El rango de conversión analógica se limita a sus límites superior e inferior (V R+ y VR-). ➢ Muestreo y retención.5 V) ➢ Selección mediante software de la referencia interna o externa.0. sin intervención de la CPU). cuando la señal de entrada ≥ VR+ . La salida digital (NADC) es: ➢ Escala completa: NADC = 03FFh. Las características del ADC10 incluyen: ➢ Mayor que 200 ksps de la máxima tasa de conversión.5LSB. ➢ Cero: NADC = 0000h. secuencial y secuencial y repetitivo. el convertidor analógico- Digital de 10 bits. ➢ Canales de conversión para sensor de temperatura interno. VCC. ➢ Iniciación de conversión por software o mediante el Timer_A. y para las referencias externas. ➢ Ocho canales de entrada externos. ➢ Controlador de transferencia de datos para el almacenamiento automático de los resultados convertidos. ➢ Convertidor monotónica de 10 bits sin códigos. 8 . canal simple repetitivo. ➢ Diversos modos de conversión: canal simple.

puede ser configurado por los dos registros de control. la fórmula de conversión para el resultado del ADC está dada por: ??? − ??− ???? = 1023 ??+ − ??− El núcleo del ADC10 se habilita con el bit ADC10ON.están compartidas con los pines GPIO pines. Estos bits de control sólo pueden modificarse cuando ENC = 0. ➢ Cada uno se puede dividir por 1-8 usando los bits ADC10DIVx. Generador del voltaje de referencia 9 . Si se quita el reloj durante una conversión. el núcleo se desactiva automáticamente y vuelve a activar automáticamente cuando sea necesario. Cada fuente del reloj del ADC10 que dispone se selecciona mediante los bits ADC10SSELx: ➢ SMCLK. Entonces. y cualquier resultado no será válido. la operación no se completará. como para generar el periodo de muestreo. ADC10CTL0 y ADC10CTL1. Entradas y multiplexor del ADC10 El multiplexor de entrada analógica permite la selección de uno de los ocho canales externos y de las cuatro señales analógicas internas. ➢ Oscilador interno ADC10OSC. y las terminales VeREF+ y VREF. Para reducir las corrientes parásitas entre VCC y GND y en consecuencia un mayor consumo de corriente. Cuando se usa el formato binario. el ADC10OSC es también activado automáticamente cuando sea necesario y se desactiva cuando no se requiera durante las conversiones. Sin embargo. Selección del reloj de conversión El ADC10CLK se utiliza tanto para el reloj de conversión. para que sea el canal para la conversión. Selección del puerto analógico Las entradas externas Ax. El ADC10CLK debe permanecer activo hasta el final de una conversión. Cuando la conversión no está en forma activa. ➢ ACLK.Instrumentación MSP430 Resultados de conversión pueden estar en formato binario o formato de complemento a dos. ➢ MCLK. ya que este bit debe establecerse para iniciar las conversiones. el búfer del pin del puerto de entrada / salida se puede desactivar desde el puerto del buffer del pin configurando los bits ADC10AEx.

tsample. 8. el tiempo de muestreo total es: ???? = ??????? + ????? Modos de conversión El ADC10 tiene cuatro modos de operación. el resultado se almacena en los registros ADC10MEM. que consiste en una fuente de voltaje y un buffer separado. ➢ Salida del Timer_A de la unidad 2. el enlace de un número específico de registros ADC10MEM y para después de la conversión del canal A0. El buffer interno de referencia se selecciona mediante la velocidad y la potencia. comenzando con el canal seleccionado por los bits INCHx y decrementa hasta el canal 10 . ➢ Canal simple repetidos: Un simple canal seleccionado por los bits INCHx se convierte en varias ocasiones hasta que se detenga. En estos casos. mediante la desactivación del bit de REFOUT. simple conversión: Una simple conversión para el canal seleccionado por los bits INCHx. 16. ➢ Salida del Timer_A de la unidad 0. la referencia interna puede estar apagado para ahorrar energía. El voltaje de referencia interno también se puede utilizar externamente (PIN VREF+). serán 4. respectivamente. puede ser activo o inactivo. Por lo tanto. Tiempo de muestro y la conversión Una conversión de analógico-digital es iniciada en el flanco de subida de la señal de muestreo de entrada SHI.5 V) se puede seleccionar mediante la deshabilitacion o habilitación a través del bit REFON.5 V o 2. Los bits de SHTx seleccionan el período de muestreo. los bits SREFx deben ser activadas. Este generador del voltaje de referencia interno está diseñado para aplicaciones de baja potencia. Los temporizadores de muestreo colocan al SAMPCON en alto para seleccionar el periodo de muestreo después de sincronizarse con ADC10CLK. Para utilizar una referencia positiva externa VeREF +. almacena el resultado en el registro ADC10MEM.o utilizar VCC como referencia. La fuente de SHI (Selección de los bits SHSx) puede ser: ➢ Bit ADC10SC. El tiempo de establecimiento total cuando se REFON = 1 es ≈ 30 µs. Las referencias externas pueden suministrar VR+ y VR. La polaridad de la señal de la fuente SHI puede invertida por el bit ISSH. los cuales son seleccionados por los bits CONSEQx: ➢ Canal simple.Instrumentación MSP430 El voltaje de referencia interno (1. respectivamente. o 64 ciclos de ADC10CLK. El buffer puede ser habilitado o deshabilitado. ➢ Canales secuenciales repetidos: conversiones repetidas a través de múltiples canales. dependiendo del estado de la conversión. (por ejemplo: fconversión ≤ 50 ksps y ADC10SR = 1 → Ibuffer ≈ 50% de reducción). ➢ Canales secuenciales: Una conversión en múltiples canales que comienzan con el canal seleccionado por los bits INCHx y decrementa hasta el canal A0. ➢ Salida del Timer_A de la unidad 1.

Modo canal simple repetido: Resetear el bit ENC. La secuencia termina después de la conversión del canal A0. se detendrá para asegurar que la transferencia se haya completado. El rango de direcciones para el segundo bloque se define como SA+2n a SA+4n-2. cada vez que el ADC10 completa una conversión y carga el resultado a ADC10MEM. los datos de la conversión no son fiables. El DTC se puede configurar para: ➢ Modo de Transferencia de Un-Bloque (ADC10TB = 0): El valor de n en ADC10DTC1 define el número total de las transferencias de un bloque. Las transferencias continúan en el bloque uno.Instrumentación MSP430 A0. Detener conversiones Para detener las conversiones depende del modo de operación: Modo Canal simple conversión simple: Se sondear el bit ADC10BUSY hasta que se resetee y que resetee el bit ENC. El bloque inicia en la dirección por el registro ADC10SA registro de 16 bits y termina en ADC10SA+2n-2. y la siguiente señal de disparo vuelve a iniciar la secuencia. El rango de dirección del primer bloque se define por el registro ADC10SA de 6 bits y termina en ADC10SA+2n-2. hay que asegurarse de que no hay conversión activa o secuencia está en curso (ADC10 ocupado) durante el inicio de transferencia de DTC. Una transferencia continua (ADC10CT = 1) indica que el DTC no se detendrá después de un bloque o (modo de un solo bloque) o dos bloques (modo de dos bloques) se hayan transferido. 11 . Cada resultado de ADC se escribe en ADC10MEM. Controlador de transferencia de datos (DTC) El DTC (ADC10DTC1 ≠ 0) transfiere automáticamente los resultados de la conversión de ADC10MEM a otras ubicaciones de la memoria en el chip. Modo canales secuenciales o modo canales secuenciales repetidos: Reseterar el bit ENC. Reinicio de conversión Las conversiones sucesivas pueden comenzar de forma automática y muy rápidamente cuando MSC = 1 y CONSEQx > 0. Cualquier modo de conversión puede ser detenido de inmediato al resetear los bits CONSEQx y ENC. El primer flanco de subida de la señal de SHI desencadena la primera conversión y las siguientes conversiones se disparan automáticamente tan pronto como se complete la conversión anterior. sin necesidad de flancos ascendentes adicionales en SHI. Dado que se requiere una MCLK CPU. ➢ Modo de Transferencia de Dos-Bloques (ADC10TB = 1): El valor de n en ADC10DTC1 define el número de transferencias de un bloque. si la CPU está activada durante este período. Además. Sin embargo.

Los temporizadores pueden recibir un reloj interno o externo. ➢ La referencia seleccionada para la conversión de la temperatura empleada con el sensor integrado son el mismo que con otros canales. Si tanto el ADC10IE y los bits GIE son colocador en 1. El módulo del temporizador Básico sólo se implementa en los Dispositivos 4xx. pero las señales de reloj son proporcionados por el módulo del reloj básico +. y un temporizador básico. Configuración del MSP430 para el empleo del Timers El correcto funcionamiento del Sistema de temporización es esencial para el buen funcionamiento de una aplicación en tiempo real. La familia MSP430 4xx tiene dos contadores de propósito general de 16 bits o de 8 bits y temporizadores de eventos. las aplicaciones deben incluir la calibración. entonces la bandera ADC10IFG genera una petición de interrupción. Su función de transferencia que relaciona el voltaje de entrada. Cada dispositivo ofrece diferentes fuentes de reloj. Este documento trata de los controles de reloj incluidos en las plataformas utilizadas. ➢ Cuando el DTC no se utiliza (ADC10DTC1 = 0): ADC10IFG es colocado en 1. La bandera ADC10IFG es automáticamente reseteada cuando la solicitud de interrupción es atendida o también puede ser reseteada por software. T [º C]. llamados Timer_A.Instrumentación MSP430 Sensor de temperatura Integrado El canal de entrada analógica INCHx = 1010 usa el sensor de temperatura que se encuentra integrado en el chip. Timer_B. cambia automáticamente en el chip del voltaje de referencia como una fuente de voltaje. La definición de temporización puede establecerse como el procesamiento de los datos de información durante la ejecución de un programa de aplicación.00355 ? ? + 0. está dada por: ???????????? = 0. El Timer_A y Timer_B también incluyen múltiples capturas independientes y bloques de comparación. ➢ Como el error del offset es grande. controles y usos. con capacidades de 12 . se debe de tener en cuenta lo siguiente: ➢ El período de muestro debe ser mayor que 30 µs. Interrupciones en el ADC10 Una interrupción y un vector de interrupción están asociado con el ADC10. ➢ Cuando el DTC se utiliza (ADC10DTC1> 0): ADC10IFG es colocado en 1.986 Cuando se utiliza el sensor de temperatura. Las implementaciones del reloj varían entre los dispositivos de la familia MSP430. cuando los resultados de la conversión se en ADC10MEM. V Temperature [V] a la temperatura. cuando se complete un bloque de transferencia y el contador de trasferencia interna sea n = 0. ➢ Seleccionando INCHx = 1010. La familia de dispositivos 2xx también tiene Timer_A y Timer_B.

los cuales son totalmente controlable por software. sus tres registros direccionables. • Adecuado para una implementación RTC. FLL + CTL0 y FLL + CTL1. tan bien como por el oscilador interno controlado digitalmente (DCO). y los dos registros de control del bucle bloqueado en frecuencia. • Permitir una activación periódica del modo de suspensión. Los bloque de captura y comparar son adecuados para aplicaciones tales como temporizadores de eventos y Modulación por ancho de pulso (PWM). menor consumo de energía y menor tiempo de inicio. Estos registros. a llamados Registros de Control del Timer básico (BTCTL). respectivamente. además se describe el módulo de reloj básico+ (BCS+). Este apartado se centra principalmente en la configuración y el funcionamiento de los temporizadores y sus diferentes usos. el cual controla el módulo del temporizador básico 1. 13 . Las señales de reloj de los dispositivos de la familia MSP430x4xx son controlados por dos conjuntos de registros. El segundo conjunto de registros está dedicado a la configuración del sistema de relojes de propósito general. El DCO permite una frecuencia de trabajo de hasta 16 MHz. • Reemplazar bucles de retardo con llamadas al temporizador para que el CPU duerma. Timer Básico 1 El módulo Timer básico 1 está formado por dos temporizadores independientes de 8 bits: Contador Temporizador Básico 1 (BTCNT1) y Contador Temporizador Básico 1 (BTCNT2). • Contar flancos de una señal.Instrumentación MSP430 interrupción. Los temporizadores se utilizan en aplicaciones para: • Generar eventos de tiempo de periodo fijo. consumiendo mucha menos energía. que se pueden usar en cascada para formar un temporizador de 16 bits (seleccionable por software por el registro de configuración BTCTL). Forman parte del Control del Sistema de Reloj (SCFQCTL). Contador 1 del Timer Básico (BTCNT1) y el control del Contador 1 del Timer Básico (BTCNT2). El sistema del Temporizador es fundamental para casi cualquier aplicación embebida. Reloj del Sistema Integrador de frecuencia 0 (SCFI0). Esto permite que las fuentes de reloj para sean configuradas por uno o dos osciladores (dependiendo del dispositivo) o por cristales o resonadores externos. El primer conjunto de registros configura las señales de baja frecuencia para ser usada por los módulos periféricos. Las principales características de este módulo son: • Reloj para el módulo LCD. Reloj del Sistema Integrador de frecuencia 1 (SCFI1).

o Frecuencia de fotogramas seleccionable por software (bits BTFRFQx en la BTCTL registro). Registros BTCTL. para proporcionar alarmas periódicas del CPU periódicas y/o un sistema de reloj de tiempo real. o Fuente de reloj: ACLK. 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). con un intervalo seleccionado por los bits BTIPx en el registro BTCTL. basado en la división ACLK (x). • Capacidad simple de interrupción. o Fuentes interrupción del Timer Básica 1 BTIFG. • BTCNT2: Se utiliza como un divisor de frecuencia programable con capacidad de interrupción. Diagrama a bloques del Timer Básico 1.Instrumentación MSP430 • Temporizador básico de intervalo. 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. Figura 1. o flcd = ACLK / x. Registro de Control Timer Básico 1 Control 7 6 5 4 3 2 1 0 BTSSEL BTHOLD BTDIV BTFRFQ1 BTFRFQ0 BTIP2 BTIP1 BTIP0 Bit Descripción 7 BTSSEL BTCNT2 selección del reloj (junto con el bit de BTDIV) 14 . o Registro de 8 bits de Lectura / escritura.

Instrumentación 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 señal 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 interrupción del Timer Básico 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 bandera de Interrupción 7 0 BTIFG Bit Descripción 7 BTIFG Bandera de la Interrupción del Timer Básico 1 BTIFG = 1 cuando ocurre o está pendiente una interrupción 15 . Registro 2 de Habilitacion de Interrupción 7 0 BTIE Bit Descripción 7 BTIE Interrupcion de Habilitación del Timer Basico 1 cuando BTIE = 1 IFG2.

12.Instrumentación MSP430 Timer_A y Timer_B Los Timer_A y Timer_B son dos contadores de propósito general de 16 bits y temporizadores de eventos. • Entradas asíncronas y salidas lacheadas: o Registros de Timer A de captura/comparación no se almacenan. o 16 bits. Existen ligeras diferencias entre los dos temporizadores.incrementos o decrementos (Dependiendo del modo de operación) con cada flanco ascendente de la señal de reloj. SMCLK. además. • Fuente de reloj seleccionable y configurable: o ACLK. ser dividido por 2. o Registros de Timer B de captura/comparación son de doble búfer con carga sincronizada. o Comparador_A. o TACCR0 (o TBCCR0) Vector de interrupciones para TACCR0 (o TBCCCR0) CCIFG. • Registro de captura / comparar configurable: o Timer_A tiene tres o cinco registros de captura/comparar. Ambos temporizadores cuentan: • Temporizador/Contador asíncrono de 16-bit con cuatro modos de funcionamiento: o Longitud del Timer_A: 16 bits. • Registro de vector de interrupción para la decodificación rápida de todas las interrupciones del Timer_A y Timer_B. u 8 (configuración de bits de IDx). o El registro del temporizador / contador. o Amplia gama de intervalos de interrupción: 1 / MCLK a 32 segundos. o externamente a través TxCLK o INCLK (seleccionado con los bits TASSELx). 10. o Timer_B Los registros de captura/comparar registros se pueden agrupados. lo que permite una respuesta más rápida porque no hay ciclos donde se pierda tiempo mientras se carga el ISR/ejecuta y evita despertar al CPU. o Longitud Timer_B: programable para ser 8. o TAIV (o TBIV) Vector de interrupciones para el resto de las banderas CCIFG y TAIFG (o TBIFG). que a su vez ahorra energía: o Salidas con capacidad de modulación del ancho de pulso (PWM). o La fuente de reloj seleccionada puede. 4. se actualice inmediatamente cuando se escriben en. • Salidas configurables y varias conexiones internas a otros módulos. 16 . o Timer_B tiene tres o siete registros de captura/comparar. o El temporizador puede generar una interrupción cuando se desborda. o Acceso directo a memoria. TAR (Timer_A) o TBR (Timer_B)-de ahora en adelante descrito como TxR. o Convertidor digital a analógico (DAC12).

Modo continúo Las principales características del modo continuo son: • TxR cuenta con cada pulso de reloj hasta 0xFFFF (65536 series). • Cuando se alcanza este valor. seleccionados con los bits MCX en los registros de control del Timer_A o 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) Características de los modos Modo Ascendente Las principales características del modo ascendente son: • TAR cuenta de modo ascendente con cada pulso de reloj hasta que alcanza el valor del registro TACCR0 (o TBCCR0). Tabla 1. como se describe en la Tabla 1. • La bandera de interrupción del TACCR0 (o TBCCR0). se coloca en “1” cuando el temporizador llega al valor de TACCR0 (o TBCCR0). CCIFG. • Cuando se alcanza este valor. el siguiente impulso de reloj se reiniciará el TxR a contar desde cero. • La bandera de interrupción TAIFG (o TBIFG) es puesta en “1” cuando el valor del temporizador del contador de TACCR0 (o TBCCR0) es cero. Modos de operación del Timer_A y Timer_B. Modo ascendente/descendiente Las principales características del modo ascendente/descendente son: 17 . o Prescaler: Divisor (IDx bits). EQU0 = 1 (se reinicia TAR para contar desde cero). • Período de interrupción: tINT = 1/[fCLK/Prescaler/65536]. o fCLK: frecuencia de la Fuente de reloj [Hz].Instrumentación MSP430 El temporizador tiene cuatro modos de funcionamiento. • Período de interrupción: tINT = 1/[fCLK/Prescaler/(TxCCR0+1)] o tINT: TxIFG period de interrupción [sec]. • La bandera de interrupción TxIFG (o TxIFG) se coloca a “1” cuando el temporizador cuenta de 0xFFFF a cero.

TACCRX (o TBCCRX) que pueden utilizarse para capturar el contenido del registro del contador del tiempo. CCIFG. • La bandera de interrupción TxCCR0.Instrumentación MSP430 • TxR cuenta con cada pulso de reloj hasta que alcanza el valor en el registro TxCCR0. 18 . • Cuando se alcanza este valor. en el momento de un evento. El modo se selecciona mediante el bit PACt para cada registro de control del Captura/Comparar. comenzando en el siguiente pulso de reloj para disminuir hasta cero.1 a TxCCR0. la cuenta se invierte. Registros del Timer_A registers TACTL. se establece cuando la cuenta del temporizador va de TxCCR0 . 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 Descripción 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 señal de reloj: ID1 ID0 = 00  /1 ID1 ID0 = 01  /2 ID1 ID0 = 10  /4 ID1 ID0 = 11  /8 5-4 MCx Modo de operación 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 interrupción del Timer_A cuando TAIE = 1 0 TAIFG Bandera de interrupción del Timer_A cuando TAIFG = 1 Bloques de Captura/Comparación El TIMER_A y el TIMER_B contienen bloques de captura y de comparación independientes. TACCTLx (o TBCCTLx). o para generar un evento cuando el contenido del registro contador de tiempo corresponden a contenido de registro de captura/comparar. para generar intervalos de tiempo. • La bandera de interrupción TxIFG se establece cuando el temporizador termina la cuenta descendente cuando pasa de 0x0001 a 0x0000. por ejemplo. • período de interrupción: tINT = 1/[fCLK/Prescaler/(TxCCR02].

Véase el cuadro 2). La configuración de modo de captura se logra mediante la realización de los siguientes pasos: • Escribir 1 en el bit de la PAC para seleccionar el modo de captura. • La señal de entrada CCI está lacheada al SCCI. • TxR cuenta con el valor programado en el registro TxCCRx. proporcionando una marca de tiempo para el evento. • 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. • Cuando el valor del temporizador es igual al valor en el registro TxCCRx.Instrumentación MSP430 Modo Captura El modo de captura se utiliza para medir el período de eventos en el tiempo. se genera una interrupción: o La bandera de interrupción CCIFG está establecida. bajada. seleccionado por los bits CCISx en el Registro de Control de Captura / Comparar. excepto el modo 0 . La señal OUTx cambia con el flanco de subida del reloj del temporizador para todos los modos . • Escribir 1 en el bit SCS para sincronizar la captura con el siguiente reloj temporizador (recomendado para evitar las condiciones de carrera). TACCTLx (o TBCCTLx). La operación en modo de comparación está configurada como: • Se coloca en el bit CAP un cero para seleccionar el modo de comparación. con una mínima intervención de la CPU. 19 . Hay ocho modos de funcionamiento diferentes numeradas de 0 a 7. Modo Comparar El modo de comparación se utiliza para la generación de impulsos o interrupciones a intervalos específicos de tiempo. o ambos) es seleccionado por los bits CMX. Una de sus aplicaciones comunes es la de generar una señal de salida de modulación del ancho de pulso (PWM). • Cuando se detecta el borde correspondiente de la línea de entrada seleccionado. el valor en el registro del temporizador está lacheado a los registros TACCRx (o TBCCRx). La unidad de salida se utiliza para generar señales de salida (tales como señales PWM) basándose en las señales EQU0 y EQUx . o señal interna EQUx = 1 (x es el número del canal CCR). • La señal de entrada es muestreada por el CCIxA (o CCIxB) de entrada. • La bandera de interrupción se coloca en “1” en el CCIFG. • EQUx afecta a las señales de salida del comparador OUTx de acuerdo con el modo de salida (definido por los bits OUTMODx en el registro TxCCTLx. • El flanco de captura de la señal de entrada (subida.

pero en el Registro de Control Captura / Comparación los bits tiene diferentes nombres y proporcionan características adicionales.Instrumentación MSP430 Los modos de operación de salida se describen en la Tabla 2 y los ejemplos de las señales de salida para diferentes modos de temporizador se presentan en la Figura 2. o Modo 7: señal PWM activa en estado alto. • Modos 1 y 5: solo generación de eventos. Modos de operación de salida son: • Modos de 2. Ejemplos de salida de los diferentes modos del temporizador. TACCTLx. Modo Ascendente Modo Continuo Modo Ascendente/Descendente 1: Set 2: Toggle/Reset 3: Set/Reset 4: Toggle 5: Reset 6: Toggle/Set Figura 2. Los registros del Timer_B tienen las mismas características. 6 y 7: la generación de señales de salida PWM: o Modo 3: señal PWM activa en estado bajo. Registro de Control de Captura/Comparación del Timer_A 20 . Registro de los bloques de Captura/Comparación La descripción de los siguientes registros se refiere a los registros del Timer_A. o Modos 2 y 6: señales PWM complementarias separadas por una banda muerta cuando se restablecen las señales (ejemplo de aplicación: puentes H de la unidad de un motor bi-direccional). • Modo 4: señal con la mitad de la frecuencia de la señal del temporizador. 3.

Instrumentación 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 Selección 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 señal de entrada con el reloj del temporizador: SCS = 0  Captura Asíncrona SCS = 1  Captura síncrona 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 Habilitación OUTMOD1 OUTMOD0 de la interrupción = 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 interrupción de Captura/compara CCIFG = 1 cuando la interrupción está pendiente. 21 .