Está en la página 1de 13

Kit de Desarrollo con Microcontroladores

La Compaa Texas Instruments ha lanzado una placa de desarrollo llamada "LaunchPad" para sus microcontroladores MSP430 "Value Line" que incluye todo el hardware y software necesario para desarrollar aplicaciones. El kit incluye la placa de desarrollo, el programador y depurador mediante conexin USB, dos microcontroladores de la linea MSP430 y muchas otras adiciones ms. Los microcontroladores de la lnea MSP430 "Value Line" de Texas Instruments son microcontroladores de 16 bits que dicha compaa ha lanzado como una alternativa a los microcontroladores de 8 bits, todava en gran demanda y ofrecidos por otras compaas. Dichos microcontroladores se caracterizan por un extremadamente bajo consumo de potencia y precios tambin muy bajos, incluso menores que algunos microcontroladores de 8 bits disponibles actualmente en el mercado y se constituye en una alternativa para el desarrollo de aplicaciones con sensores, de seguridad, industriales, etc. usualmente implementados con microcontroladores de 8 o 16 bits. El kit es "open source" y contiene todo el hardware y software necesario para desarrollar prototipos, incluyendo herramientas para la depuracin y programacin de cdigo, lo cual facilita enormemente el desarrollo de aplicaciones y su posterior implementacin. El LaunchPad es bsicamente una placa que incluye un programador flash y una herramienta para depuracin (debugging), adems de un sockt DIP de 14-20 pines y emulacin integrada. La programacin flash se la realiza "en circuito" mediante el protocolo Spy Bi-Wire (JTAG de 2 lneas) y la memoria flash puede ser programada y borrada en segundos sin necesidad de una fuente de voltaje externa. Como todo lo necesario para su programacin y depuracin est incluido en la placa, simplemente se debe conectar el LaunchPad a un puerto USB de la PC y est listo para programarse. El LaunchPad se interconecta sin problema con entornos de desarrollo integrado como Code Composer Studio Version 4 o IAR Embedded Workbench, los cuales tambin estn disponibles para bajarse gratis y trabajan de manera irrestricta con la lnea de

microcontroladores MSP430 "Value Line". El LaunchPad incluye tambin en la placa LEDs, botones programables y 10 conexiones de pines para la conexin de dispositivos externos. La lista de software y hardware incluido en este kit: Caractersticas: * La placa LaunchPad contiene: o Socket de 14-/20-pin DIP (N) o Emulacin flash incluida para depuracin y programacin o 2 LEDs programables o 1 LED de encendido o 1 botn programable o 1 botn de reset * La placa posibilita el desarrollo con microcontroladores MSP430 Value Line de 14 o 20 pines de empaque DIP. * Su emulador integrado conecta los dispositivos flash MSP430 a una PC para su programacin y depuracin en tiempo real y "en sistema" mediante una conexin USB. * Incluye un cable mini USB para su conexin a la PC * Incluye 2 microcontroladores MSP430G2xx con las siguientes caractersticas: o MSP430G2211IN14 - 2kB Flash, 128B RAM, 10 GPIO, 1x 16-bit timer, WDT, BOR, Comparator A+ o MSP430G2231IN14 - 2kB Flash, 128B RAM, 10 GPIO, 1x 16-bit timer, WDT, BOR, 1x USI (I2C/SPI) 8ch 10-bit ADC o Los dispositivos incluidos MSP430G2xx vienen pre grabados con programas de ejemplo. Versiones para ser bajadas gratuitamente de los entornos de desarrollo integrado IAR Kickstart y Code Composer Studio Ver 4, que incluyen ensamblador, linker, simulador, source-level debugger, y compilador C. Estos entornos de desarrollo funcionan irrestrictamente con microconttroladores MSP430 Value Line. Qu Incluye el Kit

Conector PCB de 10 pines cristal de 32 KHz Placa de Desarrollo LaunchPad (MSP-EXP430G2) Sticker LaunchPad Microcontrolador flash MSP430G2211IN14 (pregrabado con un programa ejemplo) Microcontrolador flash MSP430G2231IN14 (pregrabado con un programa ejemplo )

Cable mini USB Gua del Usuario El LaunchPad es la manera ms fcil y econmica hasta hoy conocida, de iniciarse en el desarrollo de microcontroladores Texas Instruments, o microcontroladores en general, ya que contiene todo el harware y software necesario para desarrollar aplicaciones. Para los estudiantes y aficionados al desarrollo de sistemas embebidos es una oportunidad nica para probar los microcontroladores de 16 bits de Texas Instruments; este kit tan econmico y muy completo es una perfecta plataforma para la experimentacin y el desarrollo de sistemas pequeos que van desde el manejo de sensores, alarmas, control de motores, robots, vehculos autnomos pequeos... y todo lo que podamos imaginar! EL MICROCONTROLADOR MSP430 Los microcontroladores MSP430 emplean una arquitectura de Von-Neumann, lo que significa que memoria y perifricos comparten mapa de memoria. Estos microcontroladores de 16 bits constituyen una familia de muy bajo consumo con una avanzada arquitectura y un juego de perifricos muy completo. En este documento se introducen los conceptos bsicos que tienen algn inters en nuestra aplicacin. INTERRUPCIONES Los microcontroladores de la familia MSP430, y en concreto, gestionan 4 tipos de interrupciones: * Interrupcin Reset. * Interrupciones no enmascarables. * Interrupciones que pueden ser no enmascarables. * Interrupciones enmascarables. RESET E INICIALIZACIN Pueden producirse dos tipos de seales internas de reset, denominadas P.O.R. (PowerOn Reset) y P.U.C. (Power-Up Clear). * Una seal P.O.R. se origina: 1. Al encender el dispositivo. 2. Si se ocasiona una seal 0 en la patilla RST/NMI, y est configurado en modo reset. * Una seal P.U.C. se origina: 1. Siempre que se genera una seal P.O.R. 2. Si expira el temporizador Watchdog, estando seleccionado el modo Watchdog. 3. Al producirse una violacin del cdigo de seguridad del temporizador Watchdog. 4. Cuando se da una violacin del cdigo de seguridad de la memoria flash. Tras el reset las condiciones iniciales del sistema son: * Las patillas de entrada-salida conmutan al modo entrada. * Los flags de entrada y salida se borran. * Se inicializan el resto de perifricos y registros a su modo por defecto (ver el manual de usuario del MSP). * Se resetea el registro de estado SR (Status Register). * Se carga la direccin contenida en el vector de interrupcin reset en el registro contador

de programa PC (Program Counter). ESTRUCTURA GLOBAL DE INTERRUPCIONES Las interrupciones de tipo no enmascarable, no son enmascarables de ninguna forma, no contienen bit individual de inhabilitacin y el bit general de habilitacin de interrupciones GIE (General Interrupt Enable) no tiene efecto sobre ellas. Las interrupciones denominadas en este texto como aquellas que pueden ser no enmascarables, no son enmascarables mediante el bit general GIE. Sin embargo, pueden ser habilitadas o deshabilitadas individualmente mediante bits de habilitacin implementados particularmente para cada una de ellas. Cada vez que se habilita una interrupcin de este tipo se resetea su bit individual, de modo que no interrumpa la ejecucin de su rutina de servicio, aunque el retorno de interrupcin no tiene efecto sobre este bit. Debe habilitarse por software dentro de la propia rutina de servicio, antes de su retorno. Pueden generarse en la patilla RST/NMI si estamos trabajando en modo NMI, por un fallo del oscilador, o bien por una violacin del acceso a memoria. Con el bit 5 del registro de control del Watchdog seleccionamos si trabajamos en modo Reset o en modo NMI: 0: Reset, 1: NMI. Las interrupciones enmascarables son interrupciones de propsito general, se enmascaran y habilitan mediante el bit general de habilitacin de interrupciones, pueden ser ocasionadas bien por un desbordamiento del temporizador Watchdog o bien por otros mdulos con capacidad de generar interrupcin. PROCESAMIENTO GLOBAL DE INTERRUPCIONES La estructura de interrupciones del MSP430 permite que tanto las condiciones de operacin del microcontrolador generen una interrupcin del programa, o que sta sea debida a mdulos perifricos o eventos externos. stas ltimas pueden ser deshabilitadas con el GIE, bit localizado en el registro de estado SR. Al solicitarse una interrupcin y si su correspondiente bit, junto al GIE, lo permiten, la rutina de servicio de interrupcin se activa con los siguientes pasos: 1) CPU activa, se termina la ejecucin de la instruccin en curso. 2) CPU detenida, fin de los modos de bajo consumo (si se estuviese en alguno). 3) El valor del contador de programa se almacena en la pila. 4) El registro de estado se almacena en la pila. 5) De las solicitadas, se selecciona la interrupcin con mayor prioridad. 6) Su correspondiente flag de interrupcin se resetea. 7) Se ponen a 0 los bits GIE, CPUOff, OscOff, SCG1 y los bits del registro de estado los de estado V, N, Z. 8) El contenido del correspondiente vector de interrupcin se carga en el contador de programa. COMUNICACIONES EN EL MSP430 PUERTOS Trabajando con el MSP430 no se tiene posibilidad de disponer de los buses de datos y direcciones en el exterior. Para su comunicacin con el resto de componentes y perifricos que formen parte del

circuito en que se aloje el MSP430, ste dispone de 6 puertos de entrada y salida de 8 bits cada uno, que se pueden habilitar o no individualmente. Este microcontrolador MSP430F149 dispone de 6 puertos de entrada y salida P1..P6, de 8 bits cada uno; de ellos, los puertos uno y dos tienen capacidad de producir interrupciones. Todos los registros tienen sus bits programables individualmente como entrada o salida y como pin de puerto o como perifrico. Para lo cual, cada puerto dispone de cuatro registros de control para su configuracin; salvo los puertos uno y dos, que disponen de seis permitiendo as trabajar con interrupciones. Como ejemplo se muestran los registros del puerto uno, siendo este caso directamente extrapolable al resto de puertos. * Registros de control de P1: 1. P1IN: Registro de solo lectura, su valor es el de la entrada del puerto. 2. P1OUT: De lectura y escritura, su valor es el de la salida del puerto. 3. P1IFG: Flags de interrupcin de las correspondientes patillas, indica qu patillas estn solicitando interrupcin. Es de lectura y escritura. Este registro es propio de los puertos uno y dos. 4. P1IES: Sirve para seleccionar individualmente si las interrupciones se solicitarn con flancos de subida o de bajada. Es propio slo de los puertos uno y dos, siendo de lectura y escritura. 5. P1IE: Habilita interrupcin, propio de los puertos con capacidad de interrupcin. De lectura y escritura. 6. P1SEL: Sirve para seleccionar si la patilla correspondiente va a estar conectada al puerto o al perifrico. USART. PERIFRICO PARA COMUNICACIONES UART O SPI El MSP430 incluye dos perifricos USART (Universal Synchronous/Asynchronous Receive Transmit), USART0 y USART1. El bit SYNC del registro de control UCTL (U0CTL para USART0 y U1CTL para USART1) selecciona entre comunicacin asncona (UART) o sncrona (SPI), con 0 se selecciona la UART, mientras que con 1 se selecciona el SPI. En este apartado se trata la comunicacin UART del microcontrolador. Si se trabaja en modo SPI, normalmente se har en modo maestro, en cuyo caso, todo lo que se comenta para la comunicacin asncrona ser vlido, haciendo 2 consideraciones: * Habr que prestar atencin a poner el Chip Select a 1 una vez que se ha transmitido completamente el dato. Un error comn es realizar el cdigo escribiendo en el buffer de transmisin y despus deshabilitar la lnea de CS. Hay que considerar que tras escribir en el buffer de transmisin hay un hardware especfico encargado de transmitir, el esclavo debe procesar y ejecutar el comando y hasta entonces no se puede poner CS a 1. * Para recibir datos, en modo maestro, habr que escribir 0xFF en el bus, de modo que suministremos seal de reloj al esclavo sin enviarle ninguna orden. Segn el protocolo de comunicacin UART, el receptor se sincroniza a s mismo, y la transmisin normalmente consta de un bit se start, siete u ocho bits de datos, un bit de direccin, un bit de paridad y dos bits de STOP. Adems, puede haber dos formatos para la comunicacin, el formato Idle-Line, que separa los bloques de datos y el Addres-Bit, donde los caracteres contienen un bit extra

utilizado como direccin. Los perifricos USART disponen de dos fuentes principales de interrupciones, de transmisin o de recepcin, sus bits de control de interrupcin, flags y habilitacin estn localizados en los registros SFR: URXIFG0(1) : Flag de interrupcin de recepcin. URXIEO(1) : Habilitacin de interrupcin de recepcin. URXE(0) : Habilita recepcin. UTXIFG0(1) : Flag de interrupcin de transmisin. UTXIE0(1) : Habilita interrupcin de transmisin. UTXE0(1) : Habilita transmisin. Si se deshabilita el receptor (URXEx=0), ste lo hace al terminar el carcter que est recibiendo o inmediatamente si no est recibiendo nada. Al deshabilitar la transmisin (UTXE=0), la transmisin en curso no se detendr hasta que los datos del registro de desplazamiento (Shift Register) de transmisin y el del buffer de transmisin hayan sido transmitidos. Los datos del buffer podrn resultar daados. Para escribir en el buffer de transmisin de forma segura, se deber hacer con el transmisor deshabilitado, al habilitarlo, comenzar la transmisin. GENERACIN DE LA FRECUENCIA DE TRABAJO La generacin del baud rate en la UART del MSP430 es tpica en los microcontroladores de Texas Instruments, pero es algo ms compleja que las implementaciones de otros microcontroladores, una de sus particularidades es el uso de divisor y modulador, que permite transmitir y recibir a cualquier velocidad estndar haciendo uso de cualquiera de sus seales de reloj, sean estndar o no. As pues, el generador de baud rate del MSP consta de un divisor y un modulador como los que se muestran en la figura 3.1. Esta combinacin permite trabajar con frecuencias que no sean mltiplos de baud rates estndares. Esta tcnica presenta potentes ventajas aunque sea algo compleja y posibilita que se consuma la mnima cantidad de corriente. Generador del baud rate de la USART del MSP430 El LSB del registro de modulacin es el primero encargado de llevar a cabo esta modulacin, que comienza con el bit de start. La explicacin de la generacin del baud rate se ver mejor con algn ejemplo: * Seleccionando una seal de reloj de 32.768 Hz (BRCLK), se requiere una sincronizacin a 4800 baudios. Para ello el valor del divisor debera ser 6,83; el MSP430 permite que fijando el valor del divisor a 6 y aadiendo un valor al registro de modulacin, se genere el baud rate requerido. En este caso, el valor del registro de modulacin ser 0x6F (0110 1111) y la secuencia que seguir el generador para cada bit ser 7-7-7-7-6-7-7-6 Texas Instruments suministra una serie de consideraciones para calcular estos valores de una forma rpida y sencilla. As, el factor de la divisin N, que en el ejemplo anterior vala 6,83 se determina segn la siguiente expresin: Ecuacin para calcular el baud rate del mdulo USART del MSP430 Donde N es el factor de divisin requerido, UxBR el registro de 16 bits correspondiente a la divisin, a la hora de programar realmente son dos: UxBR1 para los bits ms

significativos y UxBR0 para los bits menos significativos, siendo U0BR1 U1BR1 el registro de 8 bits del lado alto del divisor para la UART0 1 respectivamente; i representa el bit actual que se se est recibiendo o transmitiendo en el paquete, n es el nmero de bits que se transmite en el paquete, que puede ser 7 u 8 y es el dato del actual bit de modulacin. Adems, por comodidad, en las hojas caractersticas se suministran tablas con los valores de divisin y modulacin correspondientes a los valores estndar. El error originado con este mtodo es despreciable y se ha comprobado la transmisin de grandes paquetes de datos con PC a velocidades de hasta 115200 baudios sin ningn error, aun as, Texas Instruments proporciona igualmente 2 expresiones para calcular el error, que se muestran a continuacin, adems de las mencionadas tablas. Se remite al lector interesado al manual del usuario del MSP430. Probabilidad de una transmisin o recepcin errneas segn el baud rate del mdulo del MSP430 OPERACIN DE INTERRUPCIN Cuando se recibe un dato, el flag de recepcin toma valor 1, y se pone automticamente a 0 si la interrupcin es atendida o si el buffer de recepcin es ledo. Cuando el dispositivo est en condiciones de transmitir un dato, el buffer de transmisin est listo para escribir en l, y esto se refleja mediante el flag de transmisin. Se resetea automticamente si la interrupcin es atendida o si se escribe un carcter en el buffer. REGISTROS DE ESTADO Y CONTROL Los registros de control y de estado estn estructurados en 8 bits y su valor es aleatorio tras una seal PUC. Se ofrece aqu la informacin bsica de la utilidad de cada uno de estos bits. Para mayor informacin consultar el manual del usuario del MSP430. REGISTROS DE CONTROL DE LA USART DEL MSP430 (U0CTL, U1CTL) La informacin de estos registros determina la operacin bsica del mdulo USART. Los bits del registro solicitan el protocolo, el formato de la comunicacin y la paridad. Pueden ser programados antes de resetear el bit SWRST para deshabilitar el reloj. El registro se divide en los bits mostrados a continuacin, siendo el bit 7 el situado ms a la izquierda. BIT 7 PENA | PEV | SP | CHAR | Listen | SYNC | MM | SWRST | SWRST: Pone URXIFG, URXIE, UTXIE y UTXIFG a sus valores por defecto. * Pasos de inicializacin de la UART: 1. SWRST=1 2. SWRST =0 3. Programar los valores necesarios en los registros de divisin y modulacin. * MM: Por defecto MM=0. 1. MM=0: Protocolo Idle-Line. 2. MM=1: Protocolo Address-Bit. * SYNC: 1. SYNC =0: Protocolo UART.

2. SYNC=1: Protocolo SPI. * Listen: 1. Listen = 0: No hay realimentacin. 2. Listen = 1: Hay realimentacin interna con el receptor. (Loopback mode). * CHAR: 1. CHAR = 0 datos de 7 bits. 2. CHAR = 1 datos de 8 bits. * SP: 1. SP = 0 1 bit de stop. 2. SP = 1 2 bits de stop. * PENA: Con PENA=1 se habilita la paridad. * PEV: Su funcin es vlida si PENA=1. 1. PEV = 0: Paridad par. 2. PEV = 1: Paridad impar. REGISTROS DE CONTROL DE TRANSMISIN EN EL MSP430 (U0TCTL, U1TCTL): El registro se divide en los bits mostrados a continuacin, siendo el bit 7 el situado ms a la izquierda. BIT7 No utilizado | CKPL | SSEL1 | SSEL0 | URXSE | TXWake | No utilizado | TXEPT | * TXEPT: Con 1 indica que el registro de desplazamiento y el buffer estn vacos. * TXWake: Cada transmisin utiliza su estado para inicializar la direccin-identificacin caracterstica. * URXSE: Con 1 solicita una interrupcin de servicio de recepcin. * SSEL1, SSEL0: Definen el reloj a utilizar para generar los patrones de baudios. = 00: Reloj externo UCLK1. = 01: ACLK = 10, 11: SMCLK * CKPL: Si est a 0, el reloj utilizado tiene la misma polaridad que el del sistema, si est a 1 la polaridad es inversa. REGISTRO DE CONTROL DE RECEPCIN DEL MSP430 (U0RCTL, U1RCTL): BIT7 FE | PE | OE | BRK | URXEIE | URXWIE | RXWake | RXErr | * RXErr: Indica que algn flag de error situado a 1 no se resetea automticamente. * URXWIE: Con valor 0, cada carcter recibido pone a 1 el flag URXIFG. Con valor 1, slo los bits de direccin lo ponen a 1. * BRK: Se pone a 1 cuando se recibe una seal de Break. * OE (Overrun error): Se pone a 1 para indicar que se ha colocado un dato en el buffer antes de que el anterior haya sido ledo, es decir, que el penltimo dato recibido ha sido perdido. * FE (Framming error): Con valor 1 indica que no ha habido bits de paro, lo que representa que se ha perdido la sincronizacin y, por tanto, la transmisin. El dato ledo ser errneo. TEMPORIZADORES

El MSP430F149 dispone de 2 temporizadores designados como Timer A y Timer B, entre ellos tienen muy pocas diferencias; operan y se estructuran de igual modo. Por lo que slo el temporizador A es analizado en este apartado. CARACTERSTICAS GENERALES El temporizador A posee 1 contador de 16 bits con 4 modos de operacin, reloj seleccionable y configurable, de 3 a 5 registros de captura y comparacin CCRx cuya operacin y salida es configurable individualmente y 3 5 mdulos de salida con 8 modos de operacin configurables individualmente para cada uno de estos mdulos. Arquitectura del Timer A del MSP430 El temporizador dispone de un contador de 16 bits, el cual tiene 4 modos de operacin seleccionables con los bits MC0 y MC1 del registro de control TACTL. Este contador se incrementa o se decrementa con los flancos ascendentes de la seal de reloj. Puede ser ledo y escrito por software y tiene capacidad de interrupcin. El temporizador se comporta de distinta forma segn el valor de estos bits: * 00 El temporizador estar parado. * 01 Cuenta ascendente hasta que su valor sea igual al del registro CCR0, instante en el que se pone a 0. * 10 Cuenta ascendente continuamente hasta alcanzar su valor mximo, despus se pone a 0 inmediatamente. * 11 Cuenta ascendente hasta CCR0 y luego descendente hasta 0. SELECCIN DEL RELOJ Y DIVISIN DE FRECUENCIA Al igual que en el resto de mdulos internos, el reloj del temporizador puede ser seleccionado, bien entre relojes internos (ACLK, SMCLK), bien del reloj externo. Adems puede tomarse esta seal de reloj directamente o dividirla entre dos, cuatro u ocho, tal y como se muestra en la figura anterior INICIALIZACIN DEL TEMPORIZADOR A Para detener el temporizador podemos hacerlo escribiendo 00 en los bits MC0 y MC1. O bien con cualquier otro valor en estos bits, haciendo que el valor de CCR0 sea 0, para inicializar el temporizador en esta situacin bastar con dar un valor determinado a CCR0. Poniendo a 1 el bit CLR del registro TACTL, se borra el valor del contador y se introducen los valores de IDx. FLAGS Cuando el temporizador alcanza el valor mximo en su modo de operacin TAIFG toma valor 1. Esto se produce incluso estando deshabilitadas las interrupciones. Este flag dura un pulso de reloj y se pone a 0 automticamente. BLOQUE DE CAPTURA Y COMPARACIN Se selecciona el modo de captura poniendo a 1 el bit CAPx del registro de control CCTLx. Si la captura se lleva a cabo, el flag de interrupcin CCIFG de CCTLx se pone a 1, y en consecuencia, se solicita una interrupcin si los bits de habilitacin de interrupcin GIE y CCIEx estn con valor 1. Tanto el bit CCIFGx como el bit CCIEx se utilizan para los modos de comparacin y de

captura, CCIEx habilita la interrupcin y CCIFGx tomar valor 1 cuando se haya producido el evento de captura o comparacin. La captura puede utilizarse para medir el tiempo con rutinas software, medir el tiempo entre eventos hardware o medir la frecuencia del sistema. Para detener el temporizador, habr que detener primero la captura y luego el contador. A la hora de reinicializarlo, se inicia primero la captura y despus el contador. MODO COMPARACIN Este modo de operacin se selecciona haciendo 0 el bit CAPx del registro de control CCTLx. Es el modo ms utilizado para generar interrupciones en intervalos especficos de tiempo o para, utilizado con la unidad de salida, generar seales que tengan relacin con el tiempo como las del tipo de modulacin de anchura de pulsos PWM. En esta aplicacin ser utilizado para generar interrupciones a una frecuencia de 100Hz, en las que tomaremos los datos con los conversores A/D. Si el temporizador tiene el mismo valor que el registro CCRx: - El flag de interrupcin CCIFGx del CCTLx es puesto a 1. - Si CCIEx y GIE son 1 se solicita una interrupcin. - EQUx es llevado a la unidad de salida, afectando a OUTx segn el modo de salida seleccionado. La seal EQU0 es 1 cuando el valor del contador es mayor o igual que CCR0. Las salidas de EQU1 a EQU4 son 1 cuando el valor del temporizador es igual a sus correspondientes de CCR1 a CCR4. LA UNIDAD DE SALIDA Cada bloque de comparacin y captura dispone de una unidad de salida. sta puede operar de ocho modos diferentes seleccionados mediante los bits OMx2, OMx1 y OMx0. Las diferencias entre cada uno de los ocho modos de salida estn descritas por el fabricante en el manual del usuario; stas radican en que el MSP430 proporcionar unas salidas u otras en sus pines cuando el temporizador alcance el valor almacenado en CCR0. Su uso es, por ejemplo, generar automticamente seales PWM o similares sin gastar para ello recursos de la CPU. Se remite al lector interesado a las datasheets y a los cdigos suministrados de ejemplo por Texas Instruments. MODOS DE OPERACIN El temporizador dispone de 4 modos de operacin, dotndolo de una gran versatilidad, por lo que cabe detenerse a observarlos. Modo parado Parar el temporizador es sencillo tal como se ha comentado con anterioridad. El valor del temporizador, cuando lo detengamos poniendo a 0 los bits MCx, no se ver alterado. Cuando el temporizador haya sido parado tras estar trabajando en modo crecientedecreciente, y sea reiniciado a ese modo, comenzar a contar en la direccin en que vena hacindolo. Modo creciente En este modo de operacin el temporizador contar hasta el valor que haya almacenado en el registro CCR0. Llegado este momento volver a cero y empezar a contar.

Modo continuo En este modo de operacin, el temporizador no se resetea hasta alcanzar su valor mximo. El flag de interrupcin indicar cundo su valor es igual al de CCR0. Puede ser utilizado para generar ondas desfasadas un valor CCR0; Puede hacerse que, a efectos prcticos, este modo sea igual que el anterior mediante el siguiente cdigo. #pragma vector TIMERA_VECTOR __interrupt void CONT_UP (void) {CCR0 += CCR0;} Modo creciente-decreciente El funcionamiento bsico es idntico a los anteriores salvo que, cuando el temporizador alcance el valor almacenado en CCR0, contar en sentido decreciente hasta llegar a cero y as sucesivamente. ESTRUCTURA DE REGISTROS DEL TEMPORIZADOR La unidad del temporizador dispone de un registro, llamado TAR (Timmer A Register), donde se almacena el valor del contador, al igual que ste, es de 16 bits. Es de lectura y escritura. Este registro dispone de un registro de control TACTL, de lectura y escritura, cuya estructura est detallada a continuacin. Dispone adems de los correspondientes registros de comparacin y captura CCR0, CCR1 y CCR2, que denominamos genricamente CCRx (Capture Compare Register x) que contendrn el dato que les corresponda. Cada uno de estos registros de comparacin y captura dispondr de su correspondiente registro de control CCTLx. La funcin de stos registros, de 16 bits y de lectura y escritura, se detallan en el manual de usuario del MSP430. Registro de control del Temporizador A (TACTL) La arquitectura de este registro se muestra a continuacin, siendo el bit ms significativo el 15, y estando situado a la izquierda en la representacin. BIT15 No utilizados | .. | .. | .. | SSEL1 | SSEL0 | ID1 | ID0 | MC1 | MC0 | No utilizado | CLR | TAIE | TAIFG | Los bits del nueve al quince, al igual que el tres, no son utilizados. Como se ha descrito, los bits SSEL0 y SSEL1 se utilizan para seleccionar el reloj a utilizar, el cual puede ser dividido indicndolo en los bits ID (Input Clock Divider). Tambin se han descrito ya los modos de operacin del contador, que se seleccionan con los bits MC1 y MC0 y la funcin del flag TAIFG, el bit TAIE habilitar o no dichas interrupciones. El bit CLR sirve para resetear el temporizador al escribir en l un 1. Su valor se borra automticamente y el temporizador se reinicia con el siguiente flanco del reloj. Diferencias entre el temporizador A y el temporizador B Adems del Temporizador A, el MSP430F149 incluye un segundo temporizador, de uso similar al anterior pero con algunas pequeas diferencias: - El temporizador A es de 16 bits y ste es de longitud seleccionable entre 8, 10, 12 16 bits. - No est implementado el bit SCCI en el registro de control de los registros de captura y comparacin. (Ver manual del usuario).

- La funcin de los registros de captura y comparacin ha cambiado levemente. EL CONVERSOR ANALGICO-DIGITAL DE 12 BITS. CARACTERSTICAS GENERALES El conversor analgico-digital de 12 bits del MSP430 (en adelante ADC12) tiene principalmente cinco bloques funcionales que pueden ser configurados y optimizados individualmente: * Base del conversor analgico digital con muestreo y retencin (S&H). * Conversin a memoria y configuracin. * Tensin de referencia y configuracin. * Seleccin y control del reloj del conversor. * Temporizacin del muestreo y control de la conversin. MSP430: Arquitectura del conversor ADC12 CANALES DE CONVERSIN El MSP430F149 dispone de 8 canales para convertir tensiones externas, desde a0 hasta a7. Adems puede convertir 4 tensiones internas, que son, las tensiones de referencia VeREF+ y VeREF-/VREF- ,con los canales internos a8 y a9 respectivamente; la tensin correspondiente a un diodo interno para determinar la temperatura del microcontrolador, con el canal interno a10; y la tensin correspondiente a la mitad de la alimentacin analgica AVcc/2 con el canal interno a11. Tensin de referencia La tensin de referencia puede ser seleccionada interna o externamente. En caso de seleccionarse una tensin interna, se dispone de un bit para indicar si esa tensin interna de referencia son 1.5 V 2.5V. As como de los bits Sref para seleccionar la tensin de referencia.

Sref Referencia positiva Referencia negativa

Avcc

Avss

VREF+ interna

Avss

2,3

VeREF+ externa

Avss

Avcc

VREF-/VeREF- interna o externa

VREF+ interna

VREF-/VeREF- interna o externa

6,7

VREF+ externa

VREF-/VeREF- interna o externa

Modos de conversin Mediante los bits CONSEQ0 y CONSEQ1, del registro de control ADC12CTL1, se selecciona el modo de conversin. * 00 Modo convertir un solo canal. * 01 Modo convertir una secuencia de canales. * 10 Modo convertir de un solo canal de forma repetitiva. * 11 Modo convertir una secuencia de canales de forma repetitiva. Modo un solo canal El canal a convertir se selecciona mediante los bits INCH del registro de control de conversin a memoria (ADC12MCTLx), asociado al registro de conversin a memoria (ADC12MEMx), apuntado por los bits CstartAdd, a su vez localizados en ADC12CTL1. El resultado de la conversin se almacenar en el registro ADC12MEMx. Modo secuencia de canales Los bits CstartAdd apuntarn al registro de conversin a memoria ADC12MEMx donde se guardar el valor de la primera conversin de la secuencia. El resto de valores se irn almacenando consecutivamente a partir del primero apuntado. Los registros de control de la conversin a memoria correspondientes a cada uno de estos registros, ADC12MCTL contendrn la informacin relativa al canal a convertir, a la tensin de referencia utilizada para esa conversin, etc. Adems, el registro correspondiente al ltimo valor de la secuencia, deber tener su bit EOS (End Of Sequence) al valor 1. Modo repeticin de un solo canal y repeticin de secuencia de canales Es el modo un slo canal repitindose una y otra vez hasta que se detiene. Esta detencin ser en tiempo de ejecucin, por lo que ser en la mayora de casos mediante interrupcin. Seleccin del reloj y periodo de muestreo De modo similar a lo que ocurre con otros bloques, se puede seleccionar el reloj a utilizar entre varios y se puede dividir su frecuencia, en este caso el divisor podr tomar valores desde 1 hasta 8; mediante 2 bits para la seleccin ADC12SSEL1 y ADC12SSEL0 y 3 bits en este caso para el divisor de frecuencia ADC12DIV2, ADC12DIV1 y ADC12DIV0. Tambin se puede programar el tiempo de muestreo mediante los bits SH0 y SH1 del registro ADC12CTL0.

También podría gustarte