Este documento describe los sistemas basados en microcontroladores. Explica que los microcontroladores son chips que contienen toda la electrónica necesaria para realizar funciones de control, incluyendo partes aritméticas, lógicas y de control. También describe las aplicaciones comunes de los microcontroladores en dispositivos domésticos, industriales y de comunicaciones. Finalmente, define un microcontrolador como un circuito programable que contiene todos los componentes de una computadora dedicada al control de una tarea específica.
0 calificaciones0% encontró este documento útil (0 votos)
526 vistas32 páginas
Este documento describe los sistemas basados en microcontroladores. Explica que los microcontroladores son chips que contienen toda la electrónica necesaria para realizar funciones de control, incluyendo partes aritméticas, lógicas y de control. También describe las aplicaciones comunes de los microcontroladores en dispositivos domésticos, industriales y de comunicaciones. Finalmente, define un microcontrolador como un circuito programable que contiene todos los componentes de una computadora dedicada al control de una tarea específica.
Este documento describe los sistemas basados en microcontroladores. Explica que los microcontroladores son chips que contienen toda la electrónica necesaria para realizar funciones de control, incluyendo partes aritméticas, lógicas y de control. También describe las aplicaciones comunes de los microcontroladores en dispositivos domésticos, industriales y de comunicaciones. Finalmente, define un microcontrolador como un circuito programable que contiene todos los componentes de una computadora dedicada al control de una tarea específica.
Este documento describe los sistemas basados en microcontroladores. Explica que los microcontroladores son chips que contienen toda la electrónica necesaria para realizar funciones de control, incluyendo partes aritméticas, lógicas y de control. También describe las aplicaciones comunes de los microcontroladores en dispositivos domésticos, industriales y de comunicaciones. Finalmente, define un microcontrolador como un circuito programable que contiene todos los componentes de una computadora dedicada al control de una tarea específica.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1/ 32
Sistemas con microprocesadores Parte II
Ing. Gerardo Collaguazo 50
CAPITULO 2 SISTEMAS CON MICRONTROLADORES "La imaginacin es ms importante que el conocimiento" A. Einstein Los tiempos que corren suelen hacerlo deprisa; cuando uno mira hacia atrs nota que lo que hasta ayer era imprescindible, ha quedado demasiado lejos. Es por esta razn que solemos decir: hay que tener memoria ya sea para recordar los gratos momentos o como para no olvidarse de aquellos errores que nos han costado ms de una lgrima y bastantes dolores de cabeza. Desde hace ms de dos dcadas, las tcnicas de integracin a gran escala han permitido colocar en una sola pastilla bloques funcionales entrelazados, que contienen toda la electrnica necesaria para realizar funciones aritmticas, lgicas y de control. Se hace difcil imaginar sistemas automticos, de control y proceso, en los cuales no intervenga un microprocesador o microcontrolador, pero sabemos qu es un microcontrolador? En este captulo haremos una descripcin detallada de estos sper chips, basados en controladores comerciales (de la empresa MICROCHIP), para tengan una idea de los alcances de las aplicaciones tanto a nivel comercial, industrial y de comunicaciones. PRE-REQUISITOS Para la comprensin adecuada del contenido de Microcontroladores, se requiere los conocimientos previos de: Electrnica bsica: diodos semiconductores, transistores, elementos de visualizacin (LEDs, Displays, etc.). Electrnica Digital: Sistemas de numeracin, Compuertas lgicas, Registros. Sistemas Anlogo-Digitales: Amplificadores operacionales, memorias. OBJETIVOS Establecer los fundamentos necesarios para la comprensin adecuada del funcionamiento y estructura internos de los microcontroladores para su correcta programacin en diversas aplicaciones, sean estas industriales o de comunicaciones. Al finalizar el estudio de este captulo, el estudiante estar en capacidad de: Realizar un anlisis comparativo entre los controladores tradiciones y los sistemas basados en microprocesadores y microcontroladores. Describir correctamente su estructura fsica y funcional de un microcontrolador. Interpretar de manera eficiente las hojas de datos de los diferentes microcontroladores. Establecer diferencias las caractersticas entre las diferentes marcas y familias de microcontroladores. Describir, con criterio fundamentado, la funcin las diferentes partes que constituyen los sistemas basados en microcontroladores. Realizar la correcta conexin bsica del microcontrolador entre el protoboard y la fuente de alimentacin. Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 51 2.1 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, los cuales son bsicos en las carreras tcnicas de Electrnica y Electricidad. El desarrollo de cada nuevo dispositivo electrnico trae consigo tcnicas de diseo diferentes, por lo general, ms simples. En los aos sesenta, para construir un reloj digital se necesitaba acoplar un buen nmero de circuitos lgicos como contadores, divisores, decodificadores y redes combinatorias. Al mismo tiempo el diseador deba poseer muy buenos conocimientos sobre cada uno de los elementos. Los microcontroladores estn conquistando el mundo. Estn presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Hoy en da es comn encontrar microcontroladores en diferentes aparatos sean estos de uso domstico, informtico, automotriz, industrial, etc... Las aplicaciones son infinitas, el nico lmite es la imaginacin! 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 reducir su consumo. Los microcontroladores estn siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, microondas, frigorficos, televisores, computadoras, impresoras, mdems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estamos 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. 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 aquellos. 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 microcontroladores 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. Fig. 2.1 Texto en una LCD con mC. Fig. 2.2 Aplicacin de un mC en Automotriz Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 52 En cuanto a las tcnicas de fabricacin, cabe decir que prcticamente la totalidad de los microcontroladores actuales se fabrican con tecnologa CMOS 4 (Complementary Metal Oxide Semiconductor). Esta tecnologa supera a las tcnicas anteriores por su bajo consumo y alta inmunidad al ruido. La distribucin de las ventas segn su aplicacin es la siguiente: Un 15% se absorbe en las aplicaciones relacionadas con los computadores y sus perifricos. Un 27% se utiliza en las aplicaciones de consumo (electrodomsticos, juegos, TV, vdeo, etc.) El 30% de las ventas mundiales se destin al rea de las comunicaciones. Otro 10% fue empleado en aplicaciones industriales. El resto de los microcontroladores vendidos en el mundo, aproximadamente un 18% fueron adquiridos por las industrias de automocin. 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. 2.1.1 SISTEMAS CON MICROCONTROLADORES La posibilidad que tiene el microcontrolador de manejar seales de entrada y de salida, as como su capacidad de procesar datos y tomar decisiones en base a un programa, lo convierten en uno de los elementos electrnicos ms verstiles que existen. El siguiente esquema muestra un sistema microcontrolado. Cuando se habla de dispositivos de entrada se hace referencia a todos los elementos que pueden cambiar de estado ante alguna determinada condicin y generan una seal que puede ser utilizada por el microcontrolador para tomar alguna decisin, por ejemplo un teclado, un interruptor, un sensor, etc. Los dispositivos de salida pueden ser indicadores visuales (leds, ASS, etc.), indicadores sonoros (zumbadores, sirenas), interruptores de potencia que manejan motores, contactores, rels, electrovlvulas, etc. Pero, con todo lo que hemos expuesto hasta el momento, sabemos... Qu es un controlador? Qu es un microcontrolador? Un CONTROLADOR es un dispositivo que se utiliza para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna y, cuando traspasa los lmites prefijados, genera las seales adecuadas que accionan los actuadores que intentan llevar el valor de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha permanecido invariable a travs del tiempo, su implementacin fsica ha variado frecuentemente. Hace tres dcadas, los controladores se construan exclusivamente con componentes de lgica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y Fig. 2.3 Mercado de los microcontroladores Fig. 2.4 Sistemas con microcontroladores Fig. 2.5 Sistema con microcontrolador y los dispositivos E/S Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 53 puertos de E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo computador contenido en el corazn (chip) de un circuito integrado. El microcontrolador es un circuito programable que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamao, suele ir incorporado en el propio dispositivo que lo gobierna, por lo tanto, el microcontrolador es un computador dedicado. En su memoria solo reside un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida soportan el conexionado de los sensores y actuadores del dispositivo a controlar y todos los recursos complementarios disponibles tienen como nica finalidad atender sus requerimientos. Una vez programado y configurado, el microcontrolador solo sirve para gobernar la tarea asignada [1]. 2.1.2 MICROPROCESADOR vs MICROCONTROLADOR Recordemos del captulo anterior, que el microprocesador constituye la CPU de un sistema basado en microprocesador y est formado por la unidad de control, que interpreta las instrucciones, y el camino de datos que las ejecuta. Los pines del microprocesador sacan al exterior las lneas de sus buses de direcciones, datos y control, para permitir conectarle con la memoria y los mdulos de E/S y configurar el sistema implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuracin es variable de acuerdo con la aplicacin a la que se destine. Salida Entrada B. Datos B. Dir. B. Control Fig. 2.6 Sistema con microprocesador Si consideramos la estructura del sistema de la figura anterior, podemos ver que existe una estructura constante del sistema con microprocesador en un circuito de control, por esta razn, los fabricantes de los circuitos integrados decidieron realizar un solo chip que contenga todos estos elementos, llamndolo a este chip microcontrolador, por lo tanto diremos que es un sistema cerrado. En la siguiente figura, podemos observar de manera general los componentes internos de un microcontrolador. Para el diseo de un sistema con microcontrolador, se requieren nicamente una fuente de alimentacin, un circuito de reloj y el chip microcontrolador. Adems se requiere grabar el programa en la memoria ROM, los puertos ya estn listos para conectarse al mundo exterior. A base a todo lo expuesto, podemos mencionar algunas ventajas del diseo de sistemas con microcontroladores: RD WR CK CPU D0-7 A0-19 INT MREQ Clock RD WR ROM 2K D0-7 CS RD WR RAM 2K D0-7 CS RD WR E/S 8255 D0-7 CS DECODI FICADOR Fig. 2.7 Sistema con microcontrolador Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 54 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 chip 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. El circuito impreso es mucho ms pequeo ya que todos los componentes estn en un solo chip. El costo total del sistema es mucho menor, al reducir el nmero de elementos. Los problemas de ruido que pueden afectar los sistemas con microprocesador se eliminan, debido a que todo el sistema principal se encuentra en un solo encapsulado. El tiempo de desarrollo de un sistema se reduce considerablemente. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. 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). 2.1.3 FAMILIAS DE MICROCONTROLADORES En el mercado existen varias marcas reconocidas de microcontroladores, teniendo cada una de estas sus caractersticas especiales, pero su estructura bsica es la misma en todas estas familias, por eso es que si nos dedicamos al estudio de una estas familias, el comprender las dems ser ms fcil. Entre las ms conocidas tenemos: Motorola, Intel, Phillips, National y Microchip. A continuacin mencionaremos las caractersticas generales de algunas de estas marcas. Familia Intel A continuacin se presenta un resumen de las principales caractersticas de esta familia de microcontroladores, pues sta fue la pionera e hizo historia en la dcada de los 80s. Esta familia de microcontroladores de 8 bits contiene varias referencias, cada una de ellas acondicionada para aplicaciones especficas. Todas las versiones existentes tienen: CPU, memoria RAM, temporizadores, puertos paralelos, entradas/salidas seriales. El 8048 es el padre los microcontroladores actuales, el primero de todos. Su precio disponibilidad y herramientas de desarrollo hacen que todava sea muy popular. El 8051 tiene 4 Kbytes de memoria ROM que debe programarse durante el proceso de fabricacin del circuito integrado. En el 8751, la memoria ROM se ha reemplazado por una memoria EPROM que el usuario puede programar y borrar con luz ultravioleta. Referencia Memoria ROM Memoria RAM Timers 8051 4K 128 2 8052 8K 256 3 8031 Externa 128 2 8032 Externa 256 3 8751 4K (Eprom) 128 2 El 8031 es un caso especial, no tiene memoria ROM interna, por lo que se debe colocar una externa; para la comunicacin se emplean tres de los cuatro puertos paralelos. Familia Motorola 68HC05 Es una de las familias ms empleadas en el mundo. Ha sido diseada para aplicaciones de control especializado, en lugar de procesamiento de datos, y forma parte de los dispositivos de produccin masiva como juguetes, equipos de Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 55 video, impresoras, modems, electrnica automotriz y electrodomsticos. Cada ao aparecen nuevos modelos que reemplazan a los anteriores. Todos tiene una estructura bsica: CPU de 8bits, RAM y ROM, puertos de entrada- salida y temporizadores, algunos tienen adems, puertos seriales, convertidores anlogo-digital y memorias EEPROM o EPROM. Referencia Memoria ROM Memoria RAM Timers Otros 68HC05C4 4K 176 1 68HC0508 8K 176 1 68HC705C2 2K 176 1 68HC705C4 4K(Eprom) 176 1 68HC705K1 504 32 y 64 1 69HC05BM 2K 176 1 mejorado C A/D Familia Microchip Esta formada por una amplia variedad de componentes con diferentes tamaos de memoria, diferentes velocidades, diferentes tipos de encapsulados y diferente nmero de pines de entrada/salida. Esta familia est muy difundida actualmente a nivel mundial; la mayora de revistas y pginas de internet la usan en sus proyectos y se dedican a publicar artculos peridicamente. Su flexibilidad, configuraciones para todas las necesidades y bajo costo, la hacen muy atractiva para los consumidores a gran escala y para los estudiantes o diseadores independientes. El objeto de este curso, es el estudio de los microcontroladores PIC de la firma Microchip Technology Inc. Considerando el momento actual, comparando los parmetros fundamentales con los modelos comerciales de otros fabricantes y las aplicaciones ms habituales a las que se destinan los microcontroladores, podemos afirmar que casi un 90% de los casos la eleccin de una versin adecuada de PIC es la mejor solucin. Sin embargo, otras familias de microcontroladores son ms eficaces en aplicaciones concretas, especialmente si predomina una caracterstica especial. El curso lo dedicaremos al estudio del funcionamiento del PIC 16F628A, que pertenece a la gama media y tiene 18 pines. La idea que se persigue es aprender a manejar bien esto modelo, pues hacerlo con los dems es muy fcil, solo necesitamos el inters por progresar y agrandar nuestros conocimientos. Sin embargo, en la parte final, para algunas prcticas, se explicar en funcionamiento de los PIC12F675, PIC16F819 y PIC16F877A. Se han elegido, para las prcticas de laboratorio, estos microcontroladores porque tienen una memoria de programa tipo Flash que en un laboratorio posibilita un rpido desarrollo de prcticas. Tambin por su alta velocidad, bajo consumo y bajo costo. 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: FABRICANTE FAMILIA ARQUITECTURA IDE Analog Device http://www.analog.com/ ADUC8xx CISC 8 bits 8051 - ADUC7xx RISC 32 bits ARM7 - Atmel http://www.atmel.com/ AT89xxx CISC 8 bits 8051 prog. independientes TS87xxx CISC 8 bits prog. independientes AVR RISC 8 bits AVR studio AT91xxx RISC 16 bits ARM7/9 - Cirrus Logic http://www.cirrus.com/ EP73xxx RISC 32 bits ARM7 - EP93xxx RISC 32 bits ARM9 - Cygnal http://www.silabs.com/ C8051F CISC 8 bits 8051 - Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 56 Freescale (Motorola) http://www.freescale.com/ HC05 CISC 8 bits 6800 - 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 - Fujitsu http://www.fujitsu.com/ F2MC-8 CISC 8 bits - F2MC-16 CISC 16 bits - FR RISC 32 bits - Infineon http://www.infineon.com/ C5xxx CISC 8 bits 8051 - C8xxx CISC 8 bits 8051 - C16xxx CISC 16 bits - XC16xxx CISC 16 bits - TCxxx CISC 32 bits - Intel http://www.intel.com/ MCS251 CISC 8 bits 8051 - MCS96/296 CISC 16 bits - Maxim (Dallas) http://www.maxim-ic.com/ DS80Cxxx CISC 8 bits 8051 - DS83Cxxx CISC 8 bits 8051 - DS89Cxxx CISC 8 bits 8051 - MAXQ RISC 16 bits - Microchip http://www.microchip.com/ PIC 10,12,14,16,17,18 RISC 8 bits MPLAB dsPIC RISC 16 bits MPLAB NS (NATIONAL SEMICONDUCTOR) http://www.national.com/ COP8xxx CISC 8 bits Webench CR16Cxxx CISC 16 bits - CP3000 RISC 16 bits - Philips http://www.semiconductors.philips.com/ P8xxx CISC 8 bits 8051 - Xaxxx CISC 16 bits - LPC2xxx RISC 32 bits ARM7 - Rabbit Semiconductor http://www.rabbitsemiconductor.com/ Rabbit2000 CISC 8 bits - Rabbit3000 CISC 8 bits - Renesas http://www.renesas.com/ 740 CISC 8 bits - H8 CISC 16 bits HEW Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 57 H8S CISC 16 bits HEW M16C CISC 16 bits - 7700 CISC 16 bits - H8SX CISC 32 bits - Super H CISC 32 bits HEW ST (SGS-THOMSON) http://www.stm.com/ 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 - ARM7 RISC 32 bits ARM7 - Texas Instruments http://www.ti.com/ MSC12xxx CISC 8 bits 8051 - MSP430 CISC 16 bits Eclipse TMS470 RISC 32 bits ARM7 - Toshiba chips.toshiba.com 870 CISC 8 bits - 900/900H CISC 16 bits - 900/900H (VER ESTO) CISC 32 bits - Ubicom (Scenix) http://www.ubicom.com/ SXxx RISC 8 bits - Zilog http://www.zilog.com/ Z8xxx CISC 8 bits Z80 - Z8Encore! CISC 8 bits Z80 - eZ80Aclaim CISC 8 bits Z80 - De todos los de la tabla, en una prxima ocasin se presentar un estudio detallado del microcontrolador ATMEL- AVR especficamente los de las serie ATMEGAXXX. 2.1.4 QU MICROCONTROLADOR EMPLEAR? A la hora de escoger el microcontrolador a emplear en un diseo concreto hay que tener en cuenta multitud de factores, como la documentacin y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las caractersticas del microcontrolador (tipo de memoria de programa, nmero de temporizadores, interrupciones, etc.). Estas son algunas caractersticas tcnicas que debemos tomar en cuenta en el momento de elegir un microcontrolador: Costes. Como es lgico, los fabricantes de microcontroladores compiten duramente para vender sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10 veces ms microcontroladores que microprocesadores. Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su producto una diferencia de precio en el microcontrolador de algunos centavos 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). Si el fabricante desea reducir costes debe tener en cuenta las herramientas de apoyo con que va a contar: emuladores, simuladores, ensambladores, compiladores, etc. Es habitual que muchos de ellos siempre se decanten por microcontroladores pertenecientes a una nica familia. Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 58 Aplicacin. Antes de seleccionar un microcontrolador es imprescindible analizar los requisitos de la aplicacin: Procesamiento de datos: puede ser necesario que el microcontrolador realice clculos crticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rpido para ello. Por otro lado, habr que tener en cuenta la precisin de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 32 bits, o incluso a hardware de coma flotante. Una alternativa ms barata y quiz suficiente es usar libreras para manejar los datos de alta precisin. Entrada Salida: para determinar las necesidades de Entrada/Salida 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. Una vez realizado este anlisis puede ser necesario aadir perifricos hardware externos o cambiar a otro microcontrolador ms adecuado a ese sistema. Consumo: 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. Memoria: para detectar las necesidades de memoria de nuestra aplicacin debemos separarla en memoria voltil (RAM), memoria no voltil (ROM, EPROM, 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 EPROM, OTP y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versin preliminar, aunque sea en pseudo-cdigo, 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. Usar un microcontrolador de 4 bits supondr una reduccin en los costes importante, mientras que uno de 8 bits puede ser el ms adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado coste, deben reservarse para aplicaciones que requieran sus altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado). Diseo de la placa: la seleccin de un microcontrolador concreto condicionar el diseo de la placa de circuitos. Debe tenerse en cuenta que quiz usar un microcontrolador barato encarezca el resto de componentes del diseo. 2.1.5 RECURSOS COMUNES DE LOS MICROCONTROLADORES Un microcontrolador al estar integrado en un chip, su estructura fundamental y sus caractersticas bsicas son muy parecidas, sin embargo cada fabricante intenta enfatizar los recursos ms idneos para las aplicaciones a las que se destinan preferentemente. Estos disponen de los siguientes elementos bsicos: 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. Los microcontroladores adoptaron la arquitectura clsica de von Neumann, pero en el momento presente se impone la arquitectura Harvard, con procesador Segmentado, con repertorio de instrucciones tipo RISC, con procesamiento de datos Ortogonal (ver captulo 1). Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 59 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 guardar 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 64 kbytes de tipo EEPROM o Flash y de RAM comprendidas entre 20 y 512 bytes. 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 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. LNEAS DE ENTRADA/SALIDA Tambin llamados puertos, empleados para la comunicacin con elementos externos. La principal utilidad de las patitas que posee la cpsula que contiene un microcontrolador es soportar las lneas de E/S que comunican al computador interno con los perifricos exteriores. Segn los controladores de perifricos que posea cada modelo de microcontrolador, las lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control. 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. 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 RC. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energa. LGICA DE CONTROL Coordina la interaccin y funcionamiento entre los dems bloques a travs de las lneas de control. Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 60 2.1.6 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 diversos mdulos para el control de perifricos, que incluyen los microcontroladores son: 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 disminuyendo 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 patitas del microcontrolador, el mencionado registro se va incrementando o disminuyendo al ritmo de dichos impulsos. PERRO GUARDIN O WATCHDOG Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botn del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del da. 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, no se refrescar al Perro guardin y, al completar su temporizacin, ladrar y ladrar hasta provocar el reset. 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 (Brown_Out). Mientras el voltaje de alimentacin sea inferior al de Brown_Out el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. 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. 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 patitas del circuito integrado. CONVERSOR D/A (CDA) Transforma los datos digitales obtenidos del procesamiento del microcontrolador en su correspondiente seal analgica que saca al exterior por una de las patitas de la cpsula. Existen muchos actuadores que trabajan con seales analgicas. Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 61 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 patitas 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 ANCHO DE PULSOS O PWM Son circuitos que proporcionan en su salida pulsos de anchura variable, que se ofrecen al exterior a travs de las patitas del encapsulado. PUERTAS 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: 1. UART, adaptador de comunicacin serie asncrona. 2. USART, adaptador de comunicacin serie sncrona y asncrona 3. PSP, Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. 4. USB (Universal Serial Bus), que es un moderno bus serie para los PC. 5. Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. 6. 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. En el siguiente grfico, podemos ver los componentes que configuran el microcontrolador. Fig. 2.8 Recursos especiales de los microcontroladores 2.1.7 LA FAMILIA DE LOS PIC COMO ELECCIN Qu es lo que ocurre con los PIC?, Por qu estn en boca de todos? Hemos buscado en multitud de bibliografa y realmente nadie da una respuesta concreta, pero una aproximacin a la realidad puede ser esta: mC Interrupciones C A/D Comparadores Comunicacin serie o paralelo Salida PWM Memoria EEPROM Temproizador/ contador Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 62 Los PIC tienen ngel, tienen algo que fascina a los diseadores, puede ser la velocidad, el precio, la facilidad de uso, la informacin, las herramientas de apoyo... Quizs un poco de todo eso es lo que produce esa imagen de sencillez y utilidad. Es probable que en un futuro prximo otra familia de microcontroladores le arrebate ese algo. Queremos constatar que para las aplicaciones ms habituales (casi un 90%) la eleccin de una versin adecuada de PIC es la mejor solucin; sin embargo, dado su carcter general, otras familias de microcontroladores son ms eficaces en aplicaciones especficas, especialmente si en ellas predomina una caracterstica concreta, que puede estar muy desarrollada en otra familia. Los detalles ms importantes que vuelven locos a los profesionales de la microelectrnica y microinformtica y las razones de la excelente acogida que tienen los PIC son los siguientes: Sencillez de manejo: Tienen un juego de instrucciones reducido; 35 en la gama media. Buena informacin, fcil de conseguir y econmica. Precio: Su coste es comparativamente inferior al de sus competidores. Poseen una elevada velocidad de funcionamiento. Buen promedio de parmetros: velocidad, consumo, tamao, alimentacin, cdigo compacto, etc. Herramientas de desarrollo fciles y baratas. Muchas herramientas software se pueden recoger libremente a travs de Internet desde Microchip (http://www.microchip.com). Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC. Diseo rpido. La gran variedad de modelos de PIC permite elegir el que mejor responde a los requerimientos de la aplicacin. Una de las razones del xito de los PIC se basa en su utilizacin. Cuando se aprende a manejar uno de ellos, conociendo su arquitectura y su repertorio de instrucciones, es muy fcil emplear otro modelo. 2.1.8 LAS GAMAS DE LOS PIC Una de las labores del tcnico de diseo es la eleccin del modelo del microcontrolador que mejo satisfaga las necesidades del proyecto con el mnimo presupuesto. La gran variedad de modelos de microcontroladores PIC (254 dispositivos a noviembre de 2004) permite que el usuario pueda seleccionar el ms conveniente para su proyecto: El nmero de patillas de E/S vara de 4 a 70, segn el modelo. Casi todos disponen de una memoria EEPROM de 16 a 1024 bytes para almacenar datos y recuperarlos despus de haber eliminado la alimentacin. Las frecuencias ms habituales de funcionamiento mximas, segn el modelo, son 4 MHz y 10 MHz, llegando algunos a los 48 MHz. Adems de las entradas/salidas digitales y temporizadores y contadores, segn el modelo, podemos disponer de entradas/salidas analgicas (convertidores A/D, D/A), comparadores analgicos, amplificadores operacionales, puerto serie, I 2 C, USB. Segn la versin de PIC, la Pila o "Stack" dispone de un cierto nmero de niveles lo que supone poder encadenar ms o menos subrutinas. Los microcontroladores PIC ms sencillos no admiten interrupciones, pero el resto si. Hay PIC donde el temporizador TMR1 tiene un circuito oscilador que puede trabajar asncronamente y que puede incrementarse aunque el microcontrolador se halle en el modo de reposo ("sleep"), posibilitando la implementacin de un reloj en tiempo real. En algunos modelos las lneas de E/S del uno o mas puertos presentan una carga "pull-up" activada por software. Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 63 Microchip dispone de cuatro gamas de microcontroladores de 8 bits para adaptarse a las necesidades de la mayora de los clientes potenciales, a saber: 2.1.8.1 GAMA ENANA: PIC12FXXX Se trata de un grupo de PIC de reciente aparicin que ha acaparado la atencin del mercado. Su principal caracterstica es su reducido tamao, ya que los PIC12CXXX/PIC12FXXX son de 8 pines. Tienen un set de instrucciones de 12 14 bits, un voltaje de operacin muy bajo, de 2.5 y 5.5V y consume menos de 2mA a 5V, manejo de interrupciones, una pila de varios niveles, mltiples canales A/D, memoria de programa FLASH, OTP o ROM y una memoria de datos EEPROM. Todas estas caractersticas proporcionan un nivel de inteligencia no antes disponible tomando en cuenta el costo y tamao. Aunque estos PIC solo tienen 8 pines, se pueden destinar hasta 6 lneas E/S para los perifricos, ya que posee un oscilador interno. 2.1.8.2 GAMA BAJA O BASICA: PIC16C5X Se trata de una serie de PIC de recursos muy limitados, pero con una de las mejores relaciones coste/beneficio. Los PIC16C5X tienen un tamao de instruccin de 12 bits, estn disponibles en circuitos de 14, 18, 20 y 28 pines, operan con bajo voltaje, menos de 2.0V para OTP hace a esta familia ideal para las aplicaciones que requieren de batera. Adems, el PIC16HV5XX puede operar con ms de 15V para el uso directo con una batera. Tienen un repertorio de 33 instrucciones de 12 bits. No admiten ningn tipo de interrupcin y la Pila slo dispone de dos niveles. 2.1.8.3 GAMA MEDIA: PIC 16FXXX Es la gama ms variada y completa de los PIC. Con la introduccin de los PIC16FXXX Microchip proporciona un ADC (Convertidor Analgico/Digital) de 12 bits. Estos microcontroladores ofrecen un amplio rango de opciones, por ejemplo, estn disponibles en circuitos de 18 a 68 patas, van del nivel bajo al ms alto en cuanto a la integracin de perifricos. Esta familia tiene un set 35 instrucciones de 14 bits, manejo de interrupciones, una pila de 8 niveles para el anidamiento de subrutinas. Los PIC16FXXX proporcionan la versatilidad para cubrir los requerimientos de ms demanda hoy en da. Dentro de esta gama el ms representativo es el PIC16F628A, que ser el objeto de nuestro estudio. Sin embargo, como se mencion anteriormente, el estudio lo extenderemos tambin para los PIC16F819, PIC16F877A, etc. Fig. 2.9 PIC de la gama enana Fig. 2.10 PIC de la gama media Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 64 2.1.8.4 GAMA ALTA: PIC17CXXX Esta familia extiende la potencialidad de los microcontroladores PIC con una palabra de instruccin de 16 bits, mejora el set de instrucciones y la capacidad de manejo de interrupciones. Cuenta con las caractersticas de perifricos de mayor demanda en las aplicaciones. 2.1.8.5 GAMA SUPERIOR: PIC18FXXX Es la familia de alto nivel, de tecnologa CMOS, tiene una MCU esttica con convertidor A/D, una pila de 32 niveles, una palabra de instruccin de 16 bits, mltiples interrupciones internas y externas, un set de 77 instrucciones. Adems tiene un set de largos registros que permiten algunas de las innovaciones usadas para alcanzar un alto rendimiento de 10 MIPS (Millones de Instrucciones por Segundo) para una MCU. La familia PIC18FXXX tiene caractersticas especiales para reducir componentes externos, por ello reduce el costo, aumenta la confiabilidad y reduce el consumo de energa. 2.2 DESCRIPCION FSICA Y FUNCIONAL DEL MICROCONTROLADOR PIC16F628A Este PIC16F628A de la firma Microchip se encuentra en la gama media y dentro de ella es uno de los ms pequeos y bsicos; solo tiene 18 pines, de 8 bits y posee memoria EEPROM tipo Flash de 2 kbytes; por lo que es muy prctico, sencillo y econmico, pudindolo emplear en pequeos proyectos que realizan los aficionados, estudiantes y quienes prefieren progresar en sus conocimientos de lo fcil a lo difcil. A continuacin se explican las caractersticas ms relevantes de los PIC de la familia PIC16F628A. Al terminar este subcaptulo, el lector tendr un conocimiento adecuado sobre estos dispositivos. 2.2.1 CARACTERISTICAS GENERALES El encapsulado ms comn para el microcontrolador es el DIP (Dual In-line Pin) de 18 pines, propio para usarlo en experimentacin. La referencia completa es 16F628A-20/P. Sin embargo, hay otros tipos de encapsulado que se pueden utilizar segn el diseo y la aplicacin que se quiere realizar. Por ejemplo, el encapsulado tipo surface mount (montaje superficial) tiene un reducido tamao y bajo costo, que lo hace propio para producciones en serie o para utilizarlo en lugares de espacio muy reducido. Las siguientes son la tarjeta de presentacin del PIC 16F628A, con sus datos ms significativos: MEMORIA DE PROGRAMA: 2Kx14 Flash. Con 1000 ciclos de borrado/escritura MEMORIA DE DATOS RAM: 224 Bytes MEMORIA DE DATOS EEPROM: 128 Bytes con 1000.000 de ciclos de borrado/escritura y con retencin de datos por ms de 40 aos Tiempo de escritura de datos 4ms. REGISTROS: de 8bits de propsito general tipo SRAM y 34 de funcin especial de hardware. PILA (Stack) 8 niveles INTERRUPCIONES: 10 tipos diferentes (pin externo RBO/INT; exceso del temporizador TMR0; interrupcin al cambio de estado RB<7:4> y al completar la escritura en la EEPROM de datos, etc.) JUEGO DE INSTRUCCIONES RISC (set de instrucciones reducidas): 35 ENCAPSULADO: Plstico DIP de 18 pines FRECUENCIA DE TRABAJO: 4MHz a 20MHz mxima OSCILADOR: 5 tipos, RC, LP, XT, HS, e interno TEMPORIZADORES: un Timer/counter (TMR0, TMR1 y TMR2) programables y un Perro Guardin (WDT) LINEAS E/S DIGITALES: 16 (8 Puerto A(si se usan el oscilador interno y el Reset interno), 8 Puerto B) lneas para control de direccionamiento individual COMPARADORES de voltaje MODULO CCP/PWM para el control del ancho de pulso MODULO USART para la comunicacin serie asncrona y sncrona (I2C) Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 65 Reset interno o externo Seguridad para cdigo de programa Power-on Reset (POR), Power-up Timer (PWRT), Oscillator Start-up Timer (OST). Watchdog Timer (WDT) con su propio oscilador RC incorporado en el chip para un funcionamiento confiable. Corriente mxima absorbida: 80mA puerto A, 150mA puerto B Corriente mxima suministrada: 50mA puerto A, 100mA puerto B Corriente mxima absorbida por lnea: 25mA Corriente mxima suministrada por lnea: 20mA Modo de bajo consumo de corriente: MODO SLEEP VOLTAJE DE ALIMENTACIN (V DD ): 2 a 5.5 V DC VOLTAJE DE GRABACIN (V PP ): de 12 a 14 V DC . Consumo <2mA a 5V y 4MHz. 2.2.2 PINES Y FUNCIONES El PIC 16F628A est fabricado con tecnologa CMOS de altas prestaciones y encapsulado plstico de 18 pines. Seguidamente describiremos en forma breve la misin de cada uno de los pines. En la tabla siguiente se describen las funciones de cada pin del microcontrolador PIC16F84A. Pin Nombre Tipo Descripcin 16 RA7 E/S Entrada / salida digital cuando se utiliza el oscilador interno OSC1 XTAL Entrada del circuito oscilador externo que proporciona la frecuencia de trabajo del mC. CLKIN E Entrada para el oscilador externo tipo RC 15 RA7 E/S E/S digital cuando se utiliza el oscilador interno OSC2 XTAL Entrada del circuito oscilador externo que proporciona la frecuencia de trabajo del mC. CLKOUT S Salida del cristal oscilador. En el modo RC este pin proporciona una seal de reloj equivalente de OSC1 y representa el ciclo de instruccin. 17 RA0 E / S E/S digital AN0 E Entrada de la seal anloga para el comprador 18 RA1 E / S E/S digital AN1 E Entrada de la seal anloga para el comprador 1 RA2 E / S E/S digita Fig. 2.11 Pines y funciones del PIC16F628A Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 66 AN2 E Entrada de la seal anloga Vref E Voltaje de referencia externo 2 RA3 E / S E/S digital AN3 E Entrada de la seal anloga CMP1 S Salida del comparador 3 RA4 E / S E/S digital. La salida es de colector abierto. T0CKI E Entrada de reloj al contador/temporizador TMR0 CMP2 S Salida del comparador 4 RA5 E Entrada digital si se emplea el reset interno MCLR E Entrada del pulso de reset externo Vpp E Entrada del voltaje de programacin (12-13.4)V 6 RB0 E / S E/S digital. INT E Entrada para la interrupcin externa RB0 7 RB1 E / S E/S digital RX E Recepcin de datos en comunicacin serie asncrona DT E/S E/S de datos en la comunicacin sncrona 8 RB2 E / S E/S digital TX S Salida de datos para la comunicacin serie asncrona CK S Salida de pulsos de reloj para la comunicacin serie sncrona 9 RB3 E / S E/S digital CCP1 S E/S del mdulo CCP/PWM 10 RB4 E / S E/S digital PGM E Pin de entrada para la programacin de bajo voltaje. Cuando la programacin a bajo voltaje es habilitada, este pin queda deshabilitado 11 RB5 E / S E/S digital 12 RB6 E / S E/S digital T1OSO S Salida de pulsos del TMR1 T1CKI E Entrada de pulsos de reloj para TMR1 PGC E Seal de reloj para la programacin 13 RB7 E / S E/S digital T1OSI E Entrada de pulsos para el TMR1 PGD E Entrada de datos en la programacin 5 V SS A Referencia de tierra (masa) para todos los pines lgicos de E/S. 14 V DD A Alimentacin positiva para todos los pines lgicos E/S. 2.2.3 PUERTOS DEL MICROCONTROLADOR Los puertos son el puente de comunicacin entre el microcontrolador y el mundo exterior. Son lneas digitales que trabajan entre cero y cinco voltios y se pueden configurar como entradas o como salidas, de forma individual. El PIC16F628A tiene dos puertos. El puerto A con 8 lneas, en caso que se empleen el oscilador y el reset internos (en negrillas), en caso que necesitemos emplear los elementos Fig. 2.12 Puertos del PIC Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 67 Externos (en comunicacin serial por ejemplo) solo dispondremos de 5 lneas. El puerto B tiene 8 lneas. Cada pin se puede configurar como entrada o como salida independientemente configurando un par de registros diseados para tal fin. En ese registro un 0 configura el pin del puerto correspondiente como salida y un 1 lo configura como entrada. Los pines RA0:RA3 del puerto A tiene Buffers de entrada tipo TTL y drivers de salida tipo CMOS. El pin RA4/TOCKI del puerto A puede ser configurado como un pin de entrada/salida o como entrada del temporizador/contador. Cuando este pin se programa como entrada digital, funciona como un disparador Schmitt (Schmitt trigger). Puede reconocer seales un poco distorsionadas y llevarlas a niveles lgicos (cero y cinco voltios). Cuando se usa como salida digital se comporta como colector abierto, por lo tanto, se debe poner una resistencia de pull-up (resistencia externa conectada a un nivel de cinco voltios). Como salida, la lgica es inversa: un 0 escrito al pin del puerto entrega en el pin un 1 lgico. Adems, como salida no puede manejar cargas como fuente, slo en el modo sumidero. Adicional a esto el pin RA5 se puede configurar slo como entrada en caso de utilizarse el reset interno. Otra situacin importante de tener en cuenta en el puerto A es que, para que funcione como E/S digital, se deben APAGAR los comparadores de voltaje de este puerto. Esto se ver ms adelante en la configuracin de puertos (Cap. 3) El puerto B tiene internamente unas resistencias de pull-up conectadas a sus pines (sirven para fijar el pin a un nivel de cinco voltios), su uso puede ser habilitado o inhabilitado bajo control del programa. Todas las resistencias pull- up se conectan o se desconectan a la vez, usando el bit llamado RBPU que se encuentra en el registro llamado OPTION_REG. La resistencia pull-up es desconectada automticamente en un pin si este se programa como salida. Los pines RB0 y RB7:RB4 pueden generar una interrupcin al detectar un cambio en sus pines. Solo los pines configurados como entradas pueden generar dicha interrupcin. El valor de los pines de entrada es comparado con el valor almacenado de la ltima lectura del puerto B. Esta interrupcin puede despertar al microcontrolador del modo SLEEP. Como este dispositivo es de tecnologa CMOS, todos los pines deben estar conectados a alguna parte, nunca dejarlos al aire porque se pueden daar el integrado. Los pines que no se estn usando se deben conectar a la fuente de alimentacin de +5V, como se muestra en la figura. La mxima capacidad de corriente de cada uno de los pines de los puertos en modo sumidero (sink) es de 25 mA y en modo fuente (source) es de 20 mA. La mxima capacidad de corriente total de los puertos est dada en la siguiente tabla: El consumo de corriente del microcontrolador depende del voltaje de operacin, la frecuencia y de las cargas que tengan sus pines. Para un reloj de 4 MHz el consumo es de aproximadamente 3 mA; aunque este se puede reducir a 40 microamperios cuando se est en el modo sleep (en este modo el micro se detiene y disminuye el consumo de potencia). Se sale de ese estado, cuando se produce alguna condicin especial, como por ejemplo una interrupcin. Modos PUERTO A PUERTO B Sumidero 80 mA 150mA Fuente 50 mA 100 mA Fig. 2.13 Pines no utilizados conectados a +5V Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 68 2.2.4 EL OSCILADOR Todo microcontrolador requiere un circuito generador de pulsos que le indique la velocidad a la que debe trabajar. Este circuito, que se conoce como oscilador o reloj, es muy simple pero de vital importancia para el buen funcionamiento del sistema, ya que es un parmetro fundamental a la hora de establecer la velocidad de ejecucin de instrucciones y el consumo de energa. Todas las instrucciones del PIC se realizan en un ciclo de instruccin, memos la de salto, que tardan el doble. El PIC16F628A, puede utilizar ocho tipos de osciladores diferentes, programando los bits (FOSC1 y FOSC0) de la palabra configuracin para seleccionar uno de estos osciladores. Los tipos de osciladores son: INTOSC Oscilador interno de precisin (dos modos) RC Oscilador con resistencia y condensador (dos modos) XT Cristal / Resonador HS Cristal de alta velocidad / Resonador. LP Cristal para baja frecuencia y bajo consumo de potencia. EC Reloj externo En el momento de programar o quemar el microcontrolador se debe especificar que tipo de oscilador se usa. Esto se hace a travs de unos bits llamados: fusibles de configuracin. Para los tipos de cristal XT, LP o HS estos se conectan a los pines de OSC1/CLKIN y OSC2/CLKOUT. OSCILADORES DE CRISTAL El oscilador de cristal de cuarzo tipo XT es el ms empleado. El tipo de oscilador que se sugiere para las prcticas es el cristal de 4 MHz, porque garantiza mayor precisin y un buen arranque del microcontrolador. Internamente esta frecuencia es dividida por cuatro, lo que hace que la frecuencia efectiva de trabajo sea de 1MHz, por lo que cada instruccin se ejecuta en un microsegundo. El cristal debe ir acompaado de dos condensadores y se conecta como se muestra en la figura. Fig. 2.14 Modos de operacin de los puertos Fig. 2.15 Oscilador de cristal Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 69 Fosc Rext Cext 4.61MHz 2.66MHz 311kHz 5k 10k 100k 20pF 1.34kHz 756kHz 82.8kHz 5k 10k 100k 100pF 428kHz 243kHz 26.2kHz 5k 10k 100k 300pF El oscilador de cristal viene en una cpsula metlica con dos pines que se conectan al microcontrolador a los pines OSC1 y OSC2. Dependiendo de la aplicacin, se pueden utilizar cristales de otras frecuencias, por ejemplo se usa el cristal de 3,579545 MHz porque es muy econmico, el de 32,768 KHz cuando se necesita crear bases de tiempo de segundo muy precisas. El lmite de velocidad en estos microcontroladores es de 20 MHz. Los valores de los condensadores C1 y C2 recomendados para trabajar con osciladores de cristal, se indican en la tabla siguiente: Tipo Frecuencia OSC1/C1 OSC2/C2 LP 32 Khz 200 Khz 68 100 pF 15 - 33 pF 68 - 100 pF 15 - 33 pF XT 100 Khz 2 Mhz 4 Mhz 100 150 pF 15 33 pF 15 33 pF 100 150 pF 15 33 pF 15 33 pF HS 4 Mhz 10 Mhz 15 33 pF 15 33 pF 15 33 pF 15 33 pF OSCILADOR TIPO RC Si no se requiere mucha precisin en el oscilador y se quiere economizar dinero, se puede utilizar una resistencia y un condensador, como se muestra en la figura. Los valores recomendados de Rext y Cext son: 5K Rext 100K y Cext > 20pF. 2.2.5 RESET DEL MICROCONTROLADOR En los microcontroladores se requiere un pin de reset para reiniciar el funcionamiento del sistema cuando sea necesario, ya sea por una falla que se presente o porque as se halla diseado el sistema. El pin de reset en los PIC es llamado MCLR (master clear reset). El PIC 16F628A admite diferentes tipos de reset: Al encendido (Power On Reset POR) Pulso en el pin MCLR durante operacin normal Pulso en el pin MCLR durante el modo de bajo consumo (modo sleep) El rebase del conteo del circuito de vigilancia (watchdog) durante operacin normal. El rebase del conteo del circuito de vigilancia (watchdog) durante el modo de bajo consumo (sleep) Reset por disminucin de voltaje (Brown Out Reset BOR) Fig. 2.16 Oscilador tipo RC Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 70 En la figura se muestra el diagrama de bloques del circuito de reset. El MCLR tiene un filtro para ignorar pulsos pequeos, por lo que estos pulsos de reset deben ser grandes. Los registros de la memoria RAM del microcontrolador son afectados en distinta forma segn el tipo de reset. En la Tabla se indican las condiciones de reset para el contador de programa (PC) y el registro STATUS. Condicin Contador de programa Registro STATUS Reset al encendido 000h 0001 1xxx MCLR Reset durante operacin normal 000h 000u uuuu MCLR Reset durante el modo SLEEP 000h 0001 0uuu Reset de WDT (en operacin normal) 000h 0000 1uuu Despertar con WDT PC + 1 uuu0 0uuu Despertar por interrupcin del SLEEP PC + 1 uuu1 0uuu Nota: u = no cambia, x = desconocido; Cuando el microcontrolador sale de una condicin de reset debido a una interrupcin y el bit GIE est en 1 lgico, el contador de programa es cargado con el vector de interrupcin. En la Tabla siguiente de describe los estados de reset para todos los registros. Fig. 2.17 Diagrama de bloques del circuito de RESET Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 71 Nota: u =no cambia; x = desconocido; - =bit no implementado y se lee con 0; El reset al encendido se consigue gracias a dos temporizadores. El primero es el PWRT (Power-Up Timer. Temporizador de encendido) que provee un retardo fijo de 72 ms (nominal) en el encendido nicamente, diseado para mantener el dispositivo en reset mientras la fuente se estabiliza; este retardo se consigue mediante un oscilador RC interno, y puede ser inhabilitado mediante el bit de configuracin PWRET. Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 72 El segundo de ellos es el OST (Oscillator Start- Up Timer: Temporizador de encendido del oscilador), que provee un retardo de 1024 ciclos de oscilacin, orientado a mantener el microcontrolador en reset hasta que el oscilador del cristal se estabilice. Este temporizador inicia al terminarse el tiempo del temporizador de encendido PWRT. Este retardo es habilitado solo con los osciladores tipo XT, LP y HS. Para utilizar estos temporizadores, slo basta con conectar el pin MCLR a la fuente de alimentacin a travs de una resistencia, evitndose utilizar las tradicionales redes RC externas en el pin de reset. El reset por MCLR se consigue llevando momentneamente este pin a un estado lgico bajo, mientras que el watchdog WDT produce el reset cuando su temporizador rebasa la cuenta, o sea que pasa de 0FFh a 00h. Cuando se quiere tener control sobre el reset del sistema se puede conectar un botn como se muestra en la figura. 2.2.6 ARQUITECTURA INTERNA DEL MICROCONTROLADOR Este trmino se refiere a los bloques funcionales internos que conforman el microcontrolador y la forma en que estn conectados, por ejemplo la memoria FLASH (de programa), la memoria RAM (de datos), los puertos, la lgica de control que permite que todo el conjunto funcione, etc. La figura siguiente muestra la arquitectura general del PIC16F628A, en ella se pueden apreciar los diferentes bloques que lo componen y la forma en que se conectan. Se muestra la conexin de los puertos, las memorias de datos y de programa, los bloques especiales como el watchdog, los temporizadores de arranque, el oscilador, etc. Fig. 2.18 Circuito de Reset Fig. 2.19 Arquitectura interna del PIC16F628A Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 73 Todos los elementos se conectan entre s por medio de buses. Un bus es un conjunto de lneas que transportan informacin entre dos o ms mdulos. Vale la pena destacar que el PIC16F628A tiene un bloque de memoria de datos y registros (RAM) de 224 bytes, una memoria EEPROM de 128 bytes, adems del bloque de memoria de programa de 2Kbytes de 14bits. El PIC16F628A se basa en la arquitectura Harvard, en la cual el programa y los datos se pueden trabajar desde memorias separadas, lo que posibilita que las instrucciones y los datos posean longitudes diferentes. Esta misma estructura es la que permite la superposicin de los ciclos de bsqueda y ejecucin de las instrucciones, lo cual se ve reflejado en una mayor velocidad del microcontrolador. Posee un procesador tipo RISC. Los bloques son: 1. Memoria de programa EEPROM de 2 Kbytes x14 bits. 2. Memoria de datos formada por 4 reas. Una RAM donde se alojan 33 registros de propsito especfico y de 224 propsito general y la otra del tipo EEPROM de 128 bytes. 3. Camino de datos con una ALU de 8 bits y un registro de trabajo W del que normalmente recibe un operando y enva el resultado. El otro operando puede provenir del bus de datos o del propio cdigo de la instruccin (literal). 4. Diversos recursos conectados al bus de datos, tales como Puertas de E/S, Temporizador TMR0, etc. 5. Base de tiempos y circuitos auxiliares. 6. Direccionamiento de la memoria de programa en base al Contador de Programa ligado a una Pila de 8 niveles de profundidad. 7. Direccionado directo e indirecto de la memoria RAM. 2.2.7 MEMORIA DE PROGRAMA Es una memoria de 2 Kbyte de longitud con palabras de 14 bits. Como es del tipo FLASH se puede programarla y borrarla elctricamente, lo que facilita el desarrollo de los programas y la experimentacin. En ella se graba, o almacena el programa o cdigos que el microcontrolador debe ejecutar. Dado que el PIC16F628A tiene un contador de programa de 13 bits, tiene una capacidad de direccionamiento de 8K x 14, pero solamente tiene implementado las primeras 2048 posiciones (0000h hasta 07FFh), por lo que se ignoran los 3 bits de ms peso del registro PC. Si se direccionan posiciones de memoria superiores a 07FFh se causar un solapamiento con el espacio del segundo 2K. En la figura se muestra el mapa de la memoria de programa, el registro PC y la Pila. La Pila (STACK) es una zona aislada de las memorias de instrucciones y datos. Tienen una estructura LIFO, en la que el ltimo valor guardado es el primero que sale. Tiene 8 niveles de profundidad cada uno de 13 bits. La instruccin CALL y las interrupciones originan la carga del contenido del PC en el nivel superior de la Pila. El contenido del nivel superior se saca de la Pila al ejecutar la instruccin Return. Cuando ocurre un reset al microcontrolador, el contador de programa se pone en ceros (000H). Por esta razn, en la primera direccin del programa se debe escribir todo lo relacionado con la iniciacin del mismo. VECTOR DE INTERRUPCIN Fig. 2.19 Mapa de la memoria de programa Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 74 Cuando el microcontrolador recibe una seal de interrupcin, el contador de programa apunta a la direccin 04H de la memoria de programa, por eso, all se debe escribir toda la programacin necesaria para atender dicha interrupcin (ver Tratamiento de Interrupciones captulo 3). 2.2.8 MEMORIA DE DATOS La memoria de datos del PIC16F628A consta de dos zonas diferentes: MEMORIA DE DATOS EEPROM Tiene una capacidad de 128x8 Bytes donde, opcionalmente, se pueden almacenar datos que no se pierden al desconectar la alimentacin, pudiendo durar 40 aos guardados. MEMORIA RAM ESTATICA O SRAM La memoria RAM se halla dividida en cuatro bancos (B0, B1, B2 y B3) de 128 posiciones cada uno, donde residen los Registros de Funcin Especfica (SFR) y los Registros de Propsito General (GPR). En la siguiente figura podemos observar los cuatro bancos de la RAM y los nombres de los Registros de Funcin Especial. Es de notarse que a partir de la posicin 20H, el usuario tiene disponibles los registros de propsito general, para guardar datos temporales. Fig. 2.20 Mapa del archivo de registros PIC16F628A Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 75 A los bancos de registros de la RAM se acceden, configurando los bits RP0 y PR1 del registro STATUS, de la forma que muestra la figura adyacente. REGISTROS DE PROPSITO GENERAL (GPR) Cada registro de propsito general tiene 8 bits de ancho y son accesados mediante direccionamiento directo e indirecto a travs del registro selector de registros FSR, y estn disponibles a partir de la posicin 20H. REGISTROS DE FUNCIN ESPECIAL (FSR) Los registros de funcin especial FSR son usados por la CPU y los perifricos para controlar las operaciones del sistema. Estos registros son RAM esttica. Los SFR se clasifican en dos grupos. En uno se incluyen aquellos que controlan en ncleo del microcontrolador (STATUS, OPTION, etc.) y se describen en esta seccin, mientras en el otro los que caracterizan la operatividad de los recursos auxiliares y perifricos, que se estudiarn en el momento en que se analicen dichos perifricos (Cap. 3). Si observamos en la datasheet del PIC16F628A (pags.18-21 ) podremos observar que cada registro tiene 8bits de nombres especficos. A continuacin realizaremos el anlisis de los registros que controlan el ncleo del microcontrolador. REGISTRO DE ESTADOS: STATUS (Direcciones: 03h, 83, 103h, 183h) Contiene el estado aritmtico de la ALU, la causa del reset y los bits de preseleccin de pgina (bancos) para la memoria de datos. En la figura 2.22 muestra los bits correspondientes a este registro. Los bits 5 y 6 (RPO y RP1) son los bits de seleccin de pgina para el direccionamiento directo de la memoria de datos. Los bits TO y PD no se pueden modificar por un proceso de escritura; ellos muestran la condicin por la cual se ocasion el ltimo reset. Se debe tener en cuenta que al escribir sobre el registro STATUS no se obtendr posiblemente el resultado esperado, pues sus bits cambian segn el resultado de las operaciones, por ejemplo con la instruccin CLRF STATUS se borrarn los tres bits altos y el bit Z se setear. El bit C y DC operan como un llevo en las operaciones de resta, esto se puede entender al revisar las instrucciones SUBLW y SUBWF. Registro de estados Fig. 2.21 Acceso a los Bancos de la RAM Fig. 2.22 Bits del Registro STATUS Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 76 Cuando el registro STATUS es el destino de una instruccin que afecte a los bits Z, DC o C, entonces la escritura de estos tres bits se inhabilita. Estos bits se actualizarn de acuerdo a la lgica del sistema. REGISTRO PARA DIRECCIONAMIENTO INDIRECTO DE DATOS: INDF (Direcciones: 00h, 80h, 100h, 180h) Este no es un registro disponible fsicamente; utiliza el contenido del FSR y el bit RP0 del registro STATUS para seleccionar indirectamente la memoria de datos RAM del usuario; la instruccin determinar que se debe realizar con el registro sealado. REGISTRO SELECTOR DE REGISTROS: FSR (Direcciones: 04h, 84h, 104h, 184h) Como mencionamos anteriormente, en asocio con el registro INDF se utiliza para seleccionar indirectamente los otros registros disponibles, como puntero para direccionar indirectamente la memoria de datos. Si en el programa no se utilizan llamadas indirectas, este registro se puede utilizar como un registro de propsito general. Para entender mejor el funcionamiento del registro INDF, obsrvese el resultado de leer dos registros RAM (05h y 06h) que contienen los valores 10h y 0Ah utilizando direccionamiento indirecto. El registro 05 contiene el valor 10h El registro 06 contiene el valor 0Ah Se carga el valor 05 al registro FSR Entonces al leer el registro INDF se obtendr el valor 10h Se incrementa en uno el registro FSR (FSR = 06 ) Entonces al leer el registro INDF ahora se obtendr el valor 0Ah Leyendo indirectamente el mismo registro INDF ( FSR = 0 ) se obtendr 00h. Escribiendo indirectamente en el registro INDF resulta en una operacin no efectuada, pues los bits del registro STATUS pueden ser afectados. Otro ejemplo simple de un programa para borrar las localidades de 20h 2Fh usando direccionamiento indirecto es mostrado a continuacin: movlw 20h ;inicializa el puntero movwf FSR ;de la memoria RAM NEXT clrf INDF ;borra el registro INDF incf FSR ;incrementa el puntero btfss FSR,4 ;ya termino el borrado? goto NEXT ;NO, borra el siguiente registro CONTINUA . ;SI, continua con la ejecucin del . ;programa restante El bit IRP del registro STATUS funciona como el noveno bit del registro FSR, como se muestra en la figura. Fig. 2.24 Direccionamiento directo e indirecto Fig. 2.23 Direccionamiento indirecto Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 77 REGISTRO CONTADOR DE PROGRAMA: PCL y PCLATH Se utiliza para direccionar las palabras de 14 bits del programa del usuario que se encuentra almacenado en la memoria ROM; es decir, contiene la direccin de la instruccin a ser ejecutada; este contador de programa es de 13 bits de ancho. Sobre el byte bajo (PCL), se puede escribir o leer directamente, mientras que sobre el byte alto, no. El byte alto se maneja mediante el registro PCLATH (0Ah). Como sabemos, el 16F628A ante una condicin de reset inicia el contador de programa con todos sus bits en cero. Durante la ejecucin normal del programa, y dado que todas las instrucciones ocupan slo una posicin de memoria, el contador se incrementa en uno con cada instruccin, a menos que se trate de alguna instruccin de salto, en la cual se incrementa con dos. En una instruccin CALL o GOTO, los bits PC <l0:0> se cargan desde el cdigo de operacin de la instruccin, mientras que los bits PC <12:11> lo hacen desde el PCLATH<4:3>. En otras instrucciones donde PCL es el destino, PC<12:8> se carga directamente desde el PCLATH<4:0>, por ejemplo, en el caso de la instruccin ADDWF. Esto se debe tener en cuenta cuando se desea hacer lectura de tablas usando el comando: ADDWF PC, 1; en este caso la tabla debe estar comprendida dentro de un solo bloque de 256 bytes (0-255, 256-511, etc.). REGISTRO DE CONFIGURACIN DEL PUERTO A: TRISA (Direccin: 85h) Como ya se mencion, el Puerto A tiene 8 lneas cuando se utilizan tanto el oscilador interno como el reset interno, caso contrario se tienen solo 5 lneas tiles. El Registro TRISA controla la direccin de las lneas del puerto A. Un cero en el bit correspondiente al pin lo configura como salida y pone el contenido de la memoria (latch) en el pin seleccionado, mientras que un uno lo configura como entrada y pone el correspondiente circuito de salida en alta impedancia. Es importante observar que este registro se encuentra en el banco 1 de la RAM, por lo que habr que posicionarse en dicho banco para poder configurarlo. PUERTO A DE ENTRADA / SALIDA: PORTA (Direccin: 05h ) Las lneas del Puerto A pueden leerse o escribirse como si se tratara de un registro cualquiera, de hecho a travs de las lneas de este puerto el microcntrolador se comunica con el exterior. Luego de un reset de encendido, estos pines son configurados como entradas y se leen con cero. Al realizar una operacin de lectura se lee el estado del pin, y al realizar una operacin de escritura se carga en la memoria (latch) del puerto. REGISTRO DE CONFIGURACIN DEL PUERTO B: TRISB (Direccin: 86h) Igual que TRISA, es orientado hacia el control del puerto B. Son vlidas las mismas consideraciones del registro anterior. PUERTO B DE ENTRADA/SALIDA DE 8 BITS: PORTB (Direccin: 06h) Este puerto tiene 8 bits de ancho, al igual que en todos los PIC este puede leerse o escribirse como si se tratara de un registro cualquiera; algunos de sus pines tienen funciones alternas en la generacin de interrupciones. REGISTRO DE TRABAJO W Este es el registro de trabajo principal, se comporta de manera similar al acumulador en los microprocesadores. Este registro participa en la mayora de las instrucciones. Fig. 2.24 Contador de programa (13 bits) Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 78 REGISTRO DE LA PALABRA DE CONFIGURACIN (Direccin: 2007h) El PIC16F628A posee 10 bits de configuracin en la direccin 2007h de la memoria de programa, posicin a la cual el usuario slo tiene acceso durante la grabacin del microcontrolador. Estos bits se pueden programar para seleccionar varias configuraciones del dispositivo: tipo de oscilador, proteccin de cdigo, habilitacin del circuito de vigilancia y el temporizador de encendido, etc. Cuando se programa la proteccin de cdigo, el contenido de cada posicin de la memoria no se puede leer completamente, de tal manera que el cdigo del programa no se puede reconstruir. Adicionalmente, todas las posiciones de memoria del programa se protegen contra la reprogramacin. Una vez protegido el cdigo, el bit de proteccin slo puede ser borrado (puesto en 1) si se borra toda la memoria del programa y la de datos. LAS PULL-UPs INTERNAS Cada uno de los pines del puerto B tiene un elemento pull-up interno dbil (250 A tpico); este elemento es automticamente desconectado cuando el pin se configura como salida. Adicionalmente, el bit RBPU Fig. 2.25 Bits del registro de configuracin Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 79 (OPTION<7>) controla todos estos elementos, los cuales estn inhabilitados ante una condicin de reset. Estos elementos pull-up son especialmente tiles cuando el microcontrolador va a colocarse en el modo de bajo consumo, ya que ayudan a no tener las entradas flotantes, significando una reduccin en el consumo de corriente. PALABRAS DE IDENTIFICACIN ID Cuatro posiciones de la memoria de programa ubicadas en las direcciones (2000h 2004h) son diseadas como posiciones para cdigos de identificacin o chequeo de suma (checksum ). Estas posiciones no son accesibles durante ejecucin normal pero pueden ser escritas y ledas durante el proceso de grabacin. Solo se usan los cuatro bits menos significativos de cada palabra de identificacin (ID), en donde se almacena un valor que puede consistir en un nmero de serie, cdigos de identificacin, numeraciones secuenciales o aleatorias, etc. Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 80 AUTOEVALUACION 1. Consulte en los sitios de INTERNET 10 aplicaciones con Microcontroladores en diferentes reas. 2. De las 10 aplicaciones anteriores, saque un resumen de tres de ellas para presentarlas. 3. Podra indicar cules son las diferencias entre un sistema con microprocesador y un microcontrolador? 4. Tome la datasheet de los PIC16F628A, PIC16F819, PIC16F88, PIC16F87XA y establezca un cuadro comparativo entre las diferentes prestaciones (diferencias y semejanzas). 5. Tome la datasheet del PIC16F876A y ATMEGA8. Estudie las diferencias y semejanzas y realice un cuadro comparativo. 6. Si se tiene cierta aplicacin que disear, qu consideraciones tcnicas tomara en cuenta para seleccionar un microcontrolador? 7. Si tendra que elegir entre un microcontrolador PIC y ATMEL. Cul de dos elegira? Argumente su decisin. 8. Qu componentes bsicos tiene en su interior un microcontrolador PIC? 9. Cuntos tipos de osciladores acepta un PIC16F628A, y cul es la velocidad de trabajo de este PIC? 10. Qu funcin tiene el registro de estados? Explique la funcin de los bits: Z, C, RP0 y RP1. 11. Cules son las posibles causas para el RESET de un microcontrolador? Explique cada una de ellas. 12. Qu funcin realizan los registros de funcin especial: TRISx, PORTx, CMCON? 13. Qu funcin cumplen: ALU, Registro W, la Pila, las direcciones 0 y 4 del la memoria de programa? Explique cada uno de ellas. 14. Qu caracterstica presenta el pin RA4 del PIC16F628A? Cmo se le conectara al ser configurado como salida a un LED? 15. Para qu sirve la palabra de configuracin? Indique las maneras existentes para su configuracin. 16. Por qu el Registro PC tiene 14 bits y cul es su funcin? 17. La memoria RAM contiene los datos temporalmente. Desde qu posicin est disponible para el usuario y de qu cantidad dispone? 18. Para qu sirven las resistencias Pull-Up internas, en que puertos se encuentran y en donde se habilitan? Indique qu sucedera en el caso que estn las Pull-Up internas activas y se conectan otras externas? 19. Suponiendo que un perifrico de salida necesita para su funcionamiento ms de 25mA en el pin, qu solucin dara para evitar que se queme el pin en mencin? Realice un diagrama y explique. 20. Indique la secuencia de encendido de un microcontrolador PIC. Sistemas con microprocesadores Parte II Ing. Gerardo Collaguazo 81 BIBLIOGRAFIA 1. Sanchez, Julio y Canton, Mara, Microcontroller Programming, The Microchip PIC, Ed. CRC Press, New York 2007. 2. Bates, Martin, Interfacing PIC Microcontollers- Embedded Desing by Interactive Similation, Ed. Elsevier 2006. 3. Barret, Steven y Pack, Daniel, Microcontrollers Fundamentals for Engineers and Scientists, Ed. M&C, EEUU 2006. 4. Ibrahim, Dogan, Microcontroller Based Applied Digital Control, Ed. John Wiley and Sons, West Sussex 2006. 5. Angulo Usategui, Jos, Laboratorio de Prcticas de Microelectrnica, Vol.II, Ed. McGraw-Hill, Madrid 2002. 6. Vallejo, Horacio, Microcontroladores PIC Funcionamiento, Programacin, Diseos, Ed. Quark, Buenos Aires 2002. 7. Vallejo, Horacio, Todo sobre PICs. Microprocesadores y Microcontroladores, Ed. Quark, Buenos Aires 2001. 8. Mike Predko, Programming and Customizing PICmicro Microcontrollers, 2da. Edicin, Toronto 2000. 9. Angulo Usategui, Jos, Microntroladores PIC-Diseo prctico de aplicaciones, 2da. Edicin, Ed. McGraw-Hill, Madrid 1999. 10. Nebojsa, Matic, PIC Microcontrollers for beginners, too! On line, www.mikroelectronika.co.yu 11. Duque, Edison, Curso avanzado de microcontroladores PIC, Ed. Cekit, Bogot 1998. 12. Campo Cerda, Manuel F., Implementacin de un sistema de desarrollo utilizando los microcntroladores PIC Microchip Technology, Universidad de Guadalajara, Guadalajara 1998. Revistas 1. Saber Electrnica No. 127, 128, 131. 2. Electrnica & Computadoras No. 42, 71. 3. Curso prctico de Electrnica Digital/Analgica. Direcciones de INTERNET. 1. www.microchip.com Productos e informacin de los microcontroladores PIC. 2. www.mikoe.co.yu Entrenadores y libros on line de PICs. 3. www.x-robotics.com Informacin sobre LCDs, motores PAP, teclados, etc. 4. www.Redeya.com Historia del PIC. 5. www.monografias.com Todo tipo de temas relacionados al PIC. 6. www.todopic.com.ar Informacin de Proyectos con PICs. 7. www.usuarios.lycos.es Teora de microcontroladores PIC 8. www.geocities.com Teora PIC16Cxxx Datasheets PI16F628A, PIC16F819, PIC16F87XA www.microchip.com