Está en la página 1de 46

DISPOSITIVOS LGICOS MICROPROGRAMABLES

Microcontroladores 2.2

Introduccin

Desde la invencin del circuito integrado, el desarrollo


constante de la electrnica digital ha dado lugar a dispositivos
cada vez ms complejos. Entre ellos los microprocesadores y los
microcontroladores.
El objetivo principal de esta prctica es que el alumno logre
un entendimiento bsico de los microcontroladores y obtenga
los conocimientos necesarios para la programacin de estos
dispositivos y para el diseo de sistemas digitales y/o analgicos
basados en ellos.
Se pretende explicar conceptos cuya vigencia se mantendr
en un periodo mas o menos largo, centrndose en la familia de
microcontroladores PIC16, concretamente en el PIC16F84, por
que existe mucha informacin, es fcil de encontrar y barato.
Limitarse a un tipo de PIC no se considera importante, ya que si
se comprende bien un microcontrolador, los dems pueden
aprenderse con facilidad partiendo del primero. Adems, el
estudio de un microcontrolador particular elimina la posibilidad
de una presentacin superficial o confusa y permite enfrentarse
a problemas reales en la prctica.
Para estar al tanto de las innovaciones se recomienda que se
mantenga en contacto con la pagina web de Microchip
Technology, http://www.microchip.com, solo as se podr
obtener un conocimiento completo y actualizado, tanto de los
aspectos que aqu se tratan, como de los nuevos que vayan
surgiendo.

La forma de estructurar el tema responde a la experiencia de


que, para quien por primera vez estudia microcontroladores,
resulta ms sencillo aprender primero lo referente a la
construccin interna del dispositivo y la arquitectura general de
los microcontroladores y una vez entendido pasar entonces a los
detalles.

Que es un microcontrolador
Los microcontroladores estn conquistando el mundo. Estn
presentes en nuestro trabajo, en nuestra casa y en nuestra vida,
en general. Se pueden encontrar controlando el funcionamiento
de los ratones y teclados de los computadores, en los telfonos,
en los hornos microondas y los televisores de nuestro hogar.
Pero la invasin acaba de comenzar y el siglo XXI ser testigo
de la conquista masiva de estos diminutos computadores, que
gobernarn la mayor parte de los aparatos que fabriquemos y
usamos los humanos.

DISPOSITIVOS LGICOS MICROPROGRAMABLES

Microcontroladores 2.3

Controlador y microcontrolador
Recibe el nombre de controlador el dispositivo que se emplea
para el gobierno de uno o varios procesos. Por ejemplo, el
controlador que regula el funcionamiento de un horno elctrico
dispone de un sensor que mide constantemente su temperatura
interna y acta sobre las resistencias para mantener la
temperatura dentro del rango establecido.
Aunque el concepto de controlador ha permanecido invariable
a travs del tiempo, su implementacin fsica ha variado
frecuentemente. Hace tres dcadas, los controladores
electrnicos se construan exclusivamente con componentes de
lgica
discreta,
posteriormente
se
emplearon
los
microprocesadores, que se rodeaban con chips de memoria y
E/S sobre una tarjeta de circuito impreso. En la actualidad,
todos los elementos del controlador se han podido incluir en un

solo circuito integrado, el cual recibe el nombre de


microcontrolador. Realmente consiste en un sencillo pero
completo ordenador contenido en un circuito integrado.
Un microcontrolador es un circuito integrado de alta escala de
integracin que incorpora la mayor parte de los elementos que
configuran un controlador y que contiene todos los componentes
fundamentales de un ordenador, aunque de limitadas
prestaciones y que se suele destinar a gobernar una sola tarea.
En su memoria slo reside un programa que controla en
funcionamiento de una tarea determinada, sus lneas de
entrada/salida se conectan a los sensores y actuadores del
dispositivo a controlar y, debido a su pequeo tamao, suele ir
integrado en el propio dispositivo al que gobierna.
Un microcontrolador dispone normalmente de los siguientes
componentes:
Procesador o CPU (Unidad Central de Proceso).
Memoria RAM para contener los datos.
Memoria
para
el
ROM/EPROM/EEPROM/Flash.

programa

tipo

Lneas de E/S para comunicarse con el exterior.


Diversos mdulos para el control de perifricos
(temporizadores,
puertos
serie
y
paralelo,
CAD:
Conversores
Analgico/Digital,
CDA:
Conversores
Digital/Analgico, etc.).
Generador de impulsos de reloj
funcionamiento de todo el sistema.

que

sincronizan

Los productos que para su regulacin incorporan


microcontrolador disponen de las siguientes ventajas:

el
un

Aumento de prestaciones: un mayor control sobre un


determinado elemento representa una mejora considerable
en el mismo.
Aumento
de
la
fiabilidad: al
reemplazar
el
microcontrolador por un elevado nmero de elementos
disminuye el riesgo de averas y se precisan menos
ajustes.
Reduccin del tamao en el producto acabado: La
integracin del microcontrolador en un circuito integrado
disminuye el volumen, la mano de obra y los stocks.
Mayor flexibilidad: las caractersticas de control estn
programadas por lo que su modificacin slo necesita
cambios en el programa de instrucciones.
Debido a su reducido tamao es posible montar el
controlador en el propio dispositivo al que gobierna. En este
caso el controlador recibe el nombre de controlador empotrado
(embedded controller).

DISPOSITIVOS LGICOS MICROPROGRAMABLES

Microcontroladores 2.4

Aplicaciones de los microcontroladores


Si slo se dispusiese de un modelo de microcontrolador, ste
debera tener muy potenciados todos sus recursos para poderse
adaptar a las exigencias de las diferentes aplicaciones. Esta
potenciacin supondra en muchos casos un despilfarro. En la
prctica cada fabricante de microcontroladores oferta un
elevado nmero de modelos diferentes, desde los ms sencillos
hasta los ms poderosos. Es posible seleccionar la capacidad de
las memorias, el nmero de lneas de E/S, la cantidad y
potencia de los elementos auxiliares, la velocidad de
funcionamiento, etc. Por todo ello, un aspecto muy destacado
del diseo es la seleccin del microcontrolador a utilizar.

Cada vez existen ms productos que incorporan un


microcontrolador con el fin de aumentar sustancialmente sus
prestaciones, reducir su tamao y coste, mejorar su fiabilidad y
disminuir el consumo.
Algunos fabricantes de microcontroladores superan el milln
de unidades de un modelo determinado producidas en una
semana. Este dato puede dar una idea de la masiva utilizacin
de estos componentes.
Los microcontroladores estn siendo empleados en multitud
de sistemas presentes en nuestra vida diaria, como pueden ser
juguetes,
horno
microondas,
frigorficos,
televisores,
ordenadores, impresoras, mdems, el sistema de arranque de
nuestro coche, etc. Y otras aplicaciones con las que
seguramente
no
estaremos
tan
familiarizados
como
instrumentacin electrnica, control de sistemas en una nave
espacial, etc. Una aplicacin tpica podra emplear varios
microcontroladores para controlar pequeas partes del sistema.
Estos pequeos controladores podran comunicarse entre ellos y
con un procesador central, probablemente ms potente, para
compartir la informacin y coordinar sus acciones, como, de
hecho, ocurre ya habitualmente en cualquier PC.
Los microcontroladores se encuentran por todas partes:
Sistemas de comunicacin: en grandes automatismos
como centrales y en tlefonos fijos, mviles, fax, etc.
Electrodomsticos:
lavadoras,
hornos,
frigorficos,
lavavajillas, batidoras, televisores, vdeos, reproductores
DVD, equipos de msica, mandos a distancia, consolas,
etc.
Industria informtica: Se encuentran en casi todos los
perifricos; ratones, teclados, impresoras, escner, etc.
Automocin: climatizacin, seguridad, ABS, etc.
Industria: Autmatas, control de procesos, etc

Sistemas de supervisin, vigilancia y alarma: ascensores,


calefaccin, aire acondicionado, alarmas de incendio, robo,
etc.
Otros:
Instrumentacin,
electromedicina,
(smartcard), sistemas de navegacin, etc.

tarjetas

La distribucin de las ventas segn su aplicacin es la


siguiente:
Una tercera parte se absorbe en las aplicaciones
relacionadas con los ordenadores y sus perifricos.
La cuarta parte se utiliza en las aplicaciones de consumo
(electrodomsticos, juegos, TV, vdeo, etc.)
El 16% de las ventas mundiales se destin al rea de las
comunicaciones.
Otro 16% fue empleado en aplicaciones industriales.
El resto de los microcontroladores vendidos en el mundo,
aproximadamente un 10% fueron adquiridos por las
industrias de automocin.

DISPOSITIVOS LGICOS MICROPROGRAMABLES

Microcontroladores 2.5

Tambin los modernos microcontroladores de 32 bits van


afianzando sus posiciones en el mercado, siendo las reas de
ms inters el procesamiento de imgenes, las comunicaciones,
las aplicaciones militares, los procesos industriales y el control
de los dispositivos de almacenamiento masivo de datos.
Ejemplo
automvil:

de

aplicacin

de

un

microcontrolador

en

el

DISPOSITIVOS LGICOS MICROPROGRAMABLES

Microcontroladores 2.6

El mercado de los microcontroladores


Aunque en el mercado de la microinformtica la mayor
atencin la acaparan los desarrollos de los microprocesadores,
lo cierto es que se venden cientos de microcontroladores por
cada uno de aqullos.
Produccin mundial de microcontroladores por ao:

Existe una gran diversidad de microcontroladores. Quiz la


clasificacin ms importante sea entre microcontroladores de 4,
8, 16 32 bits. Aunque las prestaciones de los
microcontroladores de 16 y 32 bits son superiores a los de 4 y 8
bits, la realidad es que los microcontroladores de 8 bits dominan
el mercado y los de 4 bits se resisten a desaparecer. La razn de
esta tendencia es que los microcontroladores de 4 y 8 bits son
apropiados para la gran mayora de las aplicaciones, lo que hace
absurdo emplear micros ms potentes y consecuentemente ms
caros. Uno de los sectores que ms tira del mercado del
microcontrolador es el mercado automovilstico. De hecho,
algunas de las familias de microcontroladores actuales se
desarrollaron pensando en este sector, siendo modificadas
posteriormente para adaptarse a sistemas ms genricos. El
mercado del automvil es adems uno de los ms exigentes: los

componentes electrnicos deben operar bajo condiciones


extremas de vibraciones, choques, ruido, etc. y seguir siendo
fiables. El fallo de cualquier componente en un automvil puede
ser el origen de un accidente.

DISPOSITIVOS LGICOS MICROPROGRAMABLES

Microcontroladores 2.7

En cuanto a las tcnicas de fabricacin, cabe decir que


prcticamente la totalidad de los microcontroladores actuales se
fabrican con tecnologa CMOS (Complementary Metal Oxide
Semiconductor). Esta tecnologa supera a las tcnicas anteriores
por su bajo consumo y alta inmunidad al ruido.
Ms adelante, en el apartado Qu microcontrolador
emplear? se mostrar una tabla con las distintas familias de
algunos fabricantes con su direccin en Internet y algunos
datos.

Recursos comunes
Al estar todos los microcontroladores en un solo circuito
integrado, su estructura fundamental y sus caractersticas
bsicas son muy parecidas. Todos deben disponer de los bloques
esenciales Procesador, memoria de datos y de instrucciones,
lneas de E/S, oscilador de reloj y mdulos controladores de
perifricos. Sin embargo, cada fabricante intenta enfatizar los
recursos ms idneos para las aplicaciones a las que se destinan
preferentemente.
En este apartado se hace un recorrido de todos los recursos
que se hallan en todos los microcontroladores describiendo las
diversas alternativas y opciones que pueden encontrarse segn
el modelo seleccionado.
Arquitectura bsica

Aunque inicialmente todos los microcontroladores adoptaron


la arquitectura clsica de von Neumann, en el momento
presente se impone la arquitectura Harvard.

DISPOSITIVOS LGICOS MICROPROGRAMABLES

Microcontroladores 2.9

La arquitectura de von Neumann se caracteriza por disponer


de una sola memoria principal donde se almacenan datos e
instrucciones de forma indistinta. A dicha memoria se accede a
travs de un sistema de buses nico (direcciones, datos y
control) mientras que la arquitectura Harvard dispone de dos
memorias independientes, una que contiene slo instrucciones y
otra slo datos. Ambas disponen de sus respectivos sistemas de
buses de acceso y es posible realizar operaciones de acceso
(lectura o escritura) simultneamente en ambas memorias.

Los microcontroladores PIC responden a la arquitectura


Harvard.
El procesador o CPU
Es el elemento ms importante del microcontrolador y
determina sus principales caractersticas, tanto a nivel hardware
como software.
Se encarga de direccionar la memoria de instrucciones,
recibir el cdigo OP de la instruccin en curso, su decodificacin
y la ejecucin de la operacin que implica la instruccin, as

como la bsqueda de los operandos y el almacenamiento del


resultado.
Existen tres orientaciones en cuanto a la arquitectura y
funcionalidad de los procesadores actuales.
CISC: Un gran nmero de procesadores usados en los
microcontroladores estn basados en la filosofa CISC
(Computadores de Juego de Instrucciones Complejo).
Disponen de ms de 80 instrucciones mquina en su
repertorio, algunas de las cuales son muy sofisticadas y
potentes, requiriendo muchos ciclos para su ejecucin. Una
ventaja de los procesadores CISC es que ofrecen al
programador instrucciones complejas que actan como
macros.
RISC: Tanto la industria de los computadores comerciales
como la de los microcontroladores estn decantndose
hacia la filosofa RISC (Computadores de Juego de
Instrucciones Reducido). En estos procesadores el
repertorio de instrucciones mquina es muy reducido y las
instrucciones son simples y, generalmente, se ejecutan en
un ciclo. La sencillez y rapidez de las instrucciones
permiten optimizar el hardware y el software del
procesador.
SISC: En los microcontroladores destinados a aplicaciones
muy concretas, el juego de instrucciones, adems de ser
reducido, es "especfico", o sea, las instrucciones se
adaptan a las necesidades de la aplicacin prevista. Esta
filosofa se ha bautizado con el nombre de SISC
(Computadores de Juego de Instrucciones Especfico).

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Memoria

Microcontroladores 2.10

En los microcontroladores la memoria de instrucciones y


datos est integrada en el propio circuito integrado. Una parte
debe ser no voltil, tipo ROM, y se destina a contener el
programa de instrucciones que gobierna la aplicacin. Otra parte
de memoria ser tipo RAM, voltil, y se destina a guardar las
variables y los datos.
Hay
dos
peculiaridades
microcontroladores de los PC's:

que

diferencian

los

1. No existen sistemas de almacenamiento masivo como


disco duro o disquetes.
2. Como el microcontrolador slo se destina a una tarea en la
memoria de programa, slo hay que almacenar un nico
programa de trabajo.
La memoria de datos (RAM) en estos dispositivos es de poca
capacidad pues slo debe contener las variables y los cambios
de informacin que se produzcan en el transcurso del programa.
Por otra parte, como slo existe un programa activo, no se
requiere guardar una copia del mismo en la RAM pues se
ejecuta directamente desde la memoria de programa (ROM).
El usuario de PC est habituados a manejar Megabytes de
memoria, pero los diseadores con microcontroladores trabajan
con capacidades de memoria de programa de 512 bytes, 1K, 2K
(hasta unos 64K) y de RAM de 20 bytes, 68 bytes, 512 bytes
(hasta unos 4K).
Segn el tipo de memoria de programa que dispongan los
microcontroladores, la aplicacin y utilizacin de los mismos es
diferente. Se describen las cinco versiones de memoria no
voltil que se pueden encontrar en los microcontroladores del
mercado:
1. ROM con mscara
Es una memoria no voltil de slo lectura cuyo contenido se
graba durante la fabricacin del chip.

Mscara viene de la forma cmo se fabrican los circuitos


integrados. Estos se fabrican en obleas que contienen varias
decenas de chips. Estas obleas se obtienen a partir de procesos
fotoqumicos, donde se impregnan capas de silicio y oxido de
silicio, y segn convenga, se erosionan al exponerlos a la luz.
Como no todos los puntos han de ser erosionados, se sita
entre la luz y la oblea una mscara con agujeros, de manera
que donde deba incidir la luz, esta pasar. Con varios procesos
similares pero ms complicados se consigue fabricar los
transistores y diodos que componen un circuito integrado.
El elevado coste del diseo de la mscara slo hace
aconsejable el empleo de los microcontroladores con este tipo
de memoria cuando se precisan cantidades superiores a varios
miles de unidades.
2. OTP
El microcontrolador contiene una memoria no voltil de slo
lectura "programable una sola vez" por el usuario. OTP (One
Time Programmable). Es el usuario quien puede escribir el
programa en el chip mediante un sencillo grabador controlado
por un programa desde un PC. La versin OTP es recomendable
cuando es muy corto el ciclo de diseo del producto, o bien, en
la construccin de prototipos y series muy pequeas.
Tanto en este tipo de memoria como en la EPROM, se suele
usar la encriptacin mediante fusibles para proteger el cdigo
contenido.

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Microcontroladores 2.11

3 EPROM
Los microcontroladores que disponen de memoria EPROM
(Erasable Programmable Read OnIy Memory) pueden borrarse y
grabarse muchas veces. La grabacin se realiza, como en el
caso de los OTP, con un grabador gobernado desde un PC. Si,

posteriormente, se desea borrar el contenido, disponen de una


ventana de cristal en su superficie por la que se somete a la
EPROM a rayos ultravioleta durante varios minutos. Las cpsulas
son de material cermico y son ms caros que los
microcontroladores con memoria OTP que estn hechos con
material plstico. Hoy da se utilizan poco, siendo sustituidas por
memorias EEPROM o Flash.
4 EEPROM
Se trata de memorias de slo lectura, programables y
borrables
elctricamente
EEPROM
(Electrical
Erasable
Programmable Read OnIy Memory). Tanto la programacin
como el borrado, se realizan elctricamente desde el propio
grabador y bajo el control programado de un PC. Es muy
cmoda y rpida la operacin de grabado y la de borrado. No
disponen de ventana de cristal en la superficie.
Los microcontroladores dotados de memoria EEPROM una vez
instalados en el circuito, pueden grabarse y borrarse cuantas
veces se quiera sin ser retirados de dicho circuito. Para ello se
usan "grabadores en circuito" que confieren una gran flexibilidad
y rapidez a la hora de realizar modificaciones en el programa de
trabajo.
El nmero de veces que puede grabarse y borrarse una
memoria EEPROM es finito, por lo que no es recomendable una
reprogramacin continua. Hoy da estn siendo sustituidas por
memorias de tipo Flash.
Se va extendiendo en los fabricantes la tendencia de incluir
una pequea zona de memoria EEPROM en los circuitos
programables para guardar y modificar cmodamente una serie
de parmetros que adecuan el dispositivo a las condiciones del
entorno.
Este tipo de memoria es relativamente lenta.
5 FLASH

Se trata de una memoria no voltil, de bajo consumo, que se


puede escribir y borrar. Funciona como una ROM y una RAM
pero consume menos y es ms pequea.
A diferencia de la ROM, la memoria FLASH es programable en
el circuito. Es ms rpida y de mayor densidad que la EEPROM.
La alternativa FLASH est recomendada frente a la EEPROM
cuando se precisa gran cantidad de memoria de programa no
voltil. Es ms veloz y tolera ms ciclos de escritura/borrado.
Son idneas para la enseanza y la Ingeniera de diseo.
Las memorias EEPROM y FLASH son muy tiles al permitir
que los microcontroladores que las incorporan puedan ser
reprogramados "en circuito", es decir, sin tener que sacar el
circuito integrado de la tarjeta. As, un dispositivo con este tipo
de memoria incorporado al control del motor de un automvil
permite que pueda modificarse el programa durante la rutina de
mantenimiento peridico, compensando los desgastes y otros
factores tales como la compresin, la instalacin de nuevas
piezas, etc. La reprogramacin del microcontrolador puede
convertirse en una labor rutinaria dentro de la puesta a punto.

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Microcontroladores 2.12

Puertos de Entrada y Salida


La principal utilidad de las patillas que posee la cpsula que
contiene un microcontrolador es soportar las lneas de E/S que
comunican al computador interno con los perifricos exteriores y
segn los controladores de perifricos que posea cada modelo
de microcontrolador, se destinan a proporcionar el soporte a las
seales de entrada, salida y control.
Todos los microcontroladores destinan algunas de sus patillas
a soportar lneas de E/S de tipo digital, esto es, todo o nada. Por
lo general, estas lneas se agrupan de ocho en ocho formando
Puertos. Las lneas digitales de los Puertos pueden configurarse

como Entrada o como Salida cargando un 1 un 0 en el bit


correspondiente de un registro destinado a su configuracin.
Reloj principal
Todos los microcontroladores disponen de un circuito
oscilador que genera una onda cuadrada de alta frecuencia, que
configura los impulsos de reloj usados en la sincronizacin de
todas las operaciones del sistema. Esta seal del reloj es el
motor del sistema y la que hace que el programa y los
contadores avancen.
Generalmente, el circuito de reloj est incorporado en el
microcontrolador y slo se necesitan unos pocos componentes
exteriores para seleccionar y estabilizar la frecuencia de trabajo.
Dichos componentes suelen consistir en un cristal de cuarzo
junto a elementos pasivos o bien un resonador cermico o una
red R-C.
Aumentar la frecuencia de reloj supone disminuir el tiempo
en que se ejecutan las instrucciones pero lleva aparejado un
incremento del consumo de energa y de calor generado.

Recursos especiales
Cada fabricante oferta numerosas versiones de una
arquitectura bsica de microcontrolador. En algunas ampla las
capacidades de las memorias, en otras incorpora nuevos
recursos, en otras reduce las prestaciones al mnimo para
aplicaciones muy simples, etc. La labor del diseador es
encontrar el modelo mnimo que satisfaga todos los
requerimientos de su aplicacin. De esta forma, minimizar el
coste, el hardware y el software.
Los principales recursos
microcontroladores son:

especficos

Temporizadores o "Timers".
Perro guardin o "Watchdog".

que

incorporan

los

Proteccin ante fallo de alimentacin o "Brownout".


Estado de reposo o de bajo consumo.
Conversor A/D.
Conversor D/A.
Comparador analgico.
Modulador de anchura de impulsos o PWM.
Puertos de comunicacin.

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Microcontroladores 2.13

Temporizadores o "Timers"
Se
emplean
para
controlar
periodos
de
tiempo
(temporizadores) y para llevar la cuenta de acontecimientos que
suceden en el exterior (contadores).
Para la medida de tiempos se carga un registro con el valor
adecuado y a continuacin dicho valor se va incrementando o
decrementando al ritmo de los impulsos de reloj o algn
mltiplo hasta que se desborde y llegue a 0, momento en el que
se produce un aviso.
Cuando se desean contar acontecimientos que se
materializan por cambios de nivel o flancos en alguna de las
patillas del microcontrolador, el mencionado registro se va
incrementando o decrementando al ritmo de dichos impulsos.
Perro guardin o "Watchdog"
Cuando un ordenador personal se bloquea por un fallo del
software u otra causa, se pulsa el botn del reset y se
reinicializa el sistema.

En la mayora de los casos y a diferencia de un ordenador


personal, un microcontrolador funciona sin el control de un
supervisor y de forma continuada las 24 horas del da y 365 das
al ao. El Perro guardin consiste en un temporizador que,
cuando se desborda y pasa por 0, provoca un reset
automticamente en el sistema.
Se debe disear el programa de trabajo que controla la tarea
de forma que refresque o inicialice al Perro guardin antes de
que provoque el reset. Si falla el programa o se bloquea, el
programa no refrescar al Perro guardin y, al completar su
temporizacin, provocar el reset del sistema.
Proteccin ante fallo de alimentacin o "Brownout"
Se trata de un circuito que resetea al microcontrolador
cuando el voltaje de alimentacin (VDD) es inferior a un voltaje
mnimo ("brownout"). Mientras el voltaje de alimentacin sea
inferior al de brownout el dispositivo se mantiene reseteado,
comenzando a funcionar normalmente cuando sobrepasa dicho
valor. Esto es muy til para evitar datos errneos por
transiciones y ruidos en la lnea de alimentacin.
Estado de reposo de bajo consumo
Son abundantes las situaciones reales de trabajo en que el
microcontrolador debe esperar, sin hacer nada, a que se
produzca algn acontecimiento externo que le ponga de nuevo
en funcionamiento. Para ahorrar energa, (factor clave en los
aparatos porttiles), los microcontroladores disponen de una
instruccin especial (SLEEP en los PIC), que les pasa al estado
de reposo o de bajo consumo, en el cual los requerimientos de
potencia son mnimos. En dicho estado se detiene el reloj
principal y se "congelan" sus circuitos asociados, quedando
sumido en un profundo "sueo" el microcontrolador. Al activarse
una interrupcin ocasionada por el acontecimiento esperado, el
microcontrolador se despierta y reanuda su trabajo. Para
hacernos una idea, esta funcin es parecida a la opcin de
Suspender en el men para apagar el equipo (en aquellos PCs
con administracin avanzada de energa).

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Microcontroladores 2.14

Conversor A/D (CAD)


Los microcontroladores que incorporan un Conversor A/D
(Analgico/Digital) pueden procesar seales analgicas, tan
abundantes en las aplicaciones. Suelen disponer de un
multiplexor que permite aplicar a la entrada del CAD diversas
seales analgicas desde las patillas del circuito integrado.
Conversor D/A (CDA)
Transforma los datos digitales obtenidos del procesamiento
del computador en su correspondiente seal analgica que saca
al exterior por una de las patillas de la cpsula. Existen muchos
dispositivos de salida que trabajan con seales analgicas.
Comparador analgico
Algunos
modelos
de
microcontroladores
disponen
internamente de un Amplificador Operacional que acta como
comparador entre una seal fija de referencia y otra variable
que se aplica por una de las patillas de la cpsula. La salida del
comparador proporciona un nivel lgico 1 0 segn una seal
sea mayor o menor que la otra.
Tambin hay modelos de microcontroladores con un mdulo
de tensin de referencia que proporciona diversas tensiones de
referencia que se pueden aplicar en los comparadores.
Modulador de anchura de impulsos o PWM
Son circuitos que proporcionan en su salida impulsos de
anchura variable, que se ofrecen al exterior a travs de las
patillas del encapsulado. Resulta util para sistemas de control de
potencia, como por ejemplo motores.
Puertos de comunicacin

Con objeto de dotar al microcontrolador de la posibilidad de


comunicarse con otros dispositivos externos, otros buses de
microprocesadores, buses de sistemas, buses de redes y poder
adaptarlos con otros elementos bajo otras normas y protocolos.
Algunos modelos disponen de recursos que permiten
directamente esta tarea, entre los que destacan:
UART, adaptador de comunicacin serie asncrona.
USART, adaptador
asncrona

de

comunicacin

serie

sncrona

Puerto paralelo esclavo para poder conectarse con los


buses de otros microprocesadores.
USB (Universal Serial Bus), el conocido bus serie para los
PC.
Bus I2C, que es un interfaz serie de dos hilos desarrollado
por Philips.
Interface SPI, un puerto serie sncrono.
CAN (Controller Area Network), para permitir la adaptacin
con redes de conexionado multiplexado desarrollado
conjuntamente por Bosch e Intel para el cableado de
dispositivos en automviles. En EE.UU. se usa el J185O.
TCP/IP, ya existen microcontroladores con un adaptador de
comunicacin para este protocolo.
Tanto el I2C en televisores, como el Bus CAN en automviles,
fueron diseados para simplificar la circuitera que supone un
bus paralelo de 8 lneas dentro de un televisor, as como para
librar de la carga que supone una cantidad ingente de cables en
un vehculo.

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Microcontroladores 2.15

Herramientas de desarrollo
Las herramientas de desarrollo estn formadas por un
conjunto de programas e interfaces que permiten realizar los
proyectos de la forma ms eficiente posible.
Las principales herramientas de ayuda al desarrollo de
sistemas basados en microcontroladores se describen a
continuacin
Ensamblador. La programacin en lenguaje ensamblador
puede resultar un tanto ardua para el principiante, pero permite
desarrollar programas muy eficientes, ya que otorga al
programador el dominio absoluto del sistema. Los fabricantes
suelen proporcionar el programa ensamblador de forma gratuita
y en cualquier caso siempre se puede encontrar una versin
gratuita para los microcontroladores ms populares.
Compilador. La programacin en un lenguaje de alto nivel
(como C o Basic) permite disminuir el tiempo de desarrollo de
un producto y si adems est familiarizado con C o Basic es una
buena opcin. No obstante, cuando el compilador convierta el
cdigo del programa a un lenguaje ensamblado, cada lnea de
cdigo del programa en lenguaje de alto nivel habr generado
bastantes ms lneas de cdigo en lenguaje ensamblador,
normalmente en una relacin de uno a tres. Esto significa que
para utilizar un lenguaje de alto nivel necesitaremos un
microcontrolador con una capacidad de memoria relativamente
grande.
Si el programa que estamos desarrollando necesita utilizar
nmeros con decimales, o con notacin cientfica o se utilizan
operaciones complejas, como pueden ser las trigonomtricas, es
casi obligado utilizar un lenguaje de alto nivel. Pero si lo que se
va a hacer es manipular bits en registros, entradas, salidas y
clculos sencillos, el lenguaje ensamblado es la mejor opcin.
Las versiones ms potentes de compiladores suelen ser muy
caras, aunque para los microcontroladores ms populares

pueden encontrarse versiones


compiladores gratuitos.

demo

limitadas

incluso

Como compilador gratuito puede utilizarse el compilador C


GNU, que es un compilador C de cdigo abierto tan bueno como
los compiladores C comerciales pero que sin embargo tiene un
proceso de instalacin que no es sencillo. Adems hay que
comprobar que arquitecturas de microcontrolador soporta.
Algunas de las cuales son MSP430 de TI, AVR de Atmel y HC11
de Motorola, (ver www.gnu.org y www.fsf.org). Tambin puede
conseguirse un compilador C GNU en binario ya construido. Por
ejemplo para la arquitectura ARM puede conseguirse un
compilador C GNU binario para win32 desde www.gnuarm.com,
que trabaja con lnea de comandos e incluye un depurador de
cdigo. Para obtener un entorno de desarrollo (IDE) para
windows que pueda utilizarse con el conjunto de herramientas
GNU puede utilizarse la aplicacin VIDE, que puede conseguirse
en www.objectcentral.com/vide.htm.
Simulador. Se trata de software que es capaz de ejecutar en
un PC programas realizados para el microcontrolador. Los
simuladores permiten tener un control absoluto sobre la
ejecucin de un programa, siendo ideales para la depuracin de
los mismos. Su gran inconveniente es que es difcil simular la
entrada y salida de datos del microcontrolador. Tampoco
cuentan con los posibles ruidos en las entradas, pero, al menos,
permiten el paso fsico de la implementacin de un modo ms
seguro y menos costoso, puesto que ahorraremos en
grabaciones de chips para la prueba in-situ.
Placas de evaluacin. Se trata de pequeos sistemas con
un microcontrolador ya montado y que suelen conectarse a un
PC desde el que se cargan los programas que se ejecutan en el
microcontrolador. Las placas suelen incluir visualizadores LCD,
teclados, LEDs, fcil acceso a los pines de E/S, etc. Pueden
incluir un programa de control o sistema operativo que recibe el
nombre de programa monitor. El programa monitor de algunas
placas de evaluacin, aparte de permitir cargar programas y
datos en la memoria del microcontrolador, puede permitir en
cualquier momento realizar ejecucin paso a paso, monitorizar

el estado del microcontrolador o modificar


almacenados los registros o en la memoria.

los

valores

Emuladores en circuito. Se trata de un instrumento que se


coloca entre el PC anfitrin y el zcalo de la tarjeta de circuito
impreso donde se alojar el microcontrolador definitivo. El
programa es ejecutado desde el PC, pero para la placa de la
aplicacin es como si lo hiciese el mismo microcontrolador que
luego ir en el zcalo. Presenta en pantalla toda la informacin
tal y como luego suceder cuando se coloque la cpsula.
Programador. Es un dispositivo que conectado a un PC
permite grabar en el microcontrolador el programa desarrollado.
Algunos puede fabricarlos uno mismo (ver Programador PIC y
EEPROM JDM y Programador JDMD) y resultan muy econmicos.
Tambin existe software gratuito para programar no ya solo
microcontroladores sino tambin otros dispositivos, como
memorias (ver Programacin de PIC con ic-prog). Actualmente
se tiende a realizar la programacin en la propia placa de
utilizacin mediante ISP, In System Programmation o ICSP, In
Circuit Serial Programation. De esta manera se puede
programar al microcontrolador una vez est montado en la placa
del circuito utilizando una conexin de dos, tres o cuatro
terminales. Para utilizar esta tcnica se utiliza un programador
que suele ser muy sencillo y que en algunos casos puede
construir uno mismo.
Otra posibilidad es utilizar un "cargador de arranque", muy
util en la etapa de desarrollo de un programa. Un cargador de
arranque es un pequeo programa en el microcontrolador que
est montado en la placa del circuito que se est desarrollando
y que puede comunicarse con las herramientas de desarrollo
(que se van a utilizar para escribir el cdigo del programa de la
aplicacin) a travs de un enlace serie, como puede ser RS232,
USB, I2C o un bus CAN.
El programa cargador de arranque debe interpretar comandos
para leer, grabar y borrar la parte de memoria reservada para el
programa de la aplicacin. Cuando se desea verificar el
programa que se est desarrollando se inicia la comunicacin

con el programa cargador de arranque, que carga el cdigo de


programa en la memoria de programa del microcontrolador.
Despus el programa cargador de arranque transfiere el control
al programa cargado y entonces se puede ejecutar y verificar el
programa cargado. Esta operacin de carga y prueba puede
realizarse tantas veces como sea necesario.
Los requerimientos que tiene que cumplir el microcontrolador
a utilizar son:
Suficiente memoria de programa para alojar tanto el
cargador de arranque como el programa en desarrollo.
Que el microcontrolador permita que pueda modificarse la
memoria de programa por si mismo.
Un puerto serie para la comunicacin.
Por ejemplo, el microcontrolador LPC210x de la casa Philips
incluye un cargador de arranque serie integrado que est
ubicado en los 8 K primeros de su memoria Flash. Estndo el
terminal P0.14 a masa y generndo un reset el LPC210x ejecuta
el programa cargador de arranque. Utilizndo un programa para
PC gratuito de la casa Philips y un cable serie conectado entre el
PC y la UART del microcontrolador LPC210x (a travs de un
conversor TTL/RS232 como el c.i. MAX232) se puede realizar la
programacin del microcontrolador.
Tambin resulta interesante el interface JTAG (que por
ejemplo posee el microcontrolador LPC210x), que puede
utilizarse para programar el dispositivo y para depurar un
programa durante su ejecucin en el microcontrolador. Para
utilizar el interface JTAG se necesita un mdulo interfaz de
depuracin JTAG que se conecta con entre el sistema de
desarrollo del microcontrolador y el PC que lo aloja. En el
mercado existen distintos mdulos interfaces JTAG comerciales
pero tambi se pueden encontrar otros en Internet.
Paquetes IDE

Actualmente existen paquetes de software denominados


"Entornos de Desarrollo Integrado", IDE, que suelen funcionar
bajo Windows y que incluyen editores de texto para el
ensamblador o el compilador, permiten la simulacin del
programa y tambin pueden integrar el control de emuladores y
programadores de dispositivos. Ejemplos de estos entornos de
desarrollo son MPLAB de Microchip (ver MPLAB-IDE v6.60) que
permite programar en lenguaje ensamblado y PCWH de la casa
CCS que incluye un compilador C para los microcontroladores
PIC de Microchip. MPLAB es gratuito y muy bueno, incluye un
editor, un ensamblador y un simulador y tambin puede trabajar
con compiladores y emuladores de otros fabricantes.

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Microcontroladores 2.16

Qu microcontrolador emplear?
Elegir un tipo o familia de microcontroladores
A la hora de decidirse en terminos generales sobre que tipo o
familia de microcontroladores emplear hay que tener en cuenta
varios factores, como por ejemplo:
Experiencia previa
Documentacin existente
Herramientas de desarrollo disponibles y su precio
Precio del microcontrolador
Experiencia previa: Si ya se ha trabajado con algn
microcontrolador en particular, lo mejor es ver que nuevas
posibilidades ofrecen los diversos fabricantes que trabajen con
ese microcontolador como ncleo. Por ejemplo, el 8051 fu muy
popular hace algun tiempo, y hay muchos microcontroladores
actuales que derivan de este, como pueden ser los AT89 de

Atmel, MCS251 de Intel, DS8 de Maxim (Dallas), P8 de Philips y


MSC12 de Texas Instruments. Lo bueno es que salvo en
determinados detalles se mantiene el conjunto de instrucciones,
modos de direccionamiento, nombres de registros, y en
definitiva la filosofa de trabajo del 8051. Con pequeos cambios
podran recuperarse programas diseados para el 8051 con
estos microcontroladores.
Documentacin existente: Este es un factor importante si
se quiere conocer bien el tipo de microcontrolador elegido y su
entorno de desarrollo. Adems, si existe una amplia literatura
de aplicaciones podrn utilizarse programas y diseos ya
realizados para adaptarlos a nuestras necesidades. Mediante
libros especializados, revistas de electrnica y sobre todo
Internet, puede encontrarse la informacin necesaria sobre
cualquier microcontrolador, si bien parace que la mayor cantidad
de informacin disponible corresponde a los microcontroladores
PIC de Microchip.
Herramientas de desarrollo disponibles y su precio: Uno
de los factores que ms importancia tiene a la hora de
seleccionar un microcontrolador entre todos los dems es el
soporte tanto software como hardware de que dispone. Un buen
conjunto de herramientas de desarrollo puede ser decisivo en la
eleccin, ya que pueden suponer una ayuda inestimable en el
desarrollo
del
proyecto.
Algunos
fabricantes
de
microcontroladores ofrecen paquetes IDE de calidad de forma
completamente gratuita, como poltica para inclinarse por el uso
de sus microcontroladores. Ejemplos de ello son AVR studio de
Atmel, Code Warrior de Freescale (Motorola), MPLAB de
Microchip o Eclipse de Texas Instruments. Estos paquetes IDE
gratuitos permiten programar en cdigo ensamblado, puesto
que los compiladores de lenguaje de alto nivel (BASIC y C) no
suelen ser gratis.
Una forma de reducir costes en una produccin de
dispositivos con microcontroladores es utilizar una nica familia
de microcontroladores para optimizar el uso de las herramientas
de apoyo que se van a necesitar, tales como emuladores,
simuladores, ensambladores, compiladores, etc.

Precio del microcontrolador: Como es lgico, los


fabricantes de microcontroladores compiten duramente para
vender sus productos. Para que nos hagamos una idea, para
una produccin a gran o mediana escala de dispositivos que
utilizan un microcontrolador, una diferencia de precio en el
mismo de algunos cntimos es importante (el consumidor
deber pagar adems el coste del empaquetado, el de los otros
componentes, el diseo del hardware y el desarrollo del
software).
Elegir un modelo concreto de microcontrolador
Una vez se decida que tipo o familia de microcontroladores se
van a emplear hay que elegir el modelo de microcontrolador
concreto para la aplicacin y resulta imprescindible analizar los
requisitos de la aplicacin:

DISPOSITIVOS LGICOS MICROPROGRAMABLES

Microcontroladores 2.8

Entradas, salidas y recursos internos: Uno de los


aspectos ms atractivos de los microcontroladores es que
la circuitera externa puede reducirse al mnimo. Para
determinar las necesidades de entradas y salidas as como
los recursos del sistema es conveniente dibujar un
diagrama de bloques del mismo, de tal forma que sea
sencillo identificar la cantidad y tipo de seales a controlar.
Habr que tener en cuenta:
o Nmero de entradas y salidas necesarias.
o Nmero y tamao (8, 16
temporizadores necesarios.

32

bits)

de

los

o Necesidad de un CAD o CDA, incluyendo la resolucin


y nmero de entradas.
o Necesidad de puertos de comunicaciones (I 2C, RS232,
USB, bus CAN, SPI u otros).

o Necesidad de una o ms salidas PWM.


o Necesidad de interfaces especficas como la de control
LCD.
Una vez realizado este anlisis puede ser necesario aadir
perifricos hardware externos. Esto puede ser una mejor
opcin que utilizar un microcontrolador de altas
prestaciones pero caro. Si por ejemplo necesitamos un
conversor A/D (CAD) de unas determinadas caractersticas
y no est disponible con la familia de microcontroladores
deseada es posible utilizar un conversor externo con una
interfaz I2C. Esto sirve tambin para conseguir memoria
programable no volatil extra (con una EEPROM externa). Si
necesitamos un puerto USB, el lugar de vernos limitados a
elegir entre alguno de los modelos aparecidos mas
recientemente en el mercado, podemos elegir un
controlador USB externo. Por ltimo no olvidemos que
tambin pueden implementarse algunos recursos por
software, como una comunicacin I2C o RS232 o una salida
PWM.
Velocidad y consumo: Actualmente pueden encontrarse
modelos de microcontroladores que pueden utilizar
velocidades de reloj de hasta 100 MHz, pero adems de
eso, en la velocidad de ejecucin del programa repercute la
arquitectura del microcontrolador, siendo ms rpido uno
con arquitectura RISC que otro con CISC. Las velocidades
altas incrementan las interferencias electromagnticas
radiadas y el consumo de los microcontroladores al estar la
mayora realizados con tecnologas CMOS, por lo que habr
que tener en cuenta la velocidad si el consumo es
importante en la aplicacin. Por todo esto el uso de
velocidades altas debe reservarse para cuando sea
necesario que el microcontrolador realice clculos crticos
en un tiempo limitado. En ese caso debemos asegurarnos
de seleccionar un dispositivo suficientemente rpido para
ello.
Hay que tener en cuenta que algunos productos que

incorporan microcontroladores estn alimentados con


bateras y su funcionamiento puede ser tan vital como
activar una alarma antirrobo. Lo ms conveniente en un
caso como ste puede ser que el microcontrolador est en
estado de bajo consumo pero que despierte ante la
activacin de una seal (una interrupcin) y ejecute el
programa adecuado para procesarla. En las situaciones
donde un dispositivo se relaciona con el entorno humano
suele utilizarse el modo de bajo consumo, como por
ejemplo en un mando a distancia de un televisor, que la
mayor parte del tiempo no est haciendo nada, de manera
que cuando el usuario pulsa una tecla el microcontrolador
pasa al modo normal y ejecuta las operaciones necesarias.
De esta manera la duracin de la batera puede llegar casi
a la vida de la misma puesto que en modo de bajo
consumo un microcontrolador puede reducir 1000 veces
sus necesidades de corriente comparndolo con el modo
normal.
Memoria: Para determinar las necesidades de memoria de
nuestra aplicacin debemos separarla en memoria voltil
(RAM), memoria no voltil (ROM, Flash, etc.) y memoria
no voltil modificable (EEPROM). Este ltimo tipo de
memoria puede ser til para incluir informacin especfica
de la aplicacin como un nmero de serie o parmetros de
calibracin.
El tipo de memoria a emplear vendr determinado por el
volumen de ventas previsto del producto: de menor a
mayor volumen ser conveniente emplear Flash, EEPROM,
OTP y ROM. Los dos primeros tipos han sido pensados y
diseados para ser utilizados en etapas de desarrollo o en
pequeas series, para una produccin en masa a pequea
escala es preferible utilizar el tipo OTP (que puede
programarse como los dos tipos anteriores pero no se
puede borrar y es normalmente ms barato). El ltimo
tipo, ROM, necesita ser programado mediante una mscara
por el frabicante de manera que slo es prctico para
cuando se necesiten varios miles de dispositivos idnticos.
Tambin debemos tener en cuenta que no siempre hay

versiones con diferentes tipos de memoria para un modelo


de
microcontrolador
en
particular.
En cuanto a la cantidad de memoria necesaria puede ser
necesario realizar una versin preliminar de la aplicacin y
a partir de ella hacer una estimacin de cunta memoria
voltil y no voltil es necesaria y si es conveniente
disponer de memoria no voltil modificable.
Ancho de palabra: El criterio de diseo debe ser
seleccionar el microcontrolador de menor ancho de palabra
que satisfaga los requerimientos de la aplicacin. Los
modelos de 4 bits han desaparecido prcticamente del
mercado de manera que utilizar un microcontrolador de 8
bits supone la mejor eleccin si el programa a desarrollar
slo controla unas pocas entradas y salidas y no utiliza
clculos complejos ni accede a grandes bases de datos.
Tambin resultan perfectos si el ancho de los datos es de
un byte. Los microcontroladores de 16 y 32 bits, debern
utilizarse si se realizan clculos matemticos o cientficos,
una gestin de Entrada/Salida potente o si se necesita un
espacio de direccionamiento muy elevado. Si una
aplicacin necesita un microcontrolador con ms de 8 bits,
es recomendable utilizar microcontroladores de 32 bits
frente a los de 16 bits dada la poca diferencia de precio
que actualmente existe entre ellos. Si la velocidad no es
crtica tambin puede acudirse a la utilizacin de libreras
para manejar los datos de alta precisin, que resulta una
alternativa ms barata y quiz suficiente.
Disponibilidad: Hay pocas cosas ms frustrantes que
elegir para el desarrollo de un diseo un componente
electrnico y despus de haberlo terminado comprobar que
no est disponible en las tiendas de electrnica de tu
ciudad. No obstante hoy es muy fcil realizar compras por
medio de catlogos por correo o a travs de Internet,
incluso pueden solicitarse componentes directamente al
fabricante. El problema est en el nmero de dispositivos
que se deben pedir. El fabricante slo nos atender si se
solicitan cantidades realmente grandes, aparte de los

problemas sobre licencias, permisos o aduanas que puedan


surgir. La venta por catlogo mediante correo o por
Internet dentro del pas resulta muy interesante apenas se
compre el suficiente material como para amortizar los
gastos de transporte. Las compras desde Espaa (mi caso)
con otros paises de la Unin Europea como Alemania, Italia
o Reino Unido no representan ningn problema. Ms
problemtico resulta comprar en Estados Unidos o en otros
paises que estn fuera de la Unin. (Recuerdo los
problemas que tuvimos con la aduana al comprar hace
unos aos una placa de desarrollo para el 8051 por correo
en Israel). Teniendo en cuenta todo lo dicho resulta
fundamental comprobar si existe un distribuidor que
disponga de los componentes necesarios en su almacen (y
en el encapsulado correcto) antes de comenzar el diseo.
Tambin debemos considerar que cuanto ms popular sea
el microcontrolador que elijamos menos problemas vamos
a tener en este aspecto.
Diseo del circuito y de la PCB: La seleccin de un
microcontrolador concreto condicionar el diseo del
circuito de manera que debe tenerse en cuenta que quiz
usar un microcontrolador barato encarezca el resto de
componentes del diseo. Tampoco debemos olvidarnos del
encapsulado, podramos elegir un determinado modelo de
microcontrolador y luego encontrarnos que en lugar de
venir con el tradicional encapsulado DIL slo est
disponible en encapsulados PLCC o PGA, si bien siempre
podremos utilizar un zcalo adecuado. Tampoco se podra
trabajar
manualmente
con
encapsulados
BGA.
Afortunadamente, de momento, estos problemas se dn
slo con los ltimos modelos de microcontroladores con
muchas
patillas.
En cuanto al diseo de la placa de circuito impreso (PCB) a
no ser que el esquema sea simple o se afine mucho en el
mismo ser necesario el uso de puentes (su uso est mal
visto) o de placas de c.i. de doble cara. Si se utilizan
componentes SMD conviene saber que la primera
generacin de componentes SMD tiene una separacin de

terminales de 1,27 milmetros que todava pueden soldarse


manualmente con paciencia y una punta fina pero los
ltimos circuitos SMD tienen una separacin de 0,64
milmetros paro lo cual es necesario utilizar mquinas de
soldadura.
Fabricantes y modelos de microcontroladores
A continuacin se muestra una relacin de algunos
fabricantes y modelos de microcontroladores incluyendo su
direccin en Internet, si es CISC o RISC, el nmero de bits del
bus de datos y el ncleo del que deriva (8051, ARM, etc) as
como si est disponible un IDE gratuito:
FAMILIA

ARQUITECTU
IDE
RA

ADUC8xx

CISC 8 bits
8051

ADUC7xx

RISC 32 bits
ARM7

AT89xxx

CISC 8 bits
8051

prog.
independien
tes

TS87xxx

CISC 8 bits

prog.
independien
tes

AVR

RISC 8 bits

AVR studio

AT91xxx

RISC 16 bits
ARM7/9

EP73xxx

RISC 32 bits
ARM7

EP93xxx

RISC 32 bits
ARM9

Cygnal www.silabs.com

C8051F

CISC 8 bits
8051

Freescale
(Motorola) www.freescale.com

HC05

FABRICANTE

Analog Device www.analog.com

Atmel www.atmel.com

Cirrus Logic www.cirrus.com

CISC 8 bits
6800

Fujitsu www.fujitsu.com

HC08

CISC 8 bits
6809

Code
Warrior

HC11

CISC 8 bits
6809

HC12

CISC 16 bits

HCS12

CISC 16 bits

Code
Warrior

HC16

CISC 16 bits

56800

CISC 16 bits

68K

CISC 32 bits
68000

ColdFire

CISC 32 bits

MAC7100

RISC 32 bits
ARM7

F2MC-8

CISC 8 bits

F2MC-16

CISC 16 bits

FR

RISC 32 bits

C5xxx

CISC 8 bits
8051

C8xxx

CISC 8 bits
8051

C16xxx

CISC 16 bits

XC16xxx

CISC 16 bits

TCxxx

CISC 32 bits

MCS251

CISC 8 bits
8051

MCS96/296

CISC 16 bits

DS80Cxxx

CISC 8 bits
8051

DS83Cxxx

CISC 8 bits
8051

DS89Cxxx

CISC 8 bits

Infineon www.infineon.com

Intel www.intel.com
Maxim (Dallas) www.maxim-ic.com

8051
MAXQ

RISC 16 bits

PIC
10,12,14,16,17 RISC 8 bits
,18

MPLAB

dsPIC

RISC 16 bits

MPLAB

CISC 8 bits

Webench

CISC 16 bits

RISC 16 bits

P8xxx

CISC 8 bits
8051

Philips www.semiconductors.philips.co
Xaxxx
m

CISC 16 bits

RISC 32 bits
ARM7

CISC 8 bits

CISC 8 bits

740

CISC 8 bits

H8

CISC 16 bits

HEW

H8S

CISC 16 bits

HEW

M16C

CISC 16 bits

7700

CISC 16 bits

H8SX

CISC 32 bits

Super H

CISC 32 bits

HEW

ST5

CISC 8 bits

Visual FIVE

ST6

CISC 8 bits

ST7

CISC 8 bits

STVD 7

ST9

CISC 8 bits

STVD 9

ST9

CISC 16 bits

STVD 9

ST10

CISC 16 bits

Microchip www.microchip.com

COP8xxx
NS (NATIONAL
SEMICONDUCTOR) www.national.co CR16Cxxx
m
CP3000

LPC2xxx
Rabbit
Rabbit2000
Semiconductor www.rabbitsemiconduct
Rabbit3000
or.com

Renesas www.renesas.com

ST (SGS-THOMSON) www.stm.com

Texas Instruments www.ti.com

Toshiba chips.toshiba.com

Ubicom (Scenix) www.ubicom.com

Zilog www.zilog.com

ARM7

RISC 32 bits
ARM7

MSC12xxx

CISC 8 bits
8051

MSP430

CISC 16 bits

Eclipse

TMS470

RISC 32 bits
ARM7

870

CISC 8 bits

900/900H

CISC 16 bits

900/900H

CISC 32 bits

SXxx

RISC 8 bits

Z8xxx

CISC 8 bits Z80 -

Z8Encore!

CISC 8 bits Z80 -

eZ80Aclaim

CISC 8 bits Z80 -

Los microcontroladores PIC


Hace un tiempo, para introducirse en el mundo de los
microcontroladores, se empleaba principalmente el 8051 de
Intel.
Aspecto del 8051 en un montaje:

Arquitectura bsica de un 8051:

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Microcontroladores 2.17

Esquema mnimo de montaje para el 8051:

Sin embargo, despus de todo lo dicho, dedicaremos el resto


de la documentacin a los microcontroladores PIC de Microchip,
no porque esta familia sea mejor que otras, sino porque
presentan diversas caractersticas que los hacen especialmente
interesantes:
Facilidad de uso.
Gran cantidad de informacin disponible en libros, revistas
e Internet.
Herramientas de desarrollo muy asequibles.
Bajo precio y fcil disponibilidad.

En muchos casos la eleccin de una versin adecuada de PIC


es la mejor solucin para resolver un problema. Otras familias
de microcontroladores son ms eficaces en aplicaciones
concretas, especialmente si predomina una caracterstica
especial.
Dentro de los PIC, quiz el modelo con mayor disponibilidad
(en el ao 2005) para utilizarlo en montajes y prcticas y del
que existe mayor informacin es el PIC16F84A. Si bien es cierto
que hoy puede sustituirse por otros modelos con mas
prestaciones (recursos por hardware como puertos serie RS232
o salidas PWM) siendo incluso ms baratos (como el PIC....) no
por ello deja de ser ideal para comenzar:

DISPOSITIVOS LGICOS
MICROPROGRAMABLES

Microcontroladores 2.18

Esquemas mnimos de montaje para el PIC16F84:

Oscilador RC
C1 de 20pF como mnimo
5K R1 100K

Resea histrica sobre los PIC


En 1965, la empresa GI cre una divisin de
microelectrnica, GI Microelectronics Divisin. En 1975 dise
un chip destinado a controlar E/S: el PIC (Peripheral Interface
Controller) con una arquitectura en la que se basan los modelos
actuales. GI Microelectronics Divisin se convirti en la empresa
subsidiaria GI Microelectronics Inc. y en 1985 en una empresa
independiente, la Arizona Microchip Technology.
Microchip cuenta con factoras principal en Chandler y Tempe,
Arizona. Tambin cuenta con centros de ensamblaje y ensayos
en Taiwan y Tailandia. Para tener una idea de su alta produccin,
hay que tener en cuenta que produce millnes de unidades por
semana.

Introduccin y
Arquitectura de
microcontroladores
En esta seccin encontraras toda la informacin necesaria para ayudarte a despejar tus
dudas respectos a los microcontroladores, empezaremos con la definicin de:

QUE

SON LOS

MICROCONTROLADORES?

Primero que todo comenzaremos definiendo que son los microcontroladores: Los
microcontroladores ( abreviado C, UC o MCU ) son circuitos integrados que son
capaces de ejecutar ordenes que fueron grabadas en su memoria. Su composicin esta
dada por varios bloques funcionales, los cuales cumplen una tarea especifica, son
dispositivos que operan uno o mas procesos, por lo general los microcontroladores
estn basados en la arquitectura de Harvard, la cual consiste en dispositivos de
almacenamiento separados (memoria de programa y memoria de datos).
El termino microcontrolador esta dado por dos palabras que son Micro-Controlador
las cuales tienen por significado pequeo (en tamao) y maniobrar o controlar
(funcin principal) procesos los cuales son definidos mediante la programacin.
Un micro controlador esta constituido en su interior por las tres principales unidades
funcionales de una computadora, las cuales son: unidad central de procesamiento,
memoria y perifricos de entrada y salida.
En fin un microcontrolador es un sistema completo, con unas prestaciones limitadas

que no pueden modificarse y que puede llevar a cabo las tareas para las que ha sido
programado de forma autnoma.
En cuanto a la arquitectura de los microcontroladores la detallaremos con mayor
profundidad a continuacin

ARQUITECTURA

DE LOS MICROCONTROLADORES

Arquitectura Von Neumann La arquitectura tradicional:

La arquitectura tradicional de
computadoras y microcontroladores se basa en el esquema propuesto por John Von
Neumann, en el cual la unidad central de proceso, o CPU, esta conectada a una
memoria nica que contiene las instrucciones del programa y los datos. El tamao de
la unidad de datos o instrucciones esta fijado por el ancho del bus de la memoria. Las
dos principales limitaciones de esta arquitectura tradicional son :
a) Que la longitud de las instrucciones esta limitada por la unidad de longitud de los
datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para
buscar instrucciones complejas.
b) La velocidad de operacin (o ancho de banda de operacin) esta limitada por el
efecto de cuello de botella que significa un bus nico para datos e instrucciones que
impide superponer ambos tiempos de acceso.
La arquitectura von Neumann permite el diseo de programas con cdigo
automodificable, prctica bastante usada en las antiguas computadoras que solo tenan
acumulador y pocos modos de direccionamiento, pero innecesaria, en las
computadoras modernas.
La arquitectura Harvard y sus ventajas:

La arquitectura conocida como Harvard,


consiste simplemente en un esquema en el que el CPU esta conectado a dos memorias
por intermedio de dos buses separados. Una de las memorias contiene solamente las
instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo
almacena los datos y es llamada Memoria de Datos. Ambos buses son totalmente
independientes y pueden ser de distintos anchos. Para un procesador de Set de
Instrucciones Reducido, o RISC (Reduced Instruccin Set Computer), el set de
instrucciones y el bus de la memoria de programa pueden disearse de manera tal que
todas las instrucciones tengan una sola posicin de memoria de programa de longitud.
Adems, como los buses son independientes, el CPU puede estar accediendo a los
datos para completar la ejecucin de una instruccin, y al mismo tiempo estar leyendo
la prxima instruccin a ejecutar. Podemos observar claramente que las principales
ventajas de esta arquitectura son:
a) El tamao de las instrucciones no esta relacionado con el de los datos, y por lo tanto
puede ser optimizado para que cualquier instruccin ocupe una sola posicin de
memoria de programa, logrando as mayor velocidad y menor longitud de programa.
b) El tiempo de acceso a las instrucciones puede superponerse con el de los datos,
logrando una mayor velocidad de operacin.
Una pequea desventaja de los procesadores con arquitectura Harvard, es que deben
poseer instrucciones especiales para acceder a tablas de valores constantes que pueda
ser necesario incluir en los programas, ya que estas tablas se encontraran fsicamente
en la memoria de programa (por ejemplo en la EPROM de un microprocesador).

ARQUITECTURA

INTERNA DE UN MICROCONTROLADOR.

CPU (unidad central de proceso):

Podemos decir que la CPU, siglas en ingls de unidad central de proceso, es el ncleo
del microcontrolador. Se encarga de ejecutar las instrucciones almacenadas en la
memoria, de la que hablaremos ms adelante. Es lo que habitualmente llamamos
procesador o microprocesador, trmino que a menudo se confunde con el de
microcontrolador. En esta lnea cabe aclarar que, tal y como estamos viendo, ambos
trminos no son lo mismo: el microprocesador es una parte de un microcontrolador y
sin l no sera til; un microcontrolador, en cambio, es un sistema completo que puede
llevar a cabo de forma autnoma una labor.
Memoria:

Entendemos por memoria los diferentes componentes del microcontrolador que se


emplean para almacenar informacin durante un periodo determinado de tiempo. La
informacin que necesitaremos durante la ejecucin del programa ser, por un lado, el
propio cdigo, y por otro, los diferentes datos que usemos durante la ejecucin del
mismo. Hablaremos por tanto de memoria de programa y de memoria de datos,
respectivamente.
La diferente naturaleza de la informacin que hay que almacenar hace necesario el uso
de diferentes tipos memorias. Sin hacer especial nfasis en este apartado, s habr que
tener en cuenta una clasificacin bsica, que distingue entre memoria voltil y no
voltil. La primera es aquella que pierde la informacin que almacena al desconectarla
de la alimentacin; la segunda, como resulta obvio, no. Por lo tanto, se hace evidente
que al menos la memoria de programa deber ser no voltil: no sera prctico que el
programa grabado en el microcontrolador se borrara cada vez que apagramos el
dispositivo. Con respecto a la memoria de datos, diremos por el momento segn la
situacin puede interesarnos una u otra.
Unidades de entrada/salida:

Las unidades de entrada/salida son los sistemas que emplea el microcontrolador para
comunicarse con el exterior. Imaginemos una televisin: por un lado tiene un
dispositivo de salida, como es la pantalla, y por otro lado, de entrada, como son los
botones de subir o bajar volumen y de cambio de canal. As, los dispositivos de entrada
nos permitirn introducir informacin en el microcontrolador y los de salida nos
servirn para que ste la saque al exterior.

ARQUITECTURA RISC

CISC

RISC (Reduced Instruction Set Computer) Computadora con Juego de Instrucciones Reducidas.

En este caso la idea es que el microcontrolador reconoce y ejecuta slo operaciones


bsicas (sumar, restar, copiar etc) Las operaciones ms complicadas se realizan al
combinar stas (por ejemplo, multiplicacin se lleva a cabo al realizar adicin
sucesiva). Es como intentar explicarle a alguien con pocas palabras cmo llegar al
aeropuerto en una nueva ciudad. Sin embargo, no todo es tan oscuro. Adems, el
microcontrolador es muy rpido as que no es posible ver todas las acrobacias
aritmticas que realiza. El usuario slo puede ver el resultado final de todas las
operaciones. Por ltimo, no es tan difcil explicar dnde est el aeropuerto si se utilizan
las palabras adecuadas tales como: a la derecha, a la izquierda, el kilmetro etc.

CISC (Complex Instruction Set Computer) Computadoras con un juego de instrucciones


complejo.

CISC es opuesto a RISC! Los microcontroladores diseados para reconocer ms de


200 instrucciones diferentes realmente pueden realizar muchas cosas a alta velocidad.
No obstante, uno debe saber cmo utilizar todas las posibilidades que ofrece un
lenguaje tan rico, lo que no es siempre tan fcil.

También podría gustarte