Está en la página 1de 11

ue

ba

CAPITULO 0. INTRODUCCION

xt

de

Pr

Algo de Historia
La historia de los microcontroladores est
a ntimamente relacionada con la historia de los
computadores y su componente m
as importante: el microprocesador. Antes de los microprocesadores, el dise
no de un circuito l
ogico requera de muchos elementos electronicos basados
en transistores, resistencias, etc, lo cual desembocaba en circuitos con muchos ajustes y fallos;
aunque se tuvieron algunos avances con la invencion del circuito integrado y las tecnicas de
baja y media escala de integraci
on, la cantidad de componentes era considerable (y ni que
hablar de los inicios, con los dise
nos con tubos de vaco: la primera computadora programable
ENIAC pesaba 30 toneladas, usaba 800 kil
ometros de cable, tena 17.000 tubos de vaco,
realizaba 100.000 operaciones por segundo y consuma 150 KWh). El primer microprocesador
lo construyo la empresa Intel, en 1971, con un bus de 4 bits (el 4004) y constaba de 2.300
transistores, y solo al a
no anunciaba ya la versi
on de 8 bits, el 8008 (con la increble velocidad
de 740 kHz) con 3.300 transistores. A los pocos a
nos, los microprocesadores Z80 de Zilog,
6502 de Motorola y el 8080 de Intel estaban disputandose la supremaca en el mercado. Los
sistemas con microprocesador, si bien redujeron drasticamente la cantidad de componentes de
un circuito, a
un requeran demasiado trabajo para construir con ellos sistemas de mediana
complejidad y sobre todo era considerable el espacio ocupado por el circuito impreso y todos
sus componentes (microprocesador, memoria RAM, memoria ROM, etc). Sin embargo el
microprocesador hizo posible el surgimiento de un mercado no despreciable de computadores
personales, cuando a
un no se haban consolidado como artculos de consumo masivo y
solo algunos entusiastas de la electr
onica se atrevan a comprarlo como artculo de lujo para
video-juegos, y/o para dise
nar peque
nos sistemas de instrumentacion.

Te

Es as como en 1975 aproximadamente, gracias al aumento en la densidad de integracion, la


empresa Intel inicia la difusi
on de un nuevo circuito para control, medicion e instrumentacion
al que llamaron microcomputador en un s
olo chip o de manera mas exacta MICROCONTROLADOR; la primera referencia comercial que tuvo exito, fue la familia MCS-48 utilizada
en controladores de teclados para el incipiente mercado del matrimonio Microsoft-IBM, el PC
(seg
un Wikipedia, de este chip se llegaron a vender varios de miles de millones, solo para
teclados de PCs). Luego Intel evolucion
o a la familia 805X, tal vez la mas exitosa familia de
todos los tiempos. M
as adelante ocurrieron algunos eventos que hicieron posible la masificacion
del uso de los microcontroladores: como en 1993, la primera version de microcontrolador con
memoria EEprom (borrable electricamente), el famoso PIC 16x84 por parte de la empresa
Microchip, que eliminaba la necesidad de utilizar lamparas de luz ultravioleta para cambiar el
contenido de la memoria Eprom de programa (esta era la u
nica opcion que tenan peque
nos
desarrolladores para hacer sus dise
nos, pues las versiones OTP, de un solo quemado solo tenan
sentido cuando ya el producto estaba terminado); y en ese mismo a
no la empresa Atmel
vi

vii

CAP
ITULO 0. INTRODUCCION

lanza un microcontrolador con memoria Flash, el AT89C51 (una versi


on compatible con el
famoso 8051 de Intel), que permite muchos m
as ciclos de escritura que la memoria EEProm,
y aumenta la velocidad de acceso. Hoy en da, compa
nas tan importantes como INTEL,
ATMEL, MICROCHIP, FREESCALE (MOTOROLA), DALLAS, PHILLIPS, RABBIT,
TEXAS INSTRUMENTS, por solo mencionar algunas, mantienen una fuerte competencia en
innovacion y producci
on de microcontroladores.

Memoria
RAM
ROM
EEPROM

Microprocesador
Buses
CU

ALU
REGS

ue
ba

Pero, Qu
e es un microcontrolador?
Para entender que es un microcontrolador, primero veremos en que consiste un sistema con
microprocesador, pues como ya se mencion
o un microcontrolador es la integracion en un solo
chip de un sistema con microprocesador, ver figura 1.
Buses

Dispositivos
de
entrada
y salida

(interruptores,
rels, teclado,
ratn, pantalla,
disco, etc.)

Figura 1: Sistema con microprocesador

Te

xt

de

Pr

En la memoria se almacenan los programas (habitualmente en la memoria ROM), y los datos


que este manipula (memoria RAM). Los puertos son los encargados de la comunicacion con los
dispositivos de entrada y salida. El microprocesador es el dispositivo principal y se encarga de
comunicarse continuamente por medio lneas especializadas (conocidas como buses de datos,
direcciones y de control) con los otros chips como las unidades de memoria ROM, unidades de
memoria RAM, puertos, etc. Cuando se ejecuta un programa, el microprocesador se encarga
de la b
usqueda, decodificaci
on y ejecuci
on de cada una de las instrucciones almacenadas en
la memoria. Una instrucci
on indica una operacion simple (operacion de transferencia como:
tomar o llevar datos hacia o desde de la memoria o de los puertos que controlan los dispositivos;
operacion aritmetica como: suma, resta, multiplicacion, etc; operaciones logicas como: and,
or, etc; operaciones que alteran la secuencia de las instrucciones como: saltar a ejecutar otras
instrucciones, retornar de un procedimiento, etc). La velocidad a la cual se ejecuta cada una
de las instrucciones depende de varios aspectos, principalmente de la frecuencia del reloj del
sistema, pero tambien de cuantos ciclos de reloj tome cada instruccion (complejidad en el
dise
no de la CPU), tambien depende de que tantos bits pueda transmitir por los buses de
datos en una sola operaci
on (tama
no del bus de datos). Que tan grande puede llegar a ser el
programa depende de cuanta memoria ROM contenga el sistema, pero condicionado al tama
no
del bus de direcciones. Cu
antos datos puede manipular el sistema (espacio para las variables
del programa), depende de que tan grande pueda llegar a ser la memoria RAM. Y, a cuales
dispositivos se pueda conectar, depende de la cantidad y complejidad de los chips de puertos
que contenga el sistema.
Entonces en un dise
no con microprocesador se escoge con cual microprocesador se implementara el sistema, lo cual determinar
a la frecuencia maxima de operacion, cuantas instrucciones
ejecutara por segundo y el tama
no m
aximo de la memoria ROM y la memoria RAM. Y de
acuerdo a la aplicaci
on en particular, se le agrega tanta memoria RAM y memoria ROM como
requiera el sistema (en realidad, se parte de un estimativo de acuerdo a cuantas instrucciones y
que tantos datos contendr
a el programa que se va a construir para dicha aplicacion). Ademas se
agregaran los puertos necesarios para controlar los dispositivos con los que deseemos comunicar
al sistema. Algunos sistemas con microprocesador pueden llegar a ser modulares en el sentido
de que pueden irse ajustando a diferentes condiciones al agregarle memoria o puertos, etc (por

viii
ejemplo un computador personal).

Microcontrolador
Memoria
CPU (micro)
ALU

CU

E/S

(interruptores,
rels, teclado,
ratn, pantalla,
disco, etc.)

REGS

ue
ba

Si bien un sistema con microprocesador puede


dise
narse a la medida de cada aplicaci
on, tiene
la desventaja de que al estar comformado por
componentes que est
an encapsulados en chips
diferentes, se ocupa mucho espacio y se consume mayor potencia. Estos son justamente los
inconvenientes que solucionan los microcontroladores al empaquetar todos los componentes en
un solo chip, tal como se muestra en la figura 2.

Figura 2: Sistema con microcontrolador

Pr

Debe tenerse en cuenta que incorporar en un solo chip todos los componentes disminuye el
espacio y la potencia consumida, pero por el mismo hecho los recursos internos disponibles
son limitados en cuanto a cantidad y capacidad, si se comparan con los que se podra disponer
en un sistema con microprocesador. Ahora bien, existen en el mercado una gran variedad de
referencias de microcontroladores, cada uno de los cuales tiene ventajas y desventajas que es
necesario identificar a la hora de elegirlo para una aplicacion, por eso es necesario conocer
cuales son las principales caractersticas que deben revisarse para juzgar la conveniencia, o no,
de un microcontrolador en particular.
Nomenclatura
Un microcontrolador se identifica por su nombre, el cual esta compuesto por varios factores:

de

Marca: Fabricante o tipo de microcontrolador (Microchip, PIC, ATMEL, ATMega)


Gama: Escala de microcontroladores (baja, media, alta)
Memoria - Programable: (Tipo de memoria para el area de programa (F Flash, el
micro se puede reprogramar, C el micro solo se programa una vez))

Modelo: Modelo del microcontrolador

xt

Frecuencia. M
axima frecuencia que soporta el microcontrolador usando reloj externo (en
MHz)

Te

Ejemplos: PIC16F628/04 y ATmega16 (todos son reprogramables)


Marca
PIC
AT

Gama
16 (media)
(8 bits) media

Memoria Programable
F

Modelo
628
mega

Frecuencia
04
16

Principales Caractersticas de los microcontroladores


La explicacion detallada de algunas de las caractersticas que mencionaremos a continuacion
se veran en captulos posteriores, por lo pronto diremos que incidencia tienen en el dise
no de
una aplicacion:
Memoria de Programa: La cantidad de memoria de programa es una medida de que tan
grande puede ser el programa que se va a quemar en el microcontrolador. Aunque nunca se
conoce a priori cual es el tama
no de un programa que a
un no se ha escrito, con el tiempo se


CAP
ITULO 0. INTRODUCCION

ix

Pr

ue
ba

aprende a establecer un estimativo de acuerdo a la complejidad de la aplicacion. Dentro de las


especificaciones que dan los fabricantes es necesario diferenciar cuando la medida este dada
en bytes o en instrucciones de m
aquina, pues cuando se da en bytes normalmente aparece
una cantidad mayor si se tiene en cuenta que algunas instrucciones (o en ciertos procesadores
todas) consumen dos y hasta tres bytes. La memoria de programa es no volatil, y puede estar
basada en diferentes tecnologas: Eprom, EEProm, Flash, ROM, OTP. Del primer tipo ya
casi no se encuentran dispositivos, pero por si acaso, indica que el dispositivo debe borrarse
exponiendolo a una fuente de luz ultravioleta (el tiempo de exposicion es de 5 a 15 min). El tipo
de memoria EEprom y Flash indica que es borrable electricamente, o sea que no requiere la
luz ultravioleta, sin embargo son preferibles los dispositivos con memoria Flash pues soportan
mas ciclos de escritura que los dispositivos EEprom, ademas se pueden programar con voltajes
mas bajos (lo cual simplifica el dise
no del quemador) y se caracteriza por su alta velocidad.
Las versiones ROM y OTP solo se pueden programar una vez, pero tienen la ventaja de que
sus costos son significativamente m
as bajos, la diferencia entre la version ROM y la version
OTP es que los dispositivos con ROM (Read Only Memory) solo pueden ser quemados por la
empresa que los produce (los dise
nadores envan el archivo con los codigos de maquina), y la
version OTP (One Time Programable) los programa el mismo dise
nador, pero solo una vez.
Estas dos u
ltimas versiones est
an pensadas para cuando ya se tiene un producto terminado y
se quieren abaratar costos. De cada referencia es posible encontrar la version OTP y la version
Eprom o Flash, debe tenerse en cuenta que para el desarrollo se trabaja con la version Flash,
as que si el costo es demasiado bajo, mucho cuidado porque puede estar comprando la version
OTP.

de

Por u
ltimo, cabe mencionar que los dispositivos con memoria Flash pueden traer la caracterstica de que el programa puede acceder a la memoria de programa para escribir en ella,
lo cual permite que se desarrollen aplicaciones que se modifiquen a s mismas (permitiendo
actualizar el software sin siquiera desmontar el chip), utilizando esta caracterstica cada vez es
mas frecuente sistemas de desarrollo basados en BootLoader (peque
no programa que permite
descargar otros programas y ejecutarlos, lo cual elimina la necesidad de un circuito quemador
para el desarrollo de aplicaciones).

Te

xt

Memoria RAM: Es una memoria de lectura y escritura, y su tama


no nos sirve para
identificar la cantidad de variables puede contener un programa (o que tan grandes pueden
ser los arreglos). Y como casi siempre un programa grande implica mas cantidad de variables,
los microcontroladores tienen una cantidad de memoria RAM proporcional a la cantidad de
memoria de programa. Pero, este es quiz
as el recurso mas limitante a la hora de dise
nar
aplicaciones, para alguien acostumbrado a dise
nar aplicaciones para PC, pues en vez de
medirse en Gigabytes se mide en bytes y si mucho llegara al orden de los kilobytes. Dentro de
las especificaciones que entregan los fabricantes, es importante distinguir cuando la cantidad
de memoria incluye la memoria consumida por los registros para el control del hardware, pues
como su nombre lo indica a pesar de ser posiciones de lectura/escritura, no estan disponibles
para que los utilicemos como variables.
Memoria EEprom/Flash de Datos: Si bien la memoria RAM tiene la ventaja de ser de
lectura y escritura, tiene la desventaja de ser volatil (es decir que cuando se interrumpe la
alimentacion sus datos se borran), y en algunas situaciones es conveniente recordar datos entre
las diferentes ejecuciones del programa, como por ejemplo sistemas de claves de acceso, cambios
en configuraciones, etc. (para una aplicaci
on en PC se recurra a un sistema de archivos).
Para hacerle frente a este tipo de condiciones casi todos los microcontroladores agregan una
peque
na cantidad de memoria EEprom o Flash a la cual puede tener acceso el programa
para leer y escribir datos, habitualmente a una velocidad mucho mas baja que a la que se

x
puede acceder a la memoria RAM y en un espacio de direcciones diferente al de la memoria
de Programa. Como la memoria RAM, es un recurso muy limitado y se mide en bytes o kilobytes.

ue
ba

Memorias Externas: A pesar de que los microcontroladores estan dise


nados precisamente
para aplicaciones en las cuales se piense reducir espacio al no requerir componentes adicionales,
algunas familias de microcontroladores agregan la posibilidad de que se conecten memorias
externas (como es el caso del ATMega 8515) para aumentar el tama
no de programa o la
memoria RAM convirtiendo algunos de sus puertos en buses de direcciones o de datos (algunos
fabricantes especifican que se puede comportar como microcontrolador o microprocesador).
De esta manera se pueden dise
nar sistemas mucho mas complejos sin tener que cambiar al
circuito cada que se quieran realizar cambios significativos en el hardware. Tambien existen
memorias externas que se pueden controlar por buses seriales I 2 C o SP I, permitiendo
almacenar mayor cantidad de datos sin tener que migrar a otro microcontrolador ni sacrificando lneas de puertos para su manejo, la desventaja en este caso sera la velocidad de acceso.

Pr

Capacidades de la CPU: A diferencia de las memorias en las cuales la comparacion consiste


simplemente en verificar el tama
no, la comparacion entre diferentes CPUs no es tan simple,
pues contiene varios t
opicos y es precisamente la combinacion de caractersticas la que hace a
un microcontrolador m
as eficiente o no para cierta aplicacion. Como se menciona mas adelante
la CPU esta ligada a una determinada familia, y por esta razon, habitualmente los desarrolladores hacen sus diferentes dise
nos en lo posible con microcontroladores que poseen la misma CPU.

de

El tama
no de los datos que viajan a traves de los buses internos del microprocesador y los
datos que pueden acceder a la ALU (Unidad aritmetica logica) con una sola operacion, es el
que permite establecer para que tipo de aplicaci
on se puede utilizar un microcontrolador, pues
en cierta forma se identifica cuan complejo puede llegar a ser el programa (de igual manera el
tama
no de las memorias est
a condicionado a este tama
no). As, existen microcontroladores de
8, 16 y 32 bits (mas adelante se explica en detalle en el apartado de familias).

La velocidad con que se pueden ejecutar las instrucciones depende de las tecnologas con la que
este dise
nado un microcontrolador, las m
as importantes son las que tienen que ver con como
se comunica con las diferentes memorias (de programa, y de datos) y el tama
no del repertorio
de instrucciones que es capaz de ejecutar.

Te

xt

En cuanto a la forma como se comunica con la memoria, se distingue la tecnologa Von


Neumann, en la cual se utiliza un mismo bus para acceder a la memoria RAM, memoria
ROM y a los perifericos y la tecnologa Harvard, en la cual se utiliza un bus separado para
cada tipo de memoria. Las CPUs que implementan tecnologas Harvard pueden ejecutar las
instrucciones con mayor velocidad, pues simult
aneamente pueden acceder a la memoria RAM
y a la memoria ROM, algo obviamente imposible en la tecnologa Von Neumann. La velocidad
a la cual ejecuta las instrucciones se conoce como ciclos de maquina, entonces en resumen la
tecnologa Harvard consume menos ciclos de m
aquina en la ejecucion de instrucciones que la
tecnologa Von Neumann.
El tama
no del repertorio de instrucciones est
a ligado ntimamente a cuantos circuitos de
procesamiento internos posee (una medida burda podra ser un circuito por cada instruccion
diferente que puede ejecutar), y a pesar de que a simple vista podra pensarse que es
preferible un microprocesador posea mayor cantidad de instrucciones en realidad surgieron dos
tecnologas seg
un el tama
no del repertorio de instrucciones, la tecnologa CISC (implementan
gran cantidad de instrucciones) y la tecnologa RISC (implementan pocas instrucciones). En
principio la tecnologa CISC tuvo gran acogida, pero a medida que se fue implementando mas


CAP
ITULO 0. INTRODUCCION

xi

Pr

ue
ba

instrucciones la separaci
on interna entre los circuitos fue haciendose mas peque
na, y esto a su
vez trajo consigo el hecho de que los chips se calentaban mas a mayor frecuencia de operacion,
lo que llevo a la paradoja de que si bien se podan ejecutar instrucciones mas complejas, estas
no podan ejecutarse sino hasta cierto lmite de frecuencia del oscilador. En contra partida,
en los microcontroladores con tecnologa RISC, se pueden ejecutar muy pocas instrucciones,
pero permiten utilizar frecuencias del oscilador mucho mas altas. Para entender este concepto,
pensemos que en alg
un programa en el que se calcula el producto de 2 n
umeros; cuando se
escribe el programa en ensamblador para un microcontrolador con tecnologa CICS, resulta
que basta con una instrucci
on MUL AB, pero en un microcontrolador con tecnologa RISC, al
poseer un repertorio de instrucciones tan peque
no no tiene una instruccion para implementar
el producto, entonces el programador debe implementarla utilizando instrucciones mas simples
como sumas y corrimientos, por ejemplo con 8 instrucciones. Pero estas 8 instrucciones se
pueden ejecutar con una frecuencia del oscilador 16 veces mayor que la frecuencia del procesador con tecnologa CISC. Entonces, a pesar de que se tienen que escribir mas instrucciones
con el procesador RISC, al poder ejecutarlas a una velocidad mas alta, se podran llegar
ejecutar en menor tiempo que la u
nica instrucci
on del procesador CISC. Para el programador
en ensamblador es m
as tedioso escribir un programa con tecnologa RISC, pues son programas
mas largos a los equivalentes con tecnologa CISC; sin embargo para el programador en un
lenguaje de alto nivel, el c
odigo fuente es el mismo, independientemente de si esta escribiendo
un programa para microcontrolador RISC o CISC.

de

Otra tecnologa que permiti


o disminuir el tiempo de ejecucion de las instrucciones es el
sistema de pipeline (tubera), termino que genericamente se aplica a un conjunto de elementos
procesadores de datos conectados en serie, en donde la salida de un elemento es la entrada del
siguiente. Mediante este sistema se logran interpretar varias fases de diferentes instrucciones
simultaneamente, de tal suerte que mientras un elemento lee la instruccion de la posicion
de memoria 3, otro elemento est
a decodificando la instruccion de la posicion 2, y otro mas
esta ejecutando la instrucci
on de la posici
on 1. (Sin pipeline, un procesador no empieza a ejecutar cada una de las fases de la instrucci
on siguiente hasta no haber terminado completamente
todas las fases de la instrucci
on actual).

xt

Control de Perif
ericos: El factor m
as importante a la hora de escoger un microcontrolador
para una aplicacion es que pueda manipular de manera apropiada el hardware al cual se va a
conectar y por esta raz
on existe una gran variedad de caractersticas que podemos encontrar
en cuanto a control de perifericos por parte de los microcontroladores:

Te

Entradas/Salidas: Todos los microcontroladores tienen puertos para comunicarse de manera


simple con el exterior (sin manejo de protocolo); en ellos se representa el nivel que hay en
algunos pines del microcontrolador, ya sea porque el nivel lo pone el programa (en cuyo caso
se dice que es una salida) o que lo ponga el hardware conectado a el (en este caso se dice
que es una entrada), generalmente en la aplicaci
on se define en un registro de configuracion el
comportamiento del pin, si como salida o como entrada.
Las entradas: de los microcontroladores funcionan a la misma tension que la tension
de alimentacion del mismo, a 5V o a 3V, pero en algunos de los que trabajan a 3V
de alimentacion tambien permiten entradas a 5V. Algunos pines contienen resistencias
de pull up (resistencias conectadas a Vcc) para eliminar la necesidad de conectarlas
externamente.

Las salidas: siguen siendo a la misma tension que la de alimentacion. Ademas pueden
tener salidas especializadas en entregar una corriente de salida importante, entre 10 y
25 mA para atacar directamente a LEDs o displays. Y tambien las hay con salida de

xii
colector abierto.
La corriente de salida que puede entregar un puerto hacia la carga con respecto a masa se
llama Sink (corriente con el pin como sumidero) y la corriente que puede suministrar una
salida con respecto al voltaje de alimentacion se llama Source (corriente con el pin como
fuente). Casi todos los microcontroladores pueden entregar mas corriente como sumidero
que como fuente.
Interrupciones externas e internas: Son unos circuitos especiales que permiten atender
de manera mas eficiente los eventos externos o internos que se presentan en las diversas
aplicaciones y sin los cuales se torna complejo el dise
no e implementacion de los programas .

ue
ba

TIMERs: Los TIMERs o temporizadores son contadores, que sus funciones basicas son la
medida o generacion de eventos basados en el tiempo. Los temporizadores normalmente miden
tiempo relativo al reloj interno del microcontrolador. Los hay de 8 o 16 bits y tpicamente tienen
las funciones de Input Capture (Captura de entrada) y Output Compare (Comparacion de
salida).
Input Capture: Esta funci
on permite cronometrar eventos externos para ser referenciados a un contador interno. Se puede medir un periodo de entrada, un ancho de pulso.

Pr

Output Compare: Se puede utilizar para realizar un simple retardo, generar interrupciones periodicas, generar frecuencias de salida variables o modulacion de anchos de pulso
(PWM).

de

PWM (pulse widths modulation - modulaci


on por ancho de pulso): La modulacion
del ancho de pulso se usa para generar una forma de onda con un periodo fijo y el ciclo de
trabajo variable. Los moduladores de ancho de pulso pueden tener diferentes velocidades y
resolucion. La velocidad est
a definida por el periodo y la resolucion por el n
umero de pasos
discretos del ciclo de trabajo. Un PWM de 8-bits permite especificar el ciclo de servicio en 256
pasos o 2 elevado a la 8.

xt

Un uso com
un del modulador del ancho de pulso, es la conversion D/A (de digital a analogico)
usando alg
un filtro externo. El voltaje anal
ogico generado es proporcional al ciclo de trabajo.
Teoricamente, un 50 % del ciclo de servicio generara aproximadamente la mitad del voltaje
analogico maximo y un 25 % del ciclo de servicio generara un cuarto del voltaje analogico
maximo. El modulador de ancho de pulso tambien se usa para controlar normalmente un
motor y para controlar la carga de una batera.

Te

ADC (Analogo Digital Converter - Convertidor an


alogo digital): Todos los Modulos
ADC soportan dos modos de conversi
on, en modo de conversion continua y en modo de
conversion simple y suelen ser de 8 y 10 bits, aunque en ning
un caso son de precision, debido
a que estan hechos con una tecnologa digital.
Solo en el caso de Analog Devices se puede hablar de convertidores A/D de precision, con la
familia de Microconverters, porque est
an fabricados a partir de convertidores con tecnologa
analogica que les han integrado un microcontrolador.
UART: Es una interconexi
on de comunicaci
on serie, asncrona, full duplex, que tienen
muchos microcontroladores, donde el usuario puede controlar la velocidad de transmision. Las
se
nales utilizadas son RxD y TxD. En algunos microcontroladores se permite la comunicacion
a 9 bits lo que permite crear peque
nas redes de microcontroladores con hardware/software
realmente simple. Si se colocan circuitos drivers de comunicacion adecuados se pueden hacer


CAP
ITULO 0. INTRODUCCION

xiii

comunicaciones RS232 o RS485.


SPI: Es una interconexi
on serie con tres hilos, sncrona y bidireccional. Se utiliza para la
interconexion de microcontroladores y sus perifericos (convertidores A/D, EEproms, drivers de
display, etc) u otros microcontroladores. Utiliza tres se
nales: reloj, dato -entrada, dato-salida .
Se ha convertido en est
andar de la industria, algunos microcontroladores permiten trabajar en
modo maestro o modo esclavo (de acuerdo a si controlan o no la se
nal de reloj).

ue
ba

I 2 C: Es una interconexi
on serie con dos hilos, sncrona y bidireccional. Se utiliza para la
interconexion de microcontroladores y sus perifericos (convertidores A/D, EEproms, drivers de
display) u otros microcontroladores. Desarrollado por Valvo/Philips.
Utiliza dos se
nales: SDA (Serial Data) y SCL (Serial Clock). Soporta el modo multimaster. El
dispositivo puede trabajar como receptor o como transmisor, dependiendo de sus funciones.
Cada dispositivo tiene su propia direcci
on de 7 bits. Cada direccion consiste com
unmente de una
parte fija (4 bits internos del chip) y de una parte de direccion variable (3 pines del dispositivo).

Pr

USB (Universal Serial Bus): El Bus Serie Universal USB, es un nuevo estandar de
entrada/salida para perifericos de PC que aporta a los usuarios, conexiones simples, faciles, y
funciones de conectar-y-funcionar (plug and play). Desarrollado inicialmente por un consorcio
de compa
nas lderes dentro de la industria del PC, el USB puede acomodar simultaneamente
hasta 127 dispositivos perifericos. Esta funcionalidad es implementada por Microchip en la
serie 18F2550 y el 18F4550 y por ATMEL en la serie AT90USB128

de

CAN (Controller Area Network): El busCAN desarrollado por Bosch Gmbh en


Alemania, ha sido utilizado principalmente para la comunicacion en automocion, pero tambien
se ha introducido en la industria como un est
andar. CAN es un canal de comunicacion serie
multiplexado, en el cual los datos son transferidos entre modulos electronicos distribuidos;
similar al SPI, con un protocolo mucho m
as robusto. Este protocolo permite la creacion de
redes dentro de un vehculo o sistema industrial con una gran tolerancia de errores en ambientes
industriales. Esta funcionalidad es implementada por Microchip en la serie PIC18F452 y por
ATMEL en la serie AT90CAN128

Te

xt

Ethernet: La comunicaci
on tipo Ethernet es compleja, ya que requiere un procesador rapido
y un periferico de comunicaci
on potente. Motorola ha desarrollado el primer microcontrolador
de 32 bits de bajo costo con Ethernet 10/100 MHz incluido, se denomina Tarifa o MCF5272 y
esta basado en la familia ColdFire. Tambien los microprocesadores de 32 bits de Intel (Pentium y
ARM) y de ST (STPC) contienen este periferico, mientras que ATMEL posee el AT91SAM9260.
Circuito Oscilador: Un microcontrolador es un circuito secuencial sncrono, y por esta
razon necesita un componente que genere pulsos de manera regular, este componente puede
ser externo o interno. Dentro de las especificaciones de los microcontroladores uno de los
principales datos es la m
axima frecuencia de operacion, dicho valor sera una medida de que
tantas instrucciones ser
a capaz de ejecutar en un segundo (se usa el termino MIPS, o millones
de instrucciones por segundo), al inverso de la frecuencia de operacion se le conoce como ciclo
de reloj. Sin embargo para comparar dos microcontroladores de diferente familia, debe tenerse
en cuenta la cantidad de ciclos de reloj que toma un ciclo de maquina (tiempo en que se ejecuta
una parte de las fases de lectura-decodificaci
on-ejecucion de una instruccion), y la cantidad
promedio de ciclos de m
aquina que toma una instruccion en la CPU de cada microcontrolador.
Se pueden utilizar resonadores cer
amicos y en algunos microcontroladores de 8 bits se permite

xiv
tambien usar un R-C (resistencia-condensador) externos o internos (proporcionando de esta
forma dos pines mas de entrada/salida), para aplicaciones de poca precision a muy bajo costo.
La incorporacion de un circuito PLL integrado en el microcontrolador, permite utilizar cristales
de cuarzo para poder generar frecuencias en m
ultiplos enteros del cristal de referencia. Por
ejemplo, usando el PLL se puede proporcionar hasta una frecuencia de bus del orden de los MHz
usando un cristal del orden de los kHz de muy bajo costo. Al poder trabajar a frecuencias bajas
se reduce el consumo. El uso del PLL reduce la generacion de ruido (EMI), en comparacion con
los cristales de frecuencias m
as altas y no son necesarios los osciladores. De todas maneras se
pueden utilizar igualmente osciladores, para mayor precision. El tipo de oscilador que se utilizara en una aplicaci
on debe escogerse en el momento de quemado (programado) de la aplicacion.

Pr

ue
ba

Consumo de Potencia: El consumo en todos los sistemas electronicos es un factor a


tener en cuenta, sobre todo si se aplica a sistemas portatiles alimentados con bateras. Da
a da salen nuevos dispositivos con consumos mas bajos, pero todos los microcontroladores
han a
nadido elementos que hacen subir el consumo. La tecnologa Flash permite disminuir
el consumo de los dispositivos. Al poder utilizar un microcontrolador con un oscilador a
cristal de 32kHz baja el consumo, siempre que se programe el PLL interno a frecuencias
bajas. Algunos microcontroladores permiten desconectar perifericos para bajar el consumo,
as por ejemplo, un temporizador tiene un bit de encendido y si no se activa dicho modulo
estara desconectado. Tambien los nuevos microcontroladores poseen instrucciones SLEEP o
WAIT que permiten poner al microcontrolador en estado de espera, desconectando la mayora
de los componentes y dejando activos solo los estrictamente necesarios (TIMERs, y alguna
circuitera de interrupciones). Tambien se tienen familias de microcontroladores que trabajan
con niveles de voltaje de 3V, lo cual obviamente disminuye el consumo. La familia de mas bajo
consumo es la MSP430 de Texas Instruments.

de

Circuitos de protecci
on contra fallas: Desde hace alg
un tiempo los microcontroladores
utilizan diversos supervisores del funcionamiento de la CPU, estos circuitos son habilitados o
deshabilitados en el momento de programar el microcontrolador, y algunos requieren un dise
no
especial del software:

Te

xt

WDT (Watch Dog Timer):Se denomina Watch Dog Timer o COP (Computer Operating
Properly), a un contador que corre libremente, proporciona proteccion al resetear el sistema si no es borrado dentro de un periodo determinado (este periodo es seleccionable por
hardware-software). Permite a la CPU recuperarse a un estado conocido, despues de eventos
inesperados, como ruido electrico. El programa debe entonces dise
narse de tal forma que este
TIMER nunca se rebose, si la aplicaci
on corre normalmente.
POR (Power On Reset): El power -on reset ocurre cuando una transicion positiva se
detecta en VDD. El Power -On Reset se usa estrictamente para condiciones de desconexiones
de alimentacion y no se debe usar para detectar cualquier perdida en la tension de alimentacion.
Para esto, se debe utilizar un circuito de inhibicion por bajo voltaje (LVI), para detectar
cualquier perdida de tensi
on de alimentaci
on.
La circuitera de power-on mantiene un retardo (en algunos microcontroladores este tiempo es
programable) para que el oscilador se ponga activo. Si el pin externo de RESET esta a un nivel bajo, y pasa a alto se esperar
a un retardo, antes de que internamente se ponga en estado alto.
LVI (Low Voltage Inhibit) o Brown-Out: El LVI para proteger el sistema durante una
cada de alimentaci
on, haciendo un Reset a la CPU cuando la alimentacion cae por debajo
de cierto valor. Cuando el voltaje vuelve a su nivel nominal, la CPU continuara el trabajo. En


CAP
ITULO 0. INTRODUCCION

xv

algunos sistemas se puede elegir el voltaje de disparo.


Circuitos de protecci
on de c
odigo: Cuando se programa el microcontrolador se puede
especificar que el c
odigo no pueda ser ledo externamente, y de esta forma se evita que el
programa sea copiado. Sin embargo, se debe tener en cuenta que con esta opcion no existe
forma de validar el c
odigo con el c
odigo generado por el compilador, as que habitualmente se
trabaja en la fase de desarrollo con estos bits deshabilitados y solo cuando se tiene el producto
final para distribuir se activan estos bits. Algunos dispositivos tienen la posibilidad de proteger
solo alguna parte del c
odigo, y/o proteger tambien la memoria EEprom de datos.

ue
ba

Familias de microcontroladores: Las empresas fabricantes de microcontroladores habitualmente desarrollan una serie de microcontroladores basados en un microprocesador o CPU (en
alguna literatura se menciona como n
ucleo), a cada uno de ellos se le acondicionan diferentes
cantidades de memoria RAM, memoria ROM, con mas o menos puertos de E/S simple o
con puertos de comunicaci
on especializado. Al conjunto de microcontroladores que poseen un
mismo n
ucleo se le conoce como familia.

Pr

De las especificaciones del microcontrolador, el mas preponderante es el que tiene que ver con
la cantidad de bits que puede transmitir en un momento dado. Y de acuerdo al tama
no del
bus se tiene la siguiente clasificaci
on de las familias de microcontroladores:

de

Gama Baja: Las CPU m


as peque
nas son de 8 bits y cubren un amplio abanico de
aplicaciones de prop
osito general, de bajo costo, compactas, pero a la vez potentes. Dedicados fundamentalmente a tareas de control (electrodomesticos, cabinas telefonicas,
smart-cards, algunos perifericos de ordenadores, etc.). Tambien se usan mucho como perifericos de otros micros m
as grandes.
Gama Media: Las CPU de 16 bits, est
an destinadas a aumentar la potencia de calculo,
principalmente, y a aumentar las capacidades de memoria de programa y memoria de
datos, pudiendo expandir el bus externamente. Usados en tareas de control con cierto
grado de procesamiento (control en autom
ovil, telefonos moviles, PDAs,...).

xt

Gama Alta: Las CPU de 32 y 64 bits, estan destinadas a cubrir campos como multimedia, alta capacidad de proceso, as como un mayor direccionamiento. Normalmente
pueden expandir los buses externamente. Usados en aplicaciones como celulares inteligentes, videoconsolas, tablet-pc, etc.

Te

Dise
no de sistemas basados en microcontrolador: El dise
no de un sistema basado
en microcontrolador parte de escoger el microcontrolador que re
una todas las caractersticas internas que requiere la aplicaci
on, as la cantidad de componentes logicos adicionales
sera mnima (en lo posible ninguno). Pero tambien deben tenerse en cuenta aspectos como:
disponibilidad en el mercado, y costos, pues de nada sirve un microcontrolador con unas muy
buenas caractersticas, si no se consigue en el comercio local (aunque las compras por internet
hacen que cada vez sea m
as irrelevante este aspecto), o el precio del producto final no es
competitivo. Se debe disponer tambien de herramientas de hardware y software necesarias para
desarrollar la aplicaci
on, es decir contar como mnimo con el circuito quemador, un entorno
de programacion en un lenguaje que se domine, documentacion sobre el hardware interno del
microcontrolador, y si es posible, contar con libreras que permitan el desarrollo rapido de la
aplicacion.
Entornos de programaci
on y circuitos de quemado: Para poder implementar las
aplicaciones en los microcontroladores es necesario utilizar un entorno de desarrollo integrado

xvi
(IDE - o entorno de programaci
on) en el cual se edita, compila, y depura la aplicacion; en el
apendice A se describen dos de los entornos m
as usados para las familias de microcontroladores
analizados en el presente texto: el entorno SourceBoost para los microcontroladores PICs y
el entorno AVR Studio, para los microcontroladores Atmel. Cabe indicar que ademas del
software, es necesario contar con un circuito que permita quemar y/o ejecutar la aplicacion.

Te

xt

de

Pr

ue
ba

Para realizar el proceso de quemado se pueden tener varias opciones: desde programadores
de bajo voltaje que pueden armarse con dos resistencias conectadas al puerto paralelo,
quemadores comerciales que permiten correr paso a paso las aplicaciones para depuracion;
hasta sistemas con BootLoaderque permiten descargar la aplicacion y ejecutarla en el mismo
circuito (eliminando la necesidad de tener un circuito quemador y un circuito de aplicacion).
En internet hay varios sitios especializados donde se pueden comprar estos quemadores, o
proyectos para hacer en casacon los dise
nos de circuitos esquematicos y PCB, de quemado
tanto para microcontroladores Atmel como para PICs, e inclusive para los dos tipos, ya sea por
el puerto paralelo, por el puerto serial o los m
as modernos que utilizan el puerto USB (por ejemplo: feng3.cool.ne.jp/en/pg5v2.html, www.electronickits.com/kit/complete/prog/ck1708.htm,
electronics-diy.com/avr programmer.php, www.al-williams.comapp1.htm). Cualquiera sea la
opcion, se debe tener en cuenta que adem
as del circuito se debe contar con el firmware(termino utilizado para indicar el software interno de una aplicacion con microcontrolador
o con alg
un sistema programable) del circuito; y con el software del PC. En la categora de
sistemas con BootLoader, se destaca el sistema Arduino que consiste en un circuito basico con
un microcontrolador AVR (de prestaciones muy similares al ATmega16), y un sistema de
expansion, con conexi
on USB, a nivel de software se cuenta con un entorno de programacion
muy simple; a partir de dicho sistema se dispone de una serie de circuitos cuyo hardware y
software son de codigo abierto y continuamente salen nuevos productos para este sistema con la
ventaja de disponer de los dise
nos de hardware y las libreras con las rutinas basicas de manejo,
ademas de un inteligente sistema de interconexion entre modulos, (tambien existe, aunque
menos difundida una versi
on que trata de emular el arduino utilizando un microcontrolador
de la familia pics 18fxx, llamado picduino). La recomendacion es que se disponga de alg
un
circuito de estos para que pueda ver el comportamiento del circuito real (cada vez es mas
com
un que solo se llegue a la simulaci
on en un entorno como el Proteus, pero una simulacion
nunca reemplazara a la aplicaci
on de verdad y no pocas veces ocurre que en la simulacion
no pueden apreciarse ciertos errores que son evidentes en el sistema real como por ejemplo
parpadeos en sistemas de LEDs, pero curiosamente tambien ocurre lo contrario, algunas veces
la simulacion presenta errores que no ocurren en el sistema real; debe tenerse en cuenta que
estos programas de simulaci
on no est
an completamente terminados y pueden cometer errores
en la interpretacion de como simular alg
un componente del hardware que hace parte del
circuito).

También podría gustarte