Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Departamento de Electrnica
Diciembre de 2003
Resumen
En el trabajo se realiza una introduccin a la familia de
microcontroladores MSP430 de Texas Instruments, analizando sus
caractersticas ms avanzadas y su interconexin con diversos perifricos
disponibles en la tarjeta de desarrollo EasyWeb de Olimex, tales como
memoria eeprom serial, mdulo de cristal lquido alfanumrico, puerto serial
RS232, y controlador ethernet.
El trabajo est orientado a los sistemas digitales y principalmente a la
programacin de microcontroladores. Se da una visin prctica del diseo
con microcontroladores, para lo cual si bien existe abundante
documentacin disponible, sta se encuentra dispersa y en algunos casos es
demasiado extensa. Esto representa un problema cuando no se tiene
demasiado tiempo para comenzar a trabajar. Por ello es de gran ayuda contar
con una gua que sirva de introduccin al tema del diseo con
microcontrolador. Para concretar esta gua se trabaj en laboratorio con la
tarjeta de desarrollo apoyado por los manuales y hojas de caractersticas de
cada componente en particular, as como bsqueda de informacin en
Internet.
ii
ndice de contenido
Resumen............................................................................................... ii
ndice de contenido ............................................................................. iii
ndice de figuras ................................................................................... v
ndice de tablas .................................................................................. vii
Prefacio ............................................................................................. viii
Introduccin ........................................................................................ ix
Captulo 1 El microcontrolador MSP430 ............................................... 1
1.1 Introduccin ....................................................................................... 1
1.2 Mapa de memoria e interrupciones ..................................................... 2
1.3 Los puertos de entrada y salida digital ................................................ 4
1.4 El mdulo de reloj............................................................................... 6
1.5 El multiplicador por hardware ............................................................ 8
1.6 Modos de bajo consumo...................................................................... 9
1.7 Los temporizadores............................................................................. 9
1.7.1 El temporizador watchdog ............................................................ 9
1.7.2 Los Temporizadores A y B........................................................... 10
1.7.3 El comparador analgico y los conversores anlogo a digital ....... 14
iii
Conclusiones ...................................................................................... 59
Referencias......................................................................................... 60
Anexo ................................................................................................. 62
iv
ndice de figuras
Figura 1-1 Designacin de patillas del microcontrolador .............................. 5
Figura 1-2 Mdulo de reloj........................................................................... 7
Figura 1-3 Diagrama del multiplicador por hardware ................................... 8
Figura 1-4 Modos del temporizador A como temporizador/contador. ......... 11
Figura 1-5 Modos del temporizador B como temporizador/contador .......... 12
Figura 1-6 Salidas del temporizador A en modo contador continuo ........... 13
Figura 1-7 Efecto del filtro pasabajos en la salida ..................................... 14
Figura 1-8 Diagrama del comparador analgico ........................................ 15
Figura 1-9 Diagrama del conversor anlogo a digital ................................. 16
Figura 1-10 Tiempos de muestreo y conversin......................................... 17
Figura 2-1 Tarjeta de desarrollo ................................................................ 19
Figura 2-2 Esquema de conexiones del microcontrolador .......................... 20
Figura 2-3 Diagrama de fuente de alimentacin ........................................ 21
Figura 2-4 Conexin de pulsadores........................................................... 22
Figura 2-5 Esquema de optoacoplador ...................................................... 22
Figura 2-6 Conexin de optoacopladores................................................... 23
Figura 2-7 Conexin de rels .................................................................... 23
Figura 2-8 Conexin a la memoria Flash................................................... 24
Figura 2-9 Conexin del display de cristal lquido ..................................... 24
Figura 2-10 Conexin del puerto serial ..................................................... 25
Figura 2-11 Conexiones de cable serial ..................................................... 25
Figura 2-12 Esquema de conectores ......................................................... 26
Figura 2-13 Conexin del controlador ethernet ......................................... 27
v
ndice de tablas
vii
Prefacio
El presente trabajo se encuentra estructurado en tres captulos que
introducen los conceptos bsicos sobre el trabajo con el microcontrolador
MSP430 y la utilizacin de los perifricos disponibles en la tarjeta de
desarrollo Easyweb.
El primer captulo proporciona una visin general sobre los distintos
componentes del microcontrolador y de sus diversas capacidades.
El segundo captulo trata sobre el diseo de la tarjeta de desarrollo a
utilizar, describiendo el circuito y justificando la eleccin de los componentes
que lo constituyen. En este captulo slo se tratan aspectos de hardware por
lo que es casi independiente del primer captulo.
El tercer captulo contiene mltiples referencias a los dos captulos
anteriores por lo que se recomienda su lectura posterior a los dos primeros.
En l se describen tcnicas de comunicacin entre perifricos, bsicamente
los disponibles en la tarjeta de desarrollo, se describe tanto los
requerimientos de hardware como de software para su interconexin.
viii
Introduccin
Al disear sistemas basados en un microcontrolador habitualmente es
necesario interconectar diversos componentes, por lo que es necesario
conocer las tcnicas utilizadas, los protocolos y estndares utilizados por los
distintos fabricantes y por las instituciones que rigen a la industria. Adems
el conocer distintas tcnicas le da al diseador herramientas adicionales al
momento de definir su estrategia o enfrentarse con nuevos procedimientos
que aparezcan en el futuro, o que pertenezcan al rea de trabajo en que se
desarrolla.
La variedad de protocolos y tcnicas de comunicacin entre perifricos
se pueden dividir entre seriales y paralelos, a su vez los seriales se dividen en
sincrnicos y asincrnicos. La diferencia entre stos radica en la presencia o
no de una seal de reloj en las lneas de comunicacin. En el mbito de la
comunicacin entre circuitos integrados dentro de la misma placa de circuito
impreso o a muy corta distancia, algunos centmetros o metros, la mayor
cantidad de protocolos que se encuentran son seriales debido a la poca
cantidad de lneas de comunicacin que se requieren.
De igual forma es necesario que el diseador conozca las ltimas
tcnicas de trabajo con microcontroladores, como emuladores en lnea,
interfaces para seales analgicas, ahorro de energa en sistemas porttiles,
y otros.
Un buen representante de los microcontroladores modernos es la
familia de microcontroladores MSP430 de Texas Instruments. Estos
microcontroladores de 16 bits son dispositivos de muy bajo consumo de
energa (desde pocos A hasta algunos mA), dependiendo del modo de bajo
consumo que el diseador elija, adems cuentan con conversores anlogo a
digital y comparadores para seales analgicas. El trabajo con este
microcontrolador se facilita por su capacidad de utilizar un emulador en
lnea con una interfaz JTAG, esto permite descargar cdigo a su memoria
Flash, leer y escribir el estado de la memoria RAM y sus registros, y ejecutar
el cdigo paso a paso desde una interfaz grfica. El estndar JTAG de IEEE
se encuentra presente en cada vez ms dispositivos, por lo que resulta
conveniente conocerlo. Otra ventaja de este microcontrolador es que debido a
su amplia utilizacin existen variadas herramientas de software para trabajar
con l, algunas incluso de libre distribucin como el GNU C Compiler portado
a la arquitectura.
A medida que se expande el uso de Internet y de las redes de
computadores toma cada vez ms fuerza la idea de tener dispositivos
conectados a la red para controlarlos o monitorearlos en forma remota desde
cualquier lugar con acceso a Internet. Algo que puede parecer algo oscuro y
ix
Captulo 1
El microcontrolador MSP430
1.1 Introduccin
El MSP430 de Texas Instruments es un microcontrolador con un
conjunto reducido de instrucciones (RISC) de 16 bits diseado especialmente
para aplicaciones que requieran un muy bajo consumo de energa, tales
como dispositivos porttiles. Adems mezcla seales analgicas y digitales en
un solo circuito, lo que simplifica el diseo del hardware, y reduce el costo,
debido a que no es necesario instalar conversores anlogo a digital por
separado. Por el hecho de trabajar con palabras de 16 bits es especialmente
indicado para ser programado en lenguajes de alto nivel, por ejemplo C o C++
para sistemas embebidos, generando un cdigo compacto y de rpida
ejecucin.
La principal fuente de informacin acerca de este dispositivo son: la
gua del usuario del MSP430[1] y las hojas de datos del dispositivo en
particular, en este caso del MSP430F149[2]. Su arquitectura corresponde a
un modelo Von-Neumann en el que tanto la memoria RAM y ROM comparten
un solo mapa de memoria de hasta 64KB. Posee un sistema de reloj
particularmente flexible que posee 3 osciladores independientes, pensados
para ahorrar energa. Adems incorpora una serie de perifricos mapeados a
memoria, tales como: 3 temporizadores, 8 canales de conversores anlogo a
digital, dos puertos seriales sincrnicos o asincrnicos de comunicacin, un
mdulo de multiplicacin por hardware, un comparador de niveles
analgicos, un mdulo controlador de memoria Flash que permite que el
dispositivo se reprograme a si mismo, o guarde informacin en un espacio de
memoria no voltil.
A continuacin se detallarn los aspectos ms relevantes de este
microcontrolador, especficamente del dispositivo MSP430F149, ya que con l
se realizar el trabajo posterior. En adelante se har referencia a los nombres
de los registros como figuran en los archivos de definiciones del compilador
de C (ver anexo), todos los compiladores utilizan la misma definicin
entregada por Texas Instruments, de forma de obtener mayor compatibilidad
entre ellos; en lugar de la direccin que ocupan en memoria. Cabe recordar
que los registros de funciones especiales y generales son de 16 bits, y las
direcciones de acceso a perifricos pueden ser de 8 16 bits dependiendo del
perifrico en cuestin
Uso
Tamao
Direccin
60KB
FFE0-FFFF
1100-FFFF
256 bytes
1000-10FF
Vector de interrupciones
Cdigo
Memoria de informacin
Tamao
ROM
Cargador de software
Tamao
1KB
0C00-0FFF
RAM
Tamao
2KB
0200-09FF
0100-01FF
0010-00FF
0000-000F
Perifricos 16 bits
Perifricos 8 bits
Registros especiales
Fl ags afectado
WDT IFG
Reset externo
KEYV
Watchdog
Memoria Flash
NMI
NMIIFG
(No)enmascarable
OFIFG
(No)enmascarable
0FFFCh
14
ACCVIFG
(No)enmascarable
T imer_B7
T BCCR0 CCIFG
Enmascarable
0FFFAh
13
T imer_B7
T BCCR1 al 6 CCIFGs,
Enmascarable
0FFF8h
12
T BIFG
Comparador_A
CAIFG
Enmascarable
0FFF6h
11
Watchdog timer
WDT IFG
Enmascarable
0FFF4h
10
USART 0 recepcin
URXIFG0
Enmascarable
0FFF2h
USART 0 transmisin
UT XIFG0
Enmascarable
0FFF0h
ADC12
ADC12IFG
Enmascarable
0FFEEh
T imer_A3
T ACCR0 CCIFG
Enmascarable
0FFECh
T imer_A3
T ACCR1 CCIFG,
Enmascarable
0FFEAh
T ACCR2 CCIFG,
T AIFG
I/O puerto 1
P 1IFG.0 al P 1IFG.7
Enmascarable
0FFE8h
USART 1 recepcin
URXIFG1
Enmascarable
0FFE6h
USART 1 transmisin
UT XIFG1
Enmascarable
0FFE4h
I/O puerto 2
P 2IFG.0 al P 2IFG.7
Enmascarable
0FFE2h
0FFE0h
0, menor
Con estas fuentes el mdulo de reloj genera las siguientes tres seales:
10
MCx
Modo
Descripcin
00
Detenido
01
Arriba
El temporizador
TACCR0(TBCL0)
10
Continuo
11
Arriba y abajo
cuenta
desde
cero
hasta
Para mayor claridad se muestran las siguientes figuras del manual del
usuario del microcontrolador.
11
13
14
V in V R
VR + VR
16
CONSEQx
Modo
Operacin
00
Un canal una
conversin
01
Secuencia de
canales
10
Repetir un canal
11
Repetir secuencia de
canales
17
18
Captulo 2
La tarjeta de desarrollo EasyWeb II
Para el trabajo en el laboratorio se eligi la tarjeta de desarrollo
EasyWeb II fabricada por Olimex, ver Figura 2-1. Se escogi esta tarjeta
debido a la gran cantidad de perifricos incorporados en relacin al costo de
la misma. Otros fabricantes ofrecen tarjetas de similares caractersticas pero
a ms del doble del precio.
A grandes rasgos consiste de un microcontrolador MSP430F149, con
un cristal de 8 MHz, un controlador de red CS8900A de Cirrus Logic con los
componentes externos correspondientes, un cambiador de niveles RS232 con
su respectivo conector DB9 hembra, un display de cristal lquido
alfanumrico de 16x2 caracteres, cuatro pulsadores, cuatro entradas
optoacopladas, 2 salidas activadas por rel, un zumbador, una memoria
flash serial de 64 KB en la tarjeta, conector para dispositivos iButton de
Dallas Semiconductor, patilla de entrada del reloj del temporizador A
disponible en conector, conector para los conversores anlogo a digital del
microcontrolador, conector para los pines JTAG del microcontrolador.
21
22
23
24
26
28
Captulo 3
Introduccin a protocolos de comunicacin entre
dispositivos
En el presente captulo se pretende introducir algunas formas y
protocolos de comunicacin entre dispositivos utilizados en sistemas con
microcontrolador.
Debido a la falta de un estndar para interconectar circuitos
integrados dentro de la misma placa de circuito o a cortas distancias,
algunos fabricantes han elaborado sistemas propietarios, lo que ha generado
una multiplicidad de protocolos incompatibles entre s, entre los ms
ampliamente utilizados se encuentran: SPI (Serial Peripheral Interface) de
Motorola, Microwire de National Semiconductor [5] e Inter Integrated Circuit
(I2C) de Philips. Adems existen muchos otros protocolos para aplicaciones
especficas, por ejemplo en la industria automotriz se han desarrollado una
gran cantidad de protocolos para comunicar dispositivos, solo por nombrar
algunos: Controller Area Network (CAN), ISO11783, Local Interconnect
Network (LIN), Media Oriented Systems Transport (MOST).
La mayora de ellos comparte dos caractersticas bsicas, la de operar
con los mismos niveles de voltaje que los dispositivos que interconectan, es
decir, no se necesitan cambiadores de nivel; y ser sincrnicos, lo que permite
una comunicacin confiable a pesar de las diferencias que puedan
producirse en los relojes de cada dispositivo, as un corrimiento en
frecuencia no producir errores en la transmisin o recepcin, debido a que
ambos dispositivos estn sincronizados con una seal de reloj nica para la
comunicacin.
A continuacin se detallarn las diferencias, entre Microwire, SPI e IC,
comparando sus ventajas y desventajas segn la aplicacin
Microwire y SPI son muy parecidos [6], ambos consisten en 3
terminales que llevan datos seriales de entrada, de salida y seal de reloj,
debido a esto son full duplex por naturaleza. Los dispositivos que
interconectan deben compartir los mismos niveles de tierra y VCC. Son tiles
en ambientes en los que existe un dispositivo maestro (el que genera la seal
de reloj) y uno o varios esclavos. Debido a que el protocolo no incluye
direccionamiento de dispositivos el maestro debe habilitar al dispositivo al
que se quiere comunicar a la vez que deshabilita a los dems, esto representa
una gran desventaja cuando existe ms de un esclavo ya que aumenta la
cantidad de pines necesarios en el microcontrolador (maestro) necesarios
para la comunicacin. Una de las ventajas de estos protocolos es que son
sensibles al canto de la seal, lo que la hace un poco ms inmune al ruido
29
31
33
Envo de comando de
escritura
Envo condicin de
STOP para comenzar
ciclo de escritura
Se
recibe
ACK?
No
Si
Siguiente operacin
34
El protocolo especifica que las seales SDA y SCL deben operarse con
conexiones de colector abierto para poder generar un wired AND en el bus,
en caso de que varios maestros quieran iniciar una comunicacin
simultneamente. El MSP430 es capaz de emular este tipo de conexin en
cualquiera de los pines de entrada y salida [9]. Esto se logra escribiendo un
cero en el registro de salida del puerto correspondiente y manejando el nivel
en la salida mediante el registro de direccin. Si se requiere un cero en la
salida, el pin se configura como salida, con lo que el valor de 0 escrito en el
registro se refleja en la salida. Si se quiere un 1 en la salida el pin se
configura como entrada, de esta forma la resistencia de pull up interna fija el
nivel en 1 de forma estable. La lectura se efecta siempre mediante el
registro de entrada del puerto.
35
36
La
mayor
dificultad
de
implementar
este
protocolo
en
microcontroladores radica en la generacin de los tiempos necesarios. Las
rutinas aunque simples dependern de factores como el reloj del
microcontrolador, posibles interrupciones, etc.
En forma general se puede resumir las operaciones en los siguientes
diagramas de flujo:
Escribir cero en la
lnea
Generar retardo de
480 S
Volver la lnea a
estado alto
Retardo de 70 S
39
Retardo de 15 S desde el
comienzo de la ranura
Se quiere
escribir
un 1
Si
Regresar la lnea a
estado alto
No
Mantener en estado bajo
40
41
Nmero de pin
Funcin
Tierra
VCC
7 - 14
42
R/W
D7
D6
D5
D4
D3
D2
D1
D0
Descripcin
Borrar display
ID
Habilitar
display,
intermitencia del cursor
SC
RL
DL
BF
Escribir carcter
posicin actual
Leer carcter
posicin actual
cursor
al
display
en
desde
display
en
Habilitar display/cursor:
D:
Enciende el display
C:
Enciende el cursor
43
B:
Cursor parpadeante
N:
F:
Direccin de memoria
Byte de informacin
44
45
46
Capa de aplicacin
Capa de presentacin
Capa de sesin
Capa de transporte
Capa de red
Capa de enlace de datos
Capa de aplicacin
Capa de transporte
Capa de Internet
Capa de red
Capa fsica
Figura 3-18 Modelo ISO/OSI versus modelo Internet
48
8
4
D[7..0]
A[3..0]
MSP430F149
CS8900A
IOR
IOW
50
Ethernet
El microcontrolador slo debe encargarse de formar las tramas
ethernet, es decir, incorporar en un paquete de hasta 1500 bytes informacin
sobre las direcciones fsicas de los controladores, generar cdigo de deteccin
de errores y empaquetar y desempaquetar informacin proveniente de la
capa de Internet. A su vez se comunica fsicamente con el controlador de red
por lo que debe programarse las funciones para configurar el controlador,
conocer la direccin a la que responde y los registros que se debe escribir. El
resto del protocolo ethernet: deteccin de colisin, acceso al medio, y otros
los realiza el controlador ethernet, as como la interfaz con el medio fsico.
Para ello el software utiliza dos mensajes: ARP Request para conocer la
direccin de otro dispositivo y ARP Reply para responder a los requerimientos
de otro dispositivo de red.
Protocolo Internet, IP
Este protocolo de la capa Internet se encarga de transmitir informacin
entre los protocolos de transporte y el de ethernet, contiene informacin
sobre la direccin lgica (direcciones IP) de los puntos de origen y destino,
adems se ocupa de fragmentar grandes flujos de datos en paquetes ms
pequeos que puedan ser transferidos por el protocolo ethernet. En este nivel
cada paquete es tratado como una unidad independiente, slo se asegura el
encabezado de informacin IP con un cdigo de verificacin de errores, pero
no se asegura que los datos sean transportados libres de errores o que
lleguen en el orden correcto si son fragmentados.
53
56
DoNetworkStuff()
Terminar
programa?
No
Si
Finalizar
58
Conclusiones
La familia de microcontroladores MSP430 posee excelentes
caractersticas para ilustrar las tcnicas modernas de diseo con
microcontroladores. La facilidad para utilizar los perifricos incorporados al
programar en lenguaje C, que gracias a su arquitectura de 16 bits y la
calidad de los compiladores resulta en cdigo compacto y muy bien
optimizado. Todo lo anterior permite que el usuario domine o al menos
conozca las bases de las tcnicas en un corto perodo de tiempo, lo que en un
curso de introduccin a tcnicas de diseo resulta vital. De la misma forma
el contar con una tarjeta de desarrollo como la EasyWeb con una gran
cantidad de perifricos de variados tipos incorporados permite avanzar en la
enseanza sin perder tiempo en detalles de armado y con problemas de
conexionado. Al mismo tiempo esta tarjeta de desarrollo utiliza las ltimas
tcnicas de depuracin y programacin en lnea que cada vez incorporan ms
dispositivos. Todo lo anterior tiene por objeto motivar a los usuarios a
desarrollar aplicaciones cada vez ms complejas, por ejemplo incorporar
conectividad a redes ethernet y a Internet a un sistema basado en
microcontrolador. As el sistema formado por la tarjeta de desarrollo Easyweb
basada en microcontrolador de la familia MSP430, unido al software y
herramientas de programacin y depuracin se convierte en un medio
excelente para introducir conceptos de tcnicas avanzadas de diseo e
interconexin de perifricos.
59
Referencias
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
60
[11]
61
Anexo
Archivo de encabezado de lenguaje C conteniendo las direcciones de
memoria de los registros y posiciones de memoria de los perifricos del
microcontrolador
MSP430F149
provisto
por
Texas
Instruments
/********************************************************************
*
* Standard register and bit definitions for the Texas Instruments
* MSP430 microcontroller.
*
* This file supports assembler and C development for
* MSP430x14x devices.
*
* Texas Instruments, Version 1.7
*
********************************************************************/
/************************************************************
* STATUS REGISTER BITS
************************************************************/
#define
#define
#define
#define
#define
#define
#define
#define
#define
C
Z
N
V
GIE
CPUOFF
OSCOFF
SCG0
SCG1
(0x0001)
(0x0002)
(0x0004)
(0x0100)
(0x0008)
(0x0010)
(0x0020)
(0x0040)
(0x0080)
LPM0
LPM1
LPM2
LPM3
LPM4
(CPUOFF)
(SCG0+CPUOFF)
(SCG1+CPUOFF)
(SCG1+SCG0+CPUOFF)
(SCG1+SCG0+OSCOFF+CPUOFF)
/************************************************************
* PERIPHERAL FILE MAP
************************************************************/
/************************************************************
* SPECIAL FUNCTION REGISTER ADDRESSES + CONTROL BITS
************************************************************/
#define
sfrb
#define
#define
IE1_
IE1
U0IE
WDTIE
(0x0000)
= IE1_;
IE1
(0x01)
/* Interrupt Enable 1 */
/* UART0 Interrupt Enable Register */
62