Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DE Emil Toboso
Microcontroladores
ndice de contenidos
Microcontroladores
o ndice de contenidos
o Introduccin
o Que es un microcontrolador
Controlador y microcontrolador
o Aplicaciones de los microcontroladores
o El mercado de los microcontroladores
o Recursos comunes
Arquitectura bsica
El procesador o CPU
Memoria
Puertos de Entrada y Salida
Reloj principal
o Recursos especiales
Temporizadores o "Timers"
Perro guardin o "Watchdog"
Proteccin ante fallo de alimentacin o "Brownout"
Estado de reposo de bajo consumo
Conversor A/D (CAD)
Conversor D/A (CDA)
Comparador analgico
Modulador de anchura de impulsos o PWM
Puertos de comunicacin
o Herramientas de desarrollo
Paquetes IDE
o Qu microcontrolador emplear?
Elegir un tipo o familia de microcontroladores
Elegir un modelo concreto de microcontrolador
Fabricantes y modelos de microcontroladores
o Los microcontroladores PIC
o Resea histrica sobre los PIC
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.2
Introduccin
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
Microcontroladores 2.3
MICROPROGRAMABLES
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:
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.4
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.5
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.6
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.7
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
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.
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.10
Memoria
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 que diferencian a los microcontroladores de los PC's:
1. No existen sistemas de almacenamiento masivo como disco duro o disquetes.
DISPOSITIVOS LGICOS
Microcontroladores 2.11
MICROPROGRAMABLES
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
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
Temporizadores o "Timers".
Perro guardin o "Watchdog".
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.
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.14
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.
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:
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.
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
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).
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.8
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 32 bits) de los temporizadores necesarios.
o Necesidad de un CAD o CDA, incluyendo la resolucin y nmero de
entradas.
2
o Necesidad de puertos de comunicaciones (I C, 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.
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.
(VER ESTO)
Atmel www.atmel.com
FAMILIA
ARQUITECTURA IDE
ADUC8xx
ADUC7xx
AT89xxx
prog.
independientes
(VER ESTO)
TS87xxx
CISC 8 bits
prog.
independientes
AVR (VER
ESTO)
RISC 8 bits
AVR studio
Freescale (Motorola)
www.freescale.com
Fujitsu www.fujitsu.com
Infineon www.infineon.com
Intel www.intel.com
Microchip www.microchip.com
AT91xxx
RISC 16 bits
ARM7/9
EP73xxx
EP93xxx
C8051F
HC05
HC08
Code Warrior
HC11
HC12
CISC 16 bits
HCS12
CISC 16 bits
Code Warrior
HC16
CISC 16 bits
56800
CISC 16 bits
68K
ColdFire
CISC 32 bits
MAC7100
F2MC-8
CISC 8 bits
F2MC-16
CISC 16 bits
FR
RISC 32 bits
C5xxx
C8xxx
C16xxx
CISC 16 bits
XC16xxx
CISC 16 bits
TCxxx
CISC 32 bits
MCS251
MCS96/296
CISC 16 bits
DS80Cxxx
DS83Cxxx
DS89Cxxx
MAXQ
RISC 16 bits
PIC
RISC 8 bits
10,12,14,16,17,18
MPLAB
dsPIC
RISC 16 bits
MPLAB
COP8xxx
CISC 8 bits
Webench
NS (NATIONAL
SEMICONDUCTOR) (VER
NS (NATIONAL
ESTO) www.national.com
SEMICONDUCTOR) (VER
ESTO) www.national.com
Philips
www.semiconductors.philips.com
COP8xxx
CISC 8 bits
Webench
CR16Cxxx
CP3000
CISC 16
16 bits
bits
RISC
--
P8xxx
Xaxxx
CISC 16 bits
LPC2xxx
Rabbit2000
CISC 8 bits
Rabbit3000
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 (VER
ESTO)
ST10
CISC 16 bits
ARM7
MSC12xxx
MSP430
CISC 16 bits
Eclipse
TMS470
870
CISC 8 bits
900/900H
CISC 16 bits
900/900H (VER
ESTO)
CISC 32 bits
Ubicom (Scenix)
www.ubicom.com
SXxx
RISC 8 bits
Zilog www.zilog.com
Z8xxx
Z8Encore!
Rabbit Semiconductor
www.rabbitsemiconductor.com
Renesas www.renesas.com
ST (SGS-THOMSON)
www.stm.com
Toshiba chips.toshiba.com
eZ80Aclaim
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Microcontroladores 2.17
Facilidad de uso.
Gran cantidad de informacin disponible en libros, revistas e Internet.
Herramientas de desarrollo muy asequibles.
Bajo precio y fcil disponibilidad.
DISPOSITIVOS LGICOS
MICROPROGRAMABLES
Esquemas mnimos de montaje para el PIC16F84:
Microcontroladores 2.18
Oscilador RC
C1 de 20pF como mnimo
5K R1 100K