Este documento describe las características y funcionalidades del microcontrolador MSP430G2553. Explica que el MSP430 es un microcontrolador de bajo consumo de energía que soporta operaciones digitales y analógicas. Describe los registros, puertos, interrupciones y modos de direccionamiento del MSP430, los cuales son importantes para programar el microcontrolador en lenguaje ensamblador de bajo nivel.
1. 1
I. INTRODUCCIÓN
EL LENGUAJE ENSAMBLADOR EN UNOS DE LOS
LENGUAJES MÁS BAJOS DE LA PROGRAMACIÓN, ESTE
TIPO DE PROGRAMACIÓN NOS PROPORCIONA LAS
HERRAMIENTAS PARA INTERACTUAR CON EL
HARDWARE SUS VENTAJAS RADICAN EN LA
EFICIENCIA DE TAMAÑO Y FLEXIBILIDAD DE LOS
PROGRAMAS SUS DESVENTAJAS SON EL TIEMPO DE
PROGRAMACIÓN Y PELIGRO DE AFECTAR RECURSOS
INESPERADAMENTE.
II. DESARROLLO DE LA PRÁCTICA
Los microcontroladores MSP430™ tiene varias
características que los hacen muy competentes a la
hora de realizar aplicaciones. Hablaremos un poco
de esas características a manera de introducción en
esta pequeña sección.
Fig.1.msp430g2553
Para empezar MSP quiere decir Mixed Signal
Processor lo cual significa procesadores de señal
mixta, esto nos habla micho de sus funciones, al ser
una familia de microcontroladores están preparados
nativamente para el uso y generación de señales de
forma digital, pero también cuentan con periféricos
que hacen que estos puedan trabajar con señales
analógicas, esto los hace útiles para aplicaciones de
control, medición y electrónica de consumo.
Estos microcontroladores son los que menos
energía consumen incluso por debajo de los PIC´s
esto se logra combinado de marera correcta las
varias fuentes de interrupción, los periféricos
independientes a la CPU y la selección correcta de
las fuentes de reloj para la CPU y los periféricos.
Fig.2.registros del sistema(ejemplos)
El registro es un concepto muy importante en la
programación de microcontroladores. En el
MSP430 todas las operaciones excepto para
instrucciones de flujo del programa se implementan
como operaciones de registro. Para ajustar la
frecuencia de un temporizador, un valor se escribe
en un registro. Para recuperar el estado de un pin de
entrada, un valor que se lee de un registro. Para
guardar un valor para después, ese valor se escribe
en un registro. En términos de la CPU todas estas
operaciones son funcionalmente lo mismo - un bit,
un byte o palabra se escribe o lee desde una
ubicación especificada. Una vez que domine las
PRÁCTICA 1 ENSAMBLADOR MSP430G2553
Pérez Camacho Jesús Asmeth.
Instituto Tecnológico de Tuxtla Gutiérrez
killerMstr1@gmail.com
2. 2
técnicas básicas para la manipulación de estos bits,
bytes y palabras, aprender a implementar una
característica de la MSP430 se convierte en gran
medida una cuestión de usar manuales y otros
recursos para estudiar los registros asociados a esa
función para averiguar qué configuración producirá
el resultado deseado.
La tarea de leer y escribir a los registros como
posiciones de memoria discretas se simplifica en
gran medida por el uso de alias simbólicas en el
programa de la asamblea. En lugar de utilizar
direcciones numéricas, los registros y bits son
típicamente referidos por los nombres más o menos
significativas, tales como SP de "Stack Pointer" o
P1OUT para el "Puerto 1 Salida de Registro".
INTERRUPCIONES
Las interrupciones son el elemento de hardware
mas importante para las aplicaciones de bajo
consumo de energía ya que mediante ellas es
posible activar a la CPU cuando sea necesario. Es
cierto que no por usarlas ya tendremos una
aplicación de ultra bajo consumo ya que esto
implica la combinación de diversos aspectos que
esta arquitectura permite, pero nos serán de
muchísima utilidad para hacer el manejo de
programas mas sencillo.
Fig.3. interrupciones para msp430
El concepto de interrupción viene precisamente
de la acción que realiza ya que interrumpe a la CPU
en el momento que sea para realizar una subrutina.
Esta es principalmente la diferencia entre una
interrupción y una subrutina, la subrutina es llamada
en un momento especifico que el programador
define, en cambio una interrupción puede ocurrir en
cualquier momento.
Existen diferentes interrupciones al sistema y se pueden
configurar de diferente manera.
Fig.4. tipos de interrupciones
MODOS DE DIRECCIONAMIENTO
Los modos de direccionamiento son usados para
que la CPU conozca la manera en que le serán
accedidos los operandos de la instrucción a ejecutar.
Las instrucciones se dividen en dos grandes grupos:
•Operando Simple del tipo: [instrucción] destino
•Doble Operando del tipo: [instrucción] fuente,
destino
Los MSP430™ soportan 7 modos de
direccionamiento, de los cuales solo 4 de ellos son
implementados físicamente en la CPU (Registro,
Indexado, Indirecto e Indirecto con autoincremento)
es decir grabados en cilicio, 2 de ellos resultan de
usar el PC como un registro (Simbólico e
Inmediato) y el ultimo se obtiene indexando un
registro cuyo valor es cero (Absoluto), es decir SR
cuando se usa como Generador De Constantes.
Fig.5.direccionamiento de periféricos
VECTORES DE INTERRUPCCION
Los vectores de interrupción están localizados al
final de la memoria desde la localidad 0xFFE0 a
0xFFFF, estos son de vital importancia para sacar el
mayor provecho a esta familia de
microcontroladores, ya que como su nombre lo dice
nos ayudaran con el uso de las interrupciones
El contenido del vector depende de los periféricos
implementados en cada dispositivo, pueden ser
3. 3
consultados en el datasheet del dispositivo.(observe
fig.3)
PUERTOS
La parte importante de los puertos de entrada y
salida es la configuración, ya que en algunos casos
esta configuración solo se hace una ves al inicio de
cada programa y muy pocas veces se ve alterada.
Para la configuración básica los puertos existen 5
registros para ello y en algunos casos son 6 y son:
•PXSEL y PXSEL2 Se utiliza para la selección de
función de cada pin, PXSEL2 no esta disponible en
todos los dispositivos como en el caso del
MSP430G2231
Fig.6. PXSEL descripción
Fig.7. Selección de puerto(Perifericos).
•PXDIR Nos será útil para poder seleccionar como
es que funcionaran los pines de cada puerto, es decir
como entradas o como salidas
Fig.8.PxDIR descripción
•PXIN En caso de que hayamos seleccionado un pin
como entrada podremos leer su estado con este
registro
Fig.9.PxIN descripción
•PXOUT Cuando se selecciono un pin como salida,
es con este registro con el cual podemos escribir
estados lógicos en el pin seleccionado
Fig.10.PxOUT descripción
•PXREN Este nos sirve para elegir si habilitamos
las resistencias PULL-UP o PULL-DOWN
Cabe mencionar que todos los registros aquí
mencionados son de 8 bits, gracias a esto se puede
relacionar la posición de cada bit individual con un
pin del encapsulado.
Fig.11.PxREN descripción
BANDERA DE INTERRUPCION PARA LOS
PUERTOS.
Es importante mencionar que las banderas de los
puertos al ser múltiples no son borradas
automáticamente si no que hay que borrarlas por
software mediante este registro ya que de lo
contrario el programa no seguirá su curso
normalmente, si no que se quedara en la rutina de
servicio a la interrupción.
Fig.12.Banderas en diferentes perifericos
4. 4
III. CONCLUSIÓN
Fig.13. MSP430
MSP430 cuenta con diferentes secciones y
aplicaciones a las cuales se pueden aplicar en la
vida cotidiana.
Gracias a los diferentes microcontroladores se
pueden lograr hacer grandes proyectos e
innovaciones, en esta práctica aprendí a utilizar las
banderas, el direccionamiento de periféricos,
interrupciones, modo ultra low energy y todo esto
en lenguaje ensamblador, este microcontrolador nos
ofrece más usos que se le pueden dar,
posteriormente con mis demás practicas espero
demostrar algunas de sus muchas capacidades de
este microcontrolador.
REFERENCIAS
[1] http://sockeye.cs.washington.edu/teaching/micro/
[2] http://www.ti.com/lit/ds/symlink/msp430g2313.pdf
[3] http://coecsl.ece.illinois.edu/ge423/datasheets/msp430ref_
guides/launchpadusersguide.pdf
[4] http://www.javierlongares.com/arte-en-8-bits/msp430-
una-guia-de-referencia-en-castellano/
[5] http://microembebidos.com/2013/05/07/tutorial-msp430-
frecuencias-del-dco-smclk-and-lcd2x16-output/
[6] http://energia.nu/pin-maps/guide_msp430g2launchpad/
[7] Getting Started with the MSP430 Launchpad Escrito por
Adrian Fernandez,Dung Dang p.32
[8] https://books.google.com.mx/books?id=kf5MKK9wP-
4C&pg=PA17&dq=msp430g2553&hl=es&sa=X&ei=wq
LdVOT0B7X-
sASZ7YD4Aw&ved=0CC0Q6AEwAg#v=onepage&q=m
sp430g2553&f=false