Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
Introducción
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
vii
CAP
ITULO 0. INTRODUCCION
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.)
Te
xt
de
Pr
viii
ejemplo un computador personal).
Microcontrolador
Memoria
CPU (micro)
ALU
CU
E/S
(interruptores,
rels, teclado,
ratn, pantalla,
disco, etc.)
REGS
ue
ba
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
xt
Frecuencia. M
axima frecuencia que soporta el microcontrolador usando reloj externo (en
MHz)
Te
Gama
16 (media)
(8 bits) media
Memoria Programable
F
Modelo
628
mega
Frecuencia
04
16
CAP
ITULO 0. INTRODUCCION
ix
Pr
ue
ba
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
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
Pr
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
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
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
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
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
CAP
ITULO 0. INTRODUCCION
xiii
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
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
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
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
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).