Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ndice
1. INTRODUCCIN AL MICROCONTROLADOR 1.1. Qu es un microcontrolador? . . . . . . . . . . . . . . . . 1.2. Un poco de historia . . . . . . . . . . . . . . . . . . . . . . 1.3. Diferencias entre microprocesador y microcontrolador . . . 1.4. Ventajas de un microcontrolador frente a un microprocesador 1.5. Los microcontroladores hoy da . . . . . . . . . . . . . . . 1.6. Tipos de arquitecturas de microcontroladores . . . . . . . . 1.6.1. Arquitectura Von Neumann . . . . . . . . . . . . . 1.6.2. Arquitectura Harvard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 3 3 5 5 5 6 6 6 6 8 8 8 8 8 9 9 9 9 9 10 10 10 10 11 11 11 11 11 11 11 12 12 12 13 15
2. ESTRUCTURA Y ELEMENTOS DE LOS MICROCONTROLADORES 2.1. El procesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. CISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2. RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3. SISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. ROM con mscara . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. OTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3. EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4. EEPROM, E2PROM o E2 PROM . . . . . . . . . . . . . . . . . 2.2.5. FLASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Puertas de Entrada y Salida . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Reloj principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. RECURSOS ESPECIALES 3.1. Temporizadores o Timers . . . . . . . . . . . . . 3.2. Perro guardin o Watchdog . . . . . . . . . . . . 3.3. Proteccin ante fallo de alimentacin o Brownout 3.4. Estado de reposo de bajo consumo . . . . . . . 3.5. Conversor A/D (CAD) . . . . . . . . . . . . . . 3.6. Conversor D/A (CDA) . . . . . . . . . . . . . . 3.7. Comparador analgico . . . . . . . . . . . . . . 3.8. Modulador de anchura de impulsos o PWM . . . 3.9. Puertos digitales de E/S . . . . . . . . . . . . . . 3.10. Puertas de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. LA FAMILIA DE LOS PIC 4.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . 4.2. La Familia PIC . . . . . . . . . . . . . . . . . . . . . 4.3. Gama media. PIC16CXXX con instrucciones de 14 bits 4.4. Gama alta: PIC17CXXX con instrucciones de 16 bits. .
Prefacio
Este curso est orientado a las personas que estn interesadas en aprender a programar un PIC y ponen todo su empeo en ello, al igual que yo lo hago en poner toda la informacin posible para la mejor compresin de las bases tericas. As pues adems de aprender todo sobre el mundo del PIC, es necesario saber algo de electrnica y electrnica digital, de lo contrario todo lo que escriba aqu sobre microcontroladores ser chino. No descarto la posibilidad de que haya gente que ya est iniciada en este mundo, pero hay que pensar en todos
1. INTRODUCCIN AL MICROCONTROLADOR
1.1. Qu es un microcontrolador?
Un microcontrolador es un dispositivo electrnico capaz de llevar a cabo procesos lgicos. Estos procesos o acciones son programados en lenguaje ensamblador por el usuario, y son introducidos en este a travs de un programador. Esto suena un poco complicado, pero slo es un resumen de 3 lneas. A lo largo de este tutorial veremos algunas de las reglas y trucos de este lenguaje complicado por su sencillez.
Figura 1: Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se congure a la medida de la aplicacin
Figura 2: El microcontrolador es un sistema cerrado. Todas las partes del procesador estn contenidas en su interior y slo salen al exterior las lneas que gobiernan los perifricos.
en microcontrolador es mucho menor y, lo mejor de todo, el tiempo de desarrollo de su proyecto electrnico se disminuye considerablemente.
1.6.2. Arquitectura Harvard La arquitectura Harvard tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes. Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y la otra slo almacena datos (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 memoria de programa pueden disearse de tal manera que todas las instrucciones tengan una sola posicin de memoria de programa de longitud. Adems, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecucin de una instruccin, y al mismo tiempo leer la siguiente instruccin a ejecutar. Ventajas de esta arquitectura: 1. 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. 2. El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada 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).
Figura 4: Arquitectura Harvard El microcontrolador PIC 16F84 posee arquitectura Harvard, con una memoria de datos de 8 bits, y una memoria de programa de 14 bits. En la Figura 5 vemos la arquitectura interna organizada en bloques interconectados, en donde se incluye la memoria RAM, la memoria EEPROM, los puertos de entrada y salida (I/O), etc.
2.1. El procesador
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 decodicacin 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. 2.1.1. CISC Un gran nmero de procesadores usados en los microcontroladores estn basados en la losofa CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de 80 instrucciones mquina en su repertorio, 6
algunas de las cuales son muy sosticadas 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, es decir, que si las tuvisemos que implementar con instrucciones bsicas, acabaramos con dolor de cabeza. 2.1.2. RISC Tanto la industria de los computadores comerciales como la de los microcontroladores estn decantndose hacia la losofa 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. 2.1.3. SISC En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especco, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta losofa se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especco).
2.2. Memoria
En los microcontroladores la memoria de instrucciones y datos est integrada en el propio chip. 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 computadores personales: No existen sistemas de almacenamiento masivo como disco duro o disquetes. Como el microcontrolador slo se destina a una tarea en la memoria ROM, slo hay que almacenar un nico programa de trabajo. La 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 guarda r una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales estn habituados a manejar Megabytes de memoria, pero, los diseadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Segn el tipo de memoria ROM 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. 2.2.1. ROM con mscara Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. Si tenemos idea de cmo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se fabrican 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 mascara 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 micromtricos que componen un chip. Ahora ya sabes de donde viene la mscara y no te acostars sin saber una cosa ms. 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.2.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.
2.2.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 supercie 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. 2.2.4. EEPROM, E2PROM o E2 PROM 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 supercie. 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 coneren una gran exibilidad y rapidez a la hora de realizar modicaciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es nito, por lo que no es recomendable una reprogramacin continua. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modicar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta, como ya veremos ms adelante. 2.2.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. 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 modicarse 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.
3. 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 especcos que incorporan los microcontroladores son: Temporizadores o Timers. Perro guardin o Watchdog. Proteccin ante fallo de alimentacin o Brownout. Estado de reposo o de bajo consumo (Sleep mode). Conversor A/D (Analgico ->Digital). Conversor D/A (Digital ->Analgico). Comparador analgico. Modulador de anchura de impulsos o PWM (Pulse Wide Modulation). Puertas de E/S digitales. Puertas de comunicacin. A continuacin pasamos a ver con un poco ms de detalle cada uno de ellos
11
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. Tanto el I2C en televisores, como el Bus CAN en automviles, fueron diseados para simplicar 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.
Figura 6: Diagrama de conexiones de los PIC12Cxxx de la gama baja Aunque los PIC enanos slo tienen 8 patillas, pueden destinar hasta 6 como lneas de E/S para los perifricos porque disponen de un oscilador interno R-C, lo cual es una de su principales caractersticas. En la Figura 7 se presentan las principales caractersticas de los modelos de esta subfamilia, que el fabricante tiene la intencin de potenciar en un futuro prximo. Los modelos 12C5xx pertenecen a la gama baja, siendo el tamao de las instrucciones de 12 bits; mientras que los 12C6xx son de la gama media y sus instrucciones tienen 14 bits. Los modelos 12F6xx poseen memoria Flash para el programa y EEPROM para los datos. Se trata de una serie de PIC de recursos limitados, pero con una de la mejores relaciones coste/prestaciones. Sus versiones estn encapsuladas con 18 y 28 patitas y pueden alimentarse a partir de una tensin de 2,5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen un repertorio de 33 instrucciones cuyo formato consta de 12 bits. No admiten ningn tipo
12
Figura 8: Diagrama de patas de los PIC de la gamma baja que responden a la nomenclatura PIC16C54/56 de interrupcin y la Pila slo dispone de dos niveles. En la Figura 8 se muestra el diagrama de conexionado de uno de estos PIC. Al igual que todos los miembros de la familia PIC16/17, los componentes de la gama baja se caracterizan por poseer los siguientes recursos: Sistema Power On Reset, Perro guardin (Watchdog o WDT), Cdigo de proteccin, Sep, etc. Sus principales desventajas o limitaciones son que la pila slo tiene dos niveles y que no admiten interrupciones. En la Figura 9 se presentan las principales caractersticas de los modelos de esta subfamilia.
13
14
15