HISTORIA DE LOS MICROCONTROLADORES
Inicialmente cuando no existan los microprocesadores las personas se ingeniaban en
disear sus circuitos electrnicos y los resultados estaban expresados en diseos que
implicaban muchos componentes electrnicos y clculos matemticos. Un circuito
lgico bsico requera de muchos elementos como transistores, resistencias.
Al principio se crea que el manejo de un microprocesador era para aquellas personas
con un coeficiente intelectual muy alto; Por lo contrario con la aparicin de este circuito
integrado todo sera mucho ms fcil de entender y los diseos electrnicos seran
mucho ms pequeos y simplificados.
Los microcontroladores estn conquistando el mundo, pero la invasin acaba de
comenzar y el nacimiento del siglo XXI ser testigo de la conquista masiva de estos
diminutos computadores, que gobernarn la mayor parte de los aparatos que se
fabrican hoy en das. Cada vez existen ms productos que incorporan un
Microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su
tamao y costo, mejorar su fiabilidad.
El funcionamiento y aplicaciones de los microcontroladores y los microprocesadores
permite profundizar en los aspectos tecnolgicos de las arquitecturas de las nuevas
computadoras, convirtindose de esta forma en una herramienta til para el desarrollo
de variadas aplicaciones que contribuyen al avance tecnolgico y desarrollo integral de
la sociedad. Estas aplicaciones que han surgido con propsitos, para solucionar las
diversas necesidades existentes, que frustraban la realizacin de actividades
ejecutadas por personas en los diferente escenarios industriales, empresariales entre
otros.
Las circunstancias con las que nos encontramos hoy en el campo de los
microcontroladores tienen sus races en el desarrollo de la tecnologa de los circuitos
integrados. Este desarrollo ha hecho posible contener cientos de miles de transistores
en un solo chip. se era uno de los requisitos previos para la produccin de los
microprocesadores, y las primeras computadoras eran hechas agregando perifricos
externos como la memoria, timers etc. lo que aumentaba el volumen de los circuitos
integrados. Estos circuitos integrados contenan procesador y perifricos. As es cmo
se desarroll el primer chip que contena una microcomputadora, o lo que despus se
llegara a conocer como un microcontrolador.
Para desencadenar la temtica propuesta acerca de las similitudes, diferencias, de los
microprocesadores y microcontroladores, es necesario que el lector tenga un poco de
conocimiento sobre el tema.
El C es un computador completo, aunque de limitadas prestaciones, que est
contenido en el chip de un circuito integrado programable y se destina a gobernar una
sola tarea con el programa que reside en su memoria. Sus lneas de entrada/salida
soportan el conexionado de los sensores y actuadores del dispositivo a controlar.
ORIGENES Y EVOLUCION DEL MICROCONTROLADOR EN LAS
COMPUTADORAS
En el ao 1969, un equipo de ingenieros japoneses de la compaa BUSICOM lleg a
Estados Unidos con una idea, ellos deseaban usar para sus proyectos pocos circuitos
integrados de los que se usaban en las calculadoras. La proposicin se hizo a INTEL,
y Marcian Hoff era el responsable del proyecto. Ya que l era quien tena experiencia
trabajando con una computadora (PC) PDP8, se le ocurri pensar en una solucin
fundamentalmente diferente en lugar de la construccin sugerida. Esta solucin
presuma que la funcin del circuito integrado se determinara por un programa
almacenado en l. Eso significaba que la configuracin sera ms simple, pero que
requerira mucho ms memoria de lo que requera el proyecto que propusieron los
ingenieros japoneses.
Despus de un tiempo, aunque los ingenieros japoneses probaron soluciones ms
fciles, la idea de Marcian gan, y el primer microprocesador naci. Para transformar
esta idea en un producto ya fabricado, Federico Faggin, se uni a INTEL, y en slo 9
meses tuvo xito. INTEL obtuvo los derechos para vender este "bloque integrado" en
1971. Primero, compraron la licencia de la compaa BUSICOM, que no tena idea del
tesoro que posean. Durante ese ao, apareci en el mercado un microprocesador que
se llam 4004, este fue el primer microprocesador de 4 bits con velocidad de 6 000
operaciones por segundo. No mucho tiempo despus de eso, la compaa americana
CTC pidi a INTEL y Texas Instruments que hiciera un microprocesador de 8 bits.
Aunque despus a CTC no le interes ms la idea, Intel y Texas Instruments siguieron
trabajando en el microprocesador y el primero de abril de 1972, el microprocesador de
8bits.
Aparece en el mercado con el nombre de 8008. Poda direccionar 16 Kb de memoria,
con un set de 45 instrucciones y una velocidad de 300 000 operaciones por segundo.
Este microprocesador es el predecesor de todos los microprocesadores de hoy. Intel
mantuvo sus desarrollos y saco al mercado el procesador de 8 bits bajo el nombre
8080, el cual poda direccionar 64Kb de memoria, con 75 instrucciones, a un precio de
360 dlls.
En otra compaa americana, Motorola, comprendieron rpidamente lo que estaba
sucediendo, as que ellos sacaron al mercado su microprocesador de 8 bits, el 6800.
Su constructor principal era Chuck Peddle, y junto con el procesador, Motorola fue la
primera compaa en hacer otros perifricos como el 6820 y el 6850. En ese momento
muchas compaas reconocieron importancia de los microprocesadores y empezaron
sus propios desarrollos. Chuck Peddle
abandon Motorola para unirse a la Tecnologa MOS y se mantuvo trabajando
intensamente en el desarrollo de los microprocesadores.
Un evento muy importante tuvo lugar en la historia de microprocesadores en una
exhibicin de WESCON en 1795 en Estados Unidos. La Tecnologa MOS anunci que
estaba comercializando los microprocesadores 6501 y 6502 a 25 dlls. cada uno, y que
los compradores podran adquirirlos inmediatamente.
Esto era tan extraordinario, que algunas personas creyeron que era un escndalo,
considerando que los competidores estaban vendiendo el 8080 y el 6800 a 179
dlls. cada uno. Intel y Motorola bajaron sus precios en el primer da de la exhibicin
como una respuesta a su competidor, 69.95 por microprocesador. Motorola reclama a
la Tecnologa de MOS y a Chuck Peddle el haberles copiado su 6800. La Tecnologa
MOS suspende la fabricacin del 6501, pero siguen produciendo el 6502. Los 6502
eran microprocesadores de 8 bits, 56
instrucciones y la capacidad de direccionar 64Kb de memoria directamente. Para
reducir el costo, el 6502 se vuelve muy popular, as que se instala en las
computadoras tales como: KIM-1, Apple I, Apple II, Atari, Comodore, Acorn, Oric,
Galeb, Orao, Ultra, y muchas otras. Y muy pronto aparecieron varios fabricantes del
6502 (Rockwell, Sznertek, GTE, NCR, Ricoh, y Comodore quienes toman la
Tecnologa MOS) el cual estaba en su momento de apogeo y se venda a una
velocidad de 15 millones de procesadores por ao. Otros, sin embargo, no se
rindieron. Federico Faggin deja Intel, y empieza su propio Zilog Inc.
En 1976, Zilog anuncia el Z80. Durante la fabricacin de este microprocesador, Faggin
toma una decisin giratoria. Sabiendo que ya se han desarrollado muchos programas
para 8080, Faggin saba que muchos se quedaran fieles a ese microprocesador. As
que decide disear un nuevo
procesador que pueda ser compatible con 8080, o que sea capaz de desarrollar todos
los programas que ya se haban escrito para el 8080. Adems de estas caractersticas,
se agregaron muchas otras para que el Z80 fuera un microprocesador muy poderoso.
Poda direccionar 64 Kb de memoria, tena 176 instrucciones, un gran nmero de
registros, una opcin para refresco de
memoria dinmica de la RAM, mayor velocidad de trabajo etc. El Z80 fue un gran xito
y todos cambiaron del 8080 al Z80. Puede decirse que el Z80 fue el microprocesador
comercializado ms exitoso de ese tiempo. Adems de Zilog, tambin aparecieron
otros nuevos fabricantes como Mostek, NEC, SHARP, y SGS. Z80 estaba en el
corazn de muchas computadoras como en Spectrum, Partner, TRS703, Z-3 etc.
En 1976, Intel propone una versin mejorada del microprocesador de 8 bits, al cual
nombr 8085. Sin embargo, el Z80 era tan bueno que Intel perdi la batalla. Aunque
ms procesadores aparecan en el mercado (6809, 2650, SC/MP etc.), ya todo estaba
decidido. Ya no haba grandes mejoras de parte de los fabricantes para hacer algo
nuevo, as que el 6502 y el Z80 junto con el
6800 permanecieron como los representantes principales de los microprocesadores de
8 bits de ese tiempo.
Aunque en toda esta historia, se mencionan errneamente microprocesadores, la
realidad, es que las primeras PCs, emplearon microcotroladores, los cuales, como ya
vimos, cuentan con un procesador y memoria. Posteriormente, se dio el paso a los
microprocesadores, que no cuentan con la memoria, en el mismo circuito integrado, y
los microcontroladores, tienen su aplicacin en aparatos electrodomsticos
automviles, en la industria, entre otros.
En 1980 aproximadamente, los fabricantes de circuitos integrados iniciaron la difusin
de un nuevo circuito para control, medicin e instrumentacin al que llamaron
microcomputador en un slo chip o de manera ms exacta MICROCONTROLADOR.
Un microcontrolador es un circuito integrado que contiene toda la estructura
(arquitectura) de un microcomputador, o sea CPU, RAM, ROM y circuitos de entrada y
salida. Los resultados de tipo prctico, que pueden lograrse a partir de stos
elementos, son sorprendentes.
Dnde tenemos microprocesadores y microcontroladores?
30% computacin, 30% hogar, 15% comunicaciones, 15% industria, 10% automvil
SISTEMAS EMPOTRADOS (Embedded systems):
Sistemas que incorporan microcontroladores (o microprocesadores) para una tarea
especfica pero que no son visibles ni programables directamente por el usuario.
Empotrado tambin quiere decir oculto o escondido. Cuando se usa un PC, uno es
consciente de que dentro est un microprocesador. Y cundo usamos un telfono
mvil, un reloj, una calculadora, una lavadora, un cargador de bateras, un mando a
distancia, un secador de pelo, un lavaplatos, un equipo de msica,...?
Los microcontroladores de 8 bits dominan en la mayora de las aplicaciones el
microcontrolador es el ncleo del sistema electrnico verstil de bajo coste y reducido
tamao que es capaz de detectar las seales de entrada y generar las salidas de un
equipo, sistema o instrumento. Por su reducido tamao y coste permiten la fcil
implantacin de sistemas de inteligencia distribuida a lo largo de sistemas ms
complejos. Los microcontroladores son los semiconductores ms abundantes de todos
en la actualidad.
Versiones de Memoria de Programa:
OTP, EPROM, EEPROM y FLASH
Los microcontroladores son la evolucin natural de la tecnologa de la microelectrnica
de los microprocesadores. Un microprocesador se basa en una CPU donde el bus de
datos, el bus de direcciones y el bus de control salen al exterior, en ellos se conectan
los perifricos necesarios para realizar un sistema.
Un microcontrolador integra una cantidad de perifricos, as como el bus y permite
tener un dispositivo para cada solucin.
Aunque, siguen existiendo microcontroladores con bus externo, normalmente son de
16 o 32 bits y se utilizan en sistemas donde a parte de los perifricos necesarios se
necesita una gran cantidad de memoria de programa, memoria de datos o
entradas/salidas.
INFLUENCIA DE LOS MICROCONTROLADORES EN LA VIDA DIARIA
El microcontrolador es uno de los logros ms sobresalientes del siglo XX. Hoy existen
casi 15,000 millones de microchips de alguna clase en uso. Para la mitad del siglo
prximo, es posible que el microcontrolador tpico tenga mayor poder de cmputo que
las supercomputadoras ms veloces de hoy.
Nuestros antepasados no podan ni imaginarse el cambio que se iba a producir en sus
vidas este pequeo chip de silicio.
Algunos microcontroladores ms especializados poseen adems convertidores
anlogos digital, temporizadores, contadores y un sistema para permitir la
comunicacin en serie y en paralelo.
Se pueden crear muchas aplicaciones con los microcontroladores. Estas aplicaciones
de los microcontroladores son ilimitadas (el lmite es la imaginacin) entre ellas
podemos mencionar: sistemas de alarmas, juego de luces, paneles publicitarios, etc.
Controles automticos para la Industria en general. Entre ellos control de motores
DC/AC y motores de paso a paso, control de mquinas, control de temperatura, control
de tiempo, adquisicin de datos mediante sensores, etc.
Un controlador es un dispositivo electrnico encargado de, valga la redundancia,
controlar uno o ms procesos. Por ejemplo, el controlador del aire acondicionado,
recoger la informacin de los sensores de temperatura, la procesar y actuar en
consecuencia.
Al principio, los controladores estaban formados exclusivamente por componentes
discretos. Ms tarde, se emplearon procesadores rodeados de memorias, circuitos de
E/S, sobre una placa de circuito impreso (PCB). Actualmente, los controladores
integran todos los dispositivos antes mencionados en un pequeo chip. Esto es lo que
hoy conocemos con el nombre de microcontrolador.
Fig. 15 Pines y Encapsulado del DS1307
Fuente: Hoja de datos del DS1307
2.8.1. Caractersticas del DS1307
semana, y ao (Incluido ao bisiesto) con validez hasta el 2100.
-Byte, con batera de respaldo, RAM de uso general para almacenamiento de
datos.
-Cuadrada programable.
modo de batera de respaldo con el oscilador en
funcionamiento.
-40 C a +85 C.
-Pines DIP o SO.
2.8.2. Descripcin de pines
PIN 1 (X1) y PIN 2 (X2): Cristal de Cuarzo Estndar de 32.768KHz. La
circuitera del oscilador interno est diseada para operaciones con una
capacitancia de carga (CL) de 12.5pF. X1 es la entrada del oscilador y puede
conectarse opcionalmente con un oscilador externo de 32.768kHz. La salida del
oscilador interno, X2, es flotante si un oscilador externo se conecta a X1.
PIN 3 (VBAT): La entrada para el suministro de respaldo es de 3V con una
celda de Litio Estndar u otra fuente de energa. La batera debe mantener un
lmite mximo y mnimo apropiado para su operacin. Si la fuente de suministro no
es requerida, VBAT debe ponerse a tierra.
Pin 4 (GND): Tierra
Pin 5 (SDA): Entrada/Salida serial de datos. SDA es la entrada/salida de datos
para la interfaz serial I2C. El pin SDA se conecta como sumidero y necesita una
resistencia de pull up externa. El voltaje de pull up mximo puede ser de 5.5V sin
tener en cuenta el voltaje VCC.
Pin 6 (SCL): Entrada serial de reloj. SCL es la entrada de reloj para la interfaz
I2C y se usa para sincronizar la transferencia de datos en la interfaz serial. El
voltaje de pull up mximo puede ser de 5.5V y no depende de VCC.
Pin 7 (SQW/OUT): Maneja la seal de salida de onda cuadrada. Cuando est
habilitada, se pone el bit SQWE en 1, y la salida SQW/OUT tiene una de las 4
frecuencias de onda cuadrada 1Hz, 4kHz, 8kHz, 32kHz. El pin SQW/OUT se
conecta como sumidero y necesita una resistencia de pull up externa.
SQW/OUT opera con un voltaje VCC o VBAT. El voltaje de pull up mximo puede
ser de 5.5V y no depende de VCC. Si no se usa, este pin puede dejarse como
salida flotante.
Pin 8 (VCC): fuente de poder primario. Cuando el voltaje es aplicado dentro de
los lmites normales, el dispositivo es totalmente accesible y pueden escribirse y
leerse los datos. Cuando un suministro auxiliar se conecta al dispositivo y VCC
est por debajo de VTP, la lectura y escritura se inhibe. Sin embargo, la funcin de
almacenamiento de tiempo contina sin ser afectado por el bajo voltaje de la
entrada.
El semiconductor Maxim/Dallas DS1307 es un reloj de tiempo real exacto, el
cual
automticamente, mantiene el tiempo y la fecha actual, incluyendo compensa
cin para
meses con menos de 31 das y saltos de ao. La direccin y los datos son t
ransferidos
serialmente por 2 hilos, en bus bi
direccional. Tambin el reloj opera en formato de 24
horas o en formato de 12 horas AM/PM.
Segn se ve en la figura anterior el DS1307 es un dispositivo de 8 pines al que se l
e conecta:
un cristal de cuarzo estndar, de bajo costo, a 32.76 KHz entre los pines 1 y 2 par
a proveer tiempo base exacto.
Opcionalmente se le puede conectar al pin3, bateras de respaldo de 3 volti
os,
asegurando que se mantendr el tiempo a la fecha aunque este desconectada
la
fuente de tensin del circuito principal. El circuito integrado automticamente
detecta que se ha removido la energa en el circuito principal y se conectan l
as
bateras de respaldo cuando es requerido. La batera de respaldo puede durar hast
a
10 aos y se coloca en la misma base de circuito impreso.
El pin 4 estar conectado a tierra y el pin 5 a positivo a una fuente de 5 voltios, el
voltaje mnimo al que trabaja es 4.5 V y el mximo 5.5 V.
Adicionalmente el circuito integrado DS1307 tiene dos caractersticas interesantes.
El
pin 7 es una salida de colector abierto, que puede ser programada para hacer flas
h
cada 1 Hz. Esto permite la colocacin de un led como indicador de segundo
s en
aplicaciones de reloj. El circuito integrado tambin tiene 56 bytes de memoria RA
M
para propsito general, el cual puede ser usado como memoria extra por el Master
PIC.
El pin 6 (SCL) y el pin 5 (SDA) van conectados al PIC donde se transfer
ir la
informacin de manera serial, el microcontrolador tambin tendr identificadas la
s
patas con SCL y SDA, en el caso de PIC18f4550 corresponden a los pines 33 y
34.
En este proyecto estos pines no fueron usados para el reloj de tiempo real
ya que se
utilizaron para la micro SD, en su defecto se usaron los pines 39 (como SDA) y 40
(como SCL)
configurado a travs de software. El cdigo que se encarga de configurar los pines
39 y 40 en
SDA y SCL respectivamente es:
1. #use I2C(MASTER, SDA=PIN_B6, SCL=PIN_B7,FORCE_SW)
En la hoja de especificaciones del fabricante del DS1307, se encontraron los si
guientes
detalles:
Slave address 1101000xaddress size byte bus speed 100kHz
Esto significa que el comando i2c slave a programar en el PIC es el siguiente:
I2cslave %11010000, i2cslow, i2cbyte
Todos los datos de tiempo/fecha estn en formato BCD, lo cual hace muy fcil
su lectura y
escritura usando notacin hexadecimal. Por ejemplo 11:35 a.m. va a cont
ener 11 en el
registro de horas y 35 en el registro de minutos.
Debe tomarse en cuenta que el chip no va a operar hasta que sea puesto el tie
mpo y fecha
actual. Al usar el DS 1307 es muy preciso y ayuda en gran cantidad d
e aplicaciones.
Simplemente se necesita el integrado y el cristal y listo.
1.7.2. Circuito de conexin entre el reloj de tiempo real DS1307 con el microco
ntrolador
PIC18F4550.
Como puede observarse en la figura anterior los pines 5 (SDA) y 6 (SCL) del reloj van
conectadas a los pines 39 y 40 del PIC configurados por software como SDA y SCL
respectivamente a travs de los cuales controla la hora y tiempo actual; entre estos
dos pines se conecta dos resistencias de 10K ohm (pull up).
Adems se conecta un cristal de cuarzo de 32.768 MHz entre los pines 1 (X1) y 2 (X2)
para manejar las oscilaciones del reloj.
Lcd 16x2
En esta entrada vamos a explicar el funcionamiento y conexionado de un LCD con
una resolucin de 16x2.
Que es un LCD?
El LCD(Liquid Crystal Dysplay) o pantalla de cristal lquido es un dispositivo
empleado para la visualizacin de contenidos o informacin de una forma grfica,
mediante caracteres, smbolos o pequeos dibujos dependiendo del modelo. Est
gobernado por un microcontrolador el cual dirige todo su funcionamiento.
En este caso vamos a emplear un LCD de 16x2, esto quiere decir que dispone de
2 filas de 16 caracteres cada una. Los pxeles de cada smbolo o carcter, varan
en funcin de cada modelo.
Como es su conexionado?
En la siguiente imagen de Proteus se puede observar la estructura de sus pines.
Lo podemos dividir en los Pines de alimentacin, pines de control y los pines del
bus de datos bidireccional. Por lo general podemos encontrar ademas en su
estructura los pines de Anodo de led backlight y ctodo de led backlight.
Pines de alimentacin:
Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potencimetro de 10K
conectado a Vdd.
Pines de control:
RS: Corresponde al pin de seleccin de registro de control de datos (0) o registro
de datos(1). Es decir el pin RS funciona paralelamente a los pines del bus de
datos. Cuando RS es 0 el dato presente en el bus pertenece a un registro de
control/instruccin. y cuando RS es 1 el dato presente en el bus de datos
pertenece a un registro de datos o un carcter.
RW: Corresponde al pin de Escritura(0) o de Lectura(1). Nos permite escribir un
dato en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitacin. Si E(0) esto quiere decir que el
LCD no esta activado para recibir datos, pero si E(1) se encuentra activo y
podemos escribir o leer desde el LCD.
Pines de Bus de datos:
El Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la
comunicacin con el LCD podemos hacerlo utilizando los 8 bits del bus de
datos(D0 a D7) o empleando los 4 bits mas significativos del bus de datos(D4 a
D7). En este caso vamos a explicar la comunicacin con el bus de 4 bits.
DDRAM y CGROM?
Son las dos zonas de memoria del LCD.
La memoria DDRAM(Data Display Ram): corresponde a una zona de memoria
donde se almacenan los caracteres que se van a representar en pantalla. Es decir
es la memoria donde se almacenan los caracteres a mostrar con su
correspondiente posicin.
La memoria CGROM es una memoria interna donde se almacena una tabla con
los caracteres que podemos visualizar en el lcd. En la imagen podemos ver un
ejemplo de la tabla con un contenido de 192 caracteres.
La memoria CGRAM(Character Generator Ram): en ella se pueden almacenar
nuestros propios caracteres.
La librera del LCD:
Para poder visualizar los caracteres o smbolos en el LCD es necesario que en el
programa de cdigo fuente a emplear, incluyamos la librera de este.
En este caso empleamos la librera "lcd.c", la cual hemos modificado. Siempre que
utilicemos una librera de este tipo tendremos que analizarla para saber cuales son
los pines de control y los pines para el Bus de datos, en este caso podemos
observar que estn definidos al comienzo de la misma.
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
En el resto de la librera se puede encontrar todas las estructuras necesarias as
como las funciones que nos permiten utilizar nuestro LCD.
Podemos encontrar funciones como :
lcd_init: inicializa el lcd.
lcd_gotoxy: establece la posicion de escritura en el lcd.
lcd_putc: nos muestra un dato en la siguiente posicin del lcd, podemos emplear
funciones como \f para limpiar el display, \n cambio a la segunda lnea, \b mueve
una posicin atrs.
lcd_getc(x,y): devuelve caracteres a la posicin x,y.
Otras funciones: lcd_send_nibble(BYTE n), lcd_send_byte(BYTE address, BYTE
n).
Aqu se puede ver un ejemplo de una sencilla programacin en una Pic control, y
muestra de datos en el LCD, son datos inespecficos que no muestran ninguna
informacin.