You are on page 1of 10

Apuntes de microcontroladores msp430

Ortega.

M. en C. Enrique Lpez

INSTITUTO POLITCNICO
NACIONAL
ESCUELA SUPERIOR DE INGENIERA
ZACATENCO.

Apuntes de la materia de microcontroladores


Realizado por M. en C. Enrique Lpez Ortega

Objetivo general de la materia:


El alumno disear y construir diferentes circuitos electrnicos usando microcontroladores
modernos incluyendo su programacin con lenguaje C ++.
Objetivo general de los apuntes:
Servir como una base bibliogrfica, en la cual el alumno pueda consultar los temas que se cubren
durante el semestre de la materia de microcontroladores especficamente con el microcontrolador
msp430.
CONTENIDO SINTTICO:
I.- Conceptos y Caractersticas Generales de los Microcontroladores.
II.- Plataforma de Programacin en C ++.
III.- Estructura de Programacin.
IV.- Perifricos Analgicos.
V.- Perifricos Digitales.
VI.- Aplicacin Final.

Unidad 1 Conceptos y Caractersticas generales de los microcontroladores


Tema 1.1 El microcontrolador
Un microcontrolador es una micro computadora construida en un circuito integrado, este contiene un
microprocesador (CPU), memoria RAM, memoria ROM, y puertos de entrada y salida como mnimo;
generalmente tambin cuentan con temporizadores, convertidor analgico/digital, puertos serie entre
lo ms comn.
Actualmente existen en el mercado variedad de Microcontroladores una primera clasificacin
puede ser referida al tamao de sus registros internos existiendo los de 8,16 y 32 bits.
El microcontrolador PIC de microchip es de 8 bits mientras el msp430 de Texas Instruments es de 16
bits.
El tamao de los registros de un microcontrolador influye en su capacidad de procesamiento por

ejemplo un microcontrolador de 16 bits puede realizar una suma de 32 bits con tan solo 2
instrucciones mientras que para uno de 8 puede requerirse 4 o ms.
Cabe sealar que sin importar el microcontrolador o el fabricante cualquier microcontrolador puede
utilizarse para resolver un problema de diseo electrnico, por supuesto que siempre existirn
comparativas de desempeo.
Sin embargo a la hora de seleccionar un microcontrolador para un problema especfico han de
tomarse en cuenta parmetros como tamao fsico, recursos internos, costo, consumo de energa,
facilidad de programacin entre otras cosas.
Tema 1.1.1 diferencias entre microprocesador y microcontrolador.
Un microprocesador en un circuito integrado que realiza operaciones aritmticas, lgicas y de control
y requiere para funcionar de otros elementos tales como memorias, puertos de entrada y salida etc.
No es un sistema completo; Para formar una computadora le hacen falta los elementos antes
mencionados.
Un microcontrolador contiene un microprocesador, memorias, puertos de entrada y salida, es decir se
trata de una micro computadora funcional en un solo circuito integrado, es un sistema completo,
aunque bastante limitado en cuanto a recursos comparado con un sistema basado en microprocesador.
Los microprocesadores encuentran su campo de accin cuando se requiere gran procesamiento de
datos, es decir en la fabricacin de computadoras de escritorio, laptops y tabletas electrnicas.
Los Microcontroladores tienen mucha ventaja cuando se habla de realizar sistemas electrnicos tales
como equipos, instrumentos de medicin, sistemas de control y todo sistema que contenga electrnica
y no requiera de gran procesamiento de informacin. Ejemplo lnea blanca, equipos mdicos, de
comunicaciones, control industrial etc.
Cabe mencionar que frecuentemente se encuentran en estrecha comunicacin los micro controladores
con computadoras de escritorio. Es decir sistemas microcontrolador- computador- red.

Tema 1.2 Arquitectura interna.


Al referirnos a la arquitectura interna de un microcontrolador nos referimos a los recursos que el chip
contiene incluyendo por supuesto al CPU. Estos recursos se pueden encontrar en las hojas de datos
del fabricante del microcontrolador, entre los datos ms importantes se puede encontrar el tamao de
palabra de la CPU, la cantidad de memoria RAM, ROM o su derivado Flash, EEPROM, nmero de
lneas de Entrada/ Salida, si contiene temporizadores y de qu tamao son, si contiene convertidor
A/D, puertos de comunicacin serie asncrona o sincrona etc. Esto nos permite saber si el
microcontrolador servir para el propsito que se requiere en un momento dado.

Figura 1.2.1 Arquitectura interna del microcontrolador msp430G2553


Ms adelante presentamos la arquitectura interna del msp430G2553 de Texas Instruments

1.3 Organizacin de la memoria


Cuando se programa un microcontrolador en lenguaje de alto nivel como lo es el C no es necesario
conocer la organizacin de la memoria es decir el tamao y localidades que ocupa cuando se habla de
memoria se habla tanto de RAM como de ROM, porque generalmente basta con establecer el modelo
del microcontrolador dentro del ambiente de programacin.
En cambio si el microcontrolador ha de utilizar lenguaje ensamblador es obligatorio saber cunta
memoria se tiene, donde est localizada ya que por lo general el ambiente de programacin requiere
de la localidad donde se ha de guardar el programa y esta localidad debe de ser ROM, por otro lado
cuando se trabaja con memoria RAM ha de hacerse referencia a direcciones reales. la organizacin de
la memoria depende del modelo del microcontrolador aun siendo del mismo fabricante deber

referirse a las hojas de datos del microcontrolador. A continuacin se presenta la organizacin de la


memoria del msp430G2553.
Figura 1.3.1 Organizacin de la memoria interna los Microcontroladores msp430G2x3.

1.3.1Modelo de programacin (Arquitectura interna de la CPU)


Cuando se programa una computadora o un microcontrolador en un lenguaje de alto nivel como
lenguaje C por lo general no es necesario conocer qu registros tiene el microprocesador, sin embargo
esto es indispensable para alguien que pretenda programar en lenguaje ensamblador, la programacin
en ensamblador podra resultar ventajosa en muchas situaciones porque los cdigos programados en
este suelen ser hasta 6 veces ms compactos y por tanto ms eficientes que sus equivalentes en otros
lenguajes de alto nivel.
A continuacin se muestra el modelo de programacin del msp430G2553.
Como se observa en la figura 1.3.1.1 el CPU del msp430G2553 todos los registros son de 16 bits.

Figura 1.3.1.1 Modelo de programacin del msp430G2553.


Los primeros 4 registros son de control del CPU y los 12 restantes son registros de propsito general
equivalente a registros acumuladores o registros de trabajo. Una cualidad importante es que todas las
instrucciones trabajan de manera indistinta con cualquier registro.
El registro contador de programa (PC) es el registro contador de programa su objetivo es apuntar a
la instruccin siguiente con respecto a la que se est ejecutando en un instante dado, ejemplo si se est
ejecutando la primera instruccin el PC apunta a la instruccin 2. Este registro una vez inicializado
procede ha trabajar de forma automtica cambiando su contenido tras cada instruccin que se ejecuta.
El contenido de este registro representa la direccin de memoria donde comienza una instruccin.
Este registro esta present en cualquier CPU sin importar fabricante o modelo. Puesto que es
fundamental para estos sistemas.
Dependiendo del microcontrolador o microprocesador ser el nombre que se le d a este registro; el
tamao de este registro indica cuanta memoria puede ser direccionada (accesada). Por ejemplo para
un registro de 16 bits se tendr un tamao de memoria de 65536 direcciones es decir 2 elevado a la
16.

Registro Apuntador de Pila (Stack Pointer)


Este registro al igual que el PC apunta a una direccin de memoria, dicha direccin es la constante
guardada en el propio registro. As s un registro SP contiene la constante 100, entonces estar
apuntando a la direccin 100 de memoria.
Este registro debe de ser inicializado con una direccin vlida de RAM antes de que se utilice alguna
Subrutina o alguna interrupcin; Puesto que estos mecanismos utilizan la pila, el registro apuntador
de pila define en donde han de guardarse o de dnde han de obtenerse los registros que hacen uso de
la pila. Si este registro estuviese inicializado en un lugar que no fuese RAM, entonces el
funcionamiento de la CPU se vuelve fuera de control. Una vez inicializado en una direccin
apropiada, este registro no requiere ser manipulado por el programador, porque trabaja de forma
automtica. En el caso del msp430 este registro apuntador es de 16 bits, por tanto es capaz de apuntar
a cualquier direccin de memoria comprendida entre 0 y FFFFH.

Registro de status
El registro de estatus o registro de banderas como tambin se le conoce contiene algunos bits que
informan el estado actual del resultado despus de cada instruccin ejecutada, por ejemplo existe una
bandera que indica s el resultado es cero, otra bandera que indica s el resultado es un nmero
negativo, otra bandera que indica la ocurrencia del acarreo final y otra ms que indica la ocurrencia
del sobreflujo. Estos bits estn presentes en cualquier CPU (microprocesador). Por supuesto en los
Microcontroladores.
Cuando una situacin se produce, la bandera correspondiente se pone en valor 1 en caso contrario la
bandera queda finalmente con valor 0.
En el caso del msp430 las banderas s refieren con la siguiente nomenclatura.
C= (carry ). Acarreo final.
Z= ( zero )
Cero.
V= (overflow) Sobreflujo.
N= (negative) Negativo.
Cabe sealar que frecuentemente este registro utiliza algunos bits para controlar el permiso de
interrupciones mediante un bit de habilitacin, pueden existir otros bits para el control de energa del
CPU. a continuacin se muestra el registro de banderas (R2) del msp430.

Figura 1.3.1.2 Registro de status (banderas) del msp430.


GIE
= 1 Permiso del interrupciones habilitado.
CPUOFF= 1 CPU Apagada
OSCOFF= 1 Oscilador detenido.
SGO Y SG1. En sus posibles combinaciones binarias controlan el consumo de energa del
microcontrolador, restringiendo algunos recursos como el uso de relojes.
R3. Generador de constantes *solo para msp430.
Este registro hace posible una compactacin de cdigo en el compilador. El programador no puede
hacer uso de este registro. La compactacin se logra porque este registro completa algunas
instrucciones generando constantes que requeriran mayor uso de localidades ROM.
R4 al R15 Solo msp430.
Estos registros pueden utilizarse de forma genrica para realizar operaciones aritmticas, lgicas ,
como apuntadores a memoria, contadores, banderas, variables, RAM cache etc.
Cualquier registro funciona con cualquier instruccin.
1.3.2 Grupo de instrucciones
Cuando se programa en lenguaje ensamblador, se requiere conocer a fondo el set de instrucciones y
sus modos de direccionamiento (distintas formas de usar cada instruccin), a continuacin se muestra
el set de instrucciones del msp430 aunque no se explican porque el curso est enfocado en lenguaje
C, el cual tiene instrucciones propias.

Figura 1.3.2.1 grupo de instrucciones del msp430.

La familia de microcontroladores msp430 cuenta con un set de 51 instrucciones, mayora de ellas se


ejecuta en un solo ciclo de mquina, la excepcin son las instrucciones de brinco condicionales,
muchas de las instrucciones pueden ejecutarse en formatos de 8 o 16 bits. Otra caracterstica muy
ventajosa es que todas las instrucciones funcionan de forma indistinta con todos los registros del
CPU. Al tener la CPU un bus de direcciones de 16 bits y al mismo tiempo sus registros internos del
mismo tamao, estos ltimos, pueden servir como registros apuntadores a memoria, lo mismo que
sirven como acumuladores.
Una caracterstica interesante del set de instrucciones de esta familia de Microcontroladores es que
cuenta con instrucciones para suma en BCD, es decir permite sumar directamente 2 operandos en
BCD y obtener un resultado no en binario natural sino tambin en BCD, esto es ventajoso porque se
puede tener resultados listos para desplegar directamente sin la necesidad de una conversin previa de
binario a decimal, esto no pera con operandos en binario natural.
Otra caracterstica importante es que la misma memoria puede utilizarse como acumuladores, es decir
realizar directamente alguna operacin aritmtica y lgica, sin tener que utilizar los registros internos
del CPU.

1.3.3 Software de desarrollo


Para programar los Microcontroladores msp430 existen varios ambientes de programacin, uno de
ellos se llama Code Composer Studio de Texas Instruments, con este software se puede programar en
lenguaje ensamblador o lenguaje C, otro ambiente de programacin para este microcontrolador es
conocido como IAR, con respecto al primero requiere una computadora con menos prestaciones de
memoria, adems maneja un ambiente bastante amigable, en este apartado se hablar especficamente
del IAR. Este software se puede descargar de manera gratuita en la direccin www.iar.com.
Terceras partes han desarrollado ambientes para la programacin y depuracin de programas de los
microcontroladores de Texas Instruments; existe un software llamado IAR creado por IAR
SYSTEMS, que se puede bajar gratuitamente de la pgina www.iar.com o de la pgina de Texas
Instruments y que una vez instado permite la creacin, depuracin y programacin de la familia
MSP430 en conjunto con un programador de Texas como el MSP-FET430UIF. Cabe sealar que
estos microcontroladores tienen nter construida circuitera para poder observar el estado del
microcontrolador ver y modificar registros, memoria etc. y que adems se puede correr a pasos un
programa de servicio de interrupcin activo, cosa que hasta hace poco no era posible con los
microcontroladores de otros fabricantes.
9

You might also like