DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

52
DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontrolad ores 2. 2 Introducción Desde la invención del circuito integrado, el desarrollo constante de la electrónica digital ha dado lugar a dispositivos cada vez más complejos. Entre ellos los microprocesadores y los microcontroladores. El objetivo principal de esta práctica es que el alumno logre un entendimiento básico de los microcontroladores y obtenga los conocimientos necesarios para la programación de estos dispositivos y para el diseño de sistemas digitales y/o analógicos basados en ellos. Se pretende explicar conceptos cuya vigencia se mantendrá en un periodo mas o menos largo, centrándose en la familia de microcontroladores PIC16, concretamente en el PIC16F84, por que existe mucha información, es fácil de encontrar y barato. Limitarse a un tipo de PIC no se considera importante, ya que si se comprende bien un microcontrolador, los demás pueden aprenderse con facilidad partiendo del primero. Además, el estudio de un microcontrolador particular elimina la posibilidad de una presentación superficial o confusa y permite enfrentarse a problemas reales en la práctica.

description

Introducción y Arquitectura de microcontroladores

Transcript of DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

Page 1: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.2

Introducción

    Desde la invención del circuito integrado, el desarrollo constante de la electrónica digital ha dado lugar a dispositivos cada vez más complejos. Entre ellos los microprocesadores y los microcontroladores.

    El objetivo principal de esta práctica es que el alumno logre un entendimiento básico de los microcontroladores y obtenga los conocimientos necesarios para la programación de estos dispositivos y para el diseño de sistemas digitales y/o analógicos basados en ellos.

    Se pretende explicar conceptos cuya vigencia se mantendrá en un periodo mas o menos largo, centrándose en la familia de microcontroladores PIC16, concretamente en el PIC16F84, por que existe mucha información, es fácil de encontrar y barato. Limitarse a un tipo de PIC no se considera importante, ya que si se comprende bien un microcontrolador, los demás pueden aprenderse con facilidad partiendo del primero. Además, el estudio de un microcontrolador particular elimina la posibilidad de una presentación superficial o confusa y permite enfrentarse a problemas reales en la práctica.

    Para estar al tanto de las innovaciones se recomienda que se mantenga en contacto con la pagina web de Microchip Technology, http://www.microchip.com, solo así se podrá obtener un conocimiento completo y actualizado, tanto de los aspectos que aquí se tratan, como de los nuevos que vayan surgiendo.

    La forma de estructurar el tema responde a la experiencia de que, para quien por primera vez estudia microcontroladores,

Page 2: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

resulta más sencillo aprender primero lo referente a la construcción interna del dispositivo y la arquitectura general de los microcontroladores y una vez entendido pasar entonces a los detalles.

Que es un microcontrolador

    Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los teléfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la invasión acaba de comenzar y el siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que fabriquemos y usamos los humanos.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.3

Controlador y microcontrolador

    Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno eléctrico dispone de un sensor que mide constantemente su temperatura interna y actúa sobre las resistencias para mantener la temperatura dentro del rango establecido.

    Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores electrónicos se construían exclusivamente con componentes de lógica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un solo circuito integrado, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo ordenador contenido en un circuito integrado.

Page 3: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador y que contiene todos los componentes fundamentales de un ordenador, aunque de limitadas prestaciones y que se suele destinar a gobernar una sola tarea.

    En su memoria sólo reside un programa que controla en funcionamiento de una tarea determinada, sus líneas de entrada/salida se conectan a los sensores y actuadores del dispositivo a controlar y, debido a su pequeño tamaño, suele ir integrado en el propio dispositivo al que gobierna.

    Un microcontrolador dispone normalmente de los siguientes componentes:

Procesador o CPU (Unidad Central de Proceso). Memoria RAM para contener los datos. Memoria para el programa tipo ROM/EPROM/EEPROM/Flash. Líneas de E/S para comunicarse con el exterior. Diversos módulos para el control de periféricos

(temporizadores, puertos serie y paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.).

Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

    Los productos que para su regulación incorporan un microcontrolador disponen de las siguientes ventajas:

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 número de elementos disminuye el riesgo de averías y se precisan menos ajustes.

Reducción del tamaño en el producto acabado: La integración del microcontrolador en un circuito integrado disminuye el volumen, la mano de obra y los stocks.

Page 4: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

Mayor flexibilidad: las características de control están programadas por lo que su modificación sólo necesita cambios en el programa de instrucciones.

    Debido a su reducido tamaño 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).

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.4

Aplicaciones de los microcontroladores

    Si sólo se dispusiese de un modelo de microcontrolador, éste debería tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta potenciación supondría en muchos casos un despilfarro. En la práctica cada fabricante de microcontroladores oferta un elevado número de modelos diferentes, desde los más sencillos hasta los más poderosos. Es posible seleccionar la capacidad de las memorias, el número de líneas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseño es la selección del microcontrolador a utilizar.

    Cada vez existen más productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y coste, mejorar su fiabilidad y disminuir el consumo.

    Algunos fabricantes de microcontroladores superan el millón de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilización de estos componentes.

    Los microcontroladores están siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigoríficos, televisores, ordenadores, impresoras, módems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que

Page 5: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

seguramente no estaremos tan familiarizados como instrumentación electrónica, control de sistemas en una nave espacial, etc. Una aplicación típica podría emplear varios microcontroladores para controlar pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y con un procesador central, probablemente más potente, para compartir la información y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC.

    Los microcontroladores se encuentran por todas partes:

Sistemas de comunicación: en grandes automatismos como centrales y en télefonos fijos, móviles, fax, etc.

Electrodomésticos: lavadoras, hornos, frigoríficos, lavavajillas, batidoras, televisores, vídeos, reproductores DVD, equipos de música, mandos a distancia, consolas, etc.

Industria informática: Se encuentran en casi todos los periféricos; ratones, teclados, impresoras, escáner, etc.

Automoción: climatización, seguridad, ABS, etc. Industria: Autómatas, control de procesos, etc Sistemas de supervisión, vigilancia y alarma: ascensores,

calefacción, aire acondicionado, alarmas de incendio, robo, etc.

Otros: Instrumentación, electromedicina, tarjetas (smartcard), sistemas de navegación, etc.

    La distribución de las ventas según su aplicación es la siguiente:

Una tercera parte se absorbe en las aplicaciones relacionadas con los ordenadores y sus periféricos.

La cuarta parte se utiliza en las aplicaciones de consumo (electrodomésticos, juegos, TV, vídeo, etc.)

El 16% de las ventas mundiales se destinó al área de las comunicaciones.

Otro 16% fue empleado en aplicaciones industriales. El resto de los microcontroladores vendidos en el mundo,

aproximadamente un 10% fueron adquiridos por las industrias de automoción.

Page 6: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.5

    También los modernos microcontroladores de 32 bits van afianzando sus posiciones en el mercado, siendo las áreas de más interés el procesamiento de imágenes, las comunicaciones, las aplicaciones militares, los procesos industriales y el control de los dispositivos de almacenamiento masivo de datos.

    Ejemplo de aplicación de un microcontrolador en el automóvil:

Page 7: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.6

El mercado de los microcontroladores

    Aunque en el mercado de la microinformática la mayor atención la acaparan los desarrollos de los microprocesadores, lo cierto es que se venden cientos de microcontroladores por cada uno de aquéllos.

    Producción mundial de microcontroladores por año:

Page 8: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    Existe una gran diversidad de microcontroladores. Quizá la clasificación más 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 razón de esta tendencia es que los microcontroladores de 4 y 8 bits son apropiados para la gran mayoría de las aplicaciones, lo que hace absurdo emplear micros más potentes y consecuentemente más caros. Uno de los sectores que más tira del mercado del microcontrolador es el mercado automovilístico. De hecho, algunas de las familias de microcontroladores actuales se desarrollaron pensando en este sector, siendo modificadas posteriormente para adaptarse a sistemas más genéricos. El mercado del automóvil es además uno de los más exigentes: los componentes electrónicos deben operar bajo condiciones

Page 9: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

extremas de vibraciones, choques, ruido, etc. y seguir siendo fiables. El fallo de cualquier componente en un automóvil puede ser el origen de un accidente.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.7

    En cuanto a las técnicas de fabricación, cabe decir que prácticamente la totalidad de los microcontroladores actuales se fabrican con tecnología CMOS (Complementary Metal Oxide Semiconductor). Esta tecnología supera a las técnicas anteriores por su bajo consumo y alta inmunidad al ruido.

    Más adelante, en el apartado ¿Qué microcontrolador emplear? se mostrará una tabla con las distintas familias de algunos fabricantes con su dirección en Internet y algunos datos.

Recursos comunes

    Al estar todos los microcontroladores en un solo circuito integrado, su estructura fundamental y sus características básicas son muy parecidas. Todos deben disponer de los bloques esenciales Procesador, memoria de datos y de instrucciones, líneas de E/S, oscilador de reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones a las que se destinan preferentemente.

    En este apartado se hace un recorrido de todos los recursos que se hallan en todos los microcontroladores describiendo las diversas alternativas y opciones que pueden encontrarse según el modelo seleccionado.

Arquitectura básica

    Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de von Neumann, en el momento presente se impone la arquitectura Harvard.

Page 10: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.9

    La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control) mientras que la arquitectura Harvard dispone de dos memorias independientes, una que contiene sólo instrucciones y otra sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias.

    Los microcontroladores PIC responden a la arquitectura Harvard.

El procesador o CPU

    Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel hardware como software.

    Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la instrucción en curso, su decodificación y la ejecución de la operación que implica la instrucción, así como la búsqueda de los operandos y el almacenamiento del resultado.

    Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales.

CISC: Un gran número de procesadores usados en los microcontroladores están basados en la filosofía CISC

Page 11: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

(Computadores de Juego de Instrucciones Complejo). Disponen de más de 80 instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúan como macros.

RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores están decantándose hacia la filosofía RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones máquina 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.

SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es "específico", o sea, las instrucciones se adaptan a las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Específico).

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.10

Memoria

    En los microcontroladores la memoria de instrucciones y datos está integrada en el propio circuito integrado. Una parte debe ser no volátil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las variables y los datos.

    Hay dos peculiaridades que diferencian a los microcontroladores de los PC's:

Page 12: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

1. No existen sistemas de almacenamiento masivo como disco duro o disquetes.

2. Como el microcontrolador sólo se destina a una tarea en la memoria de programa, sólo hay que almacenar un único programa de trabajo.

    La memoria de datos (RAM) en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la memoria de programa (ROM).

    El usuario de PC está habituados a manejar Megabytes de memoria, pero los diseñadores con microcontroladores trabajan con capacidades de memoria de programa de 512 bytes, 1K, 2K (hasta unos 64K) y de RAM de 20 bytes, 68 bytes, 512 bytes (hasta unos 4K).

    Según el tipo de memoria de programa que dispongan los microcontroladores, la aplicación y utilización de los mismos es diferente. Se describen las cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado:

1º. ROM con máscara

    Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip.

    Máscara viene de la forma cómo se fabrican los circuitos integrados. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se obtienen a partir de procesos fotoquímicos, donde se impregnan capas de silicio y oxido de silicio, y según convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sitúa entre la luz y la oblea una máscara con agujeros, de manera que donde deba incidir la luz, esta pasará. Con varios procesos similares pero más complicados se consigue fabricar los transistores y diodos que componen un circuito integrado.

Page 13: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.

2ª. OTP

    El microcontrolador contiene una memoria no volátil de sólo 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 versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas.

    Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código contenido.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.11

3ª EPROM

    Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. Hoy día se utilizan poco, siendo sustituidas por memorias EEPROM o Flash.

4ª EEPROM

    Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como

Page 14: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. No disponen de ventana de cristal en la superficie.

    Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo.

    El número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramación continua. Hoy día están siendo sustituidas por memorias de tipo Flash.

    Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno.

    Este tipo de memoria es relativamente lenta.

5ª FLASH

    Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña.

    A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida 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 volátil. Es más veloz y tolera más ciclos de escritura/borrado. Son idóneas para la enseñanza y la Ingeniería de diseño.

    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

Page 15: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

circuito integrado de la tarjeta. Así, un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil permite que pueda modificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factores tales como la compresión, la instalación de nuevas piezas, etc. La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.12

Puertos de Entrada y Salida

    La principal utilidad de las patillas que posee la cápsula que contiene un microcontrolador es soportar las líneas de E/S que comunican al computador interno con los periféricos exteriores y según los controladores de periféricos que posea cada modelo de microcontrolador, se destinan a proporcionar el soporte a las señales de entrada, salida y control.

    Todos los microcontroladores destinan algunas de sus patillas a soportar líneas de E/S de tipo digital, esto es, todo o nada. Por lo general, estas líneas se agrupan de ocho en ocho formando Puertos. Las líneas digitales de los Puertos pueden configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a su configuración.

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 sincronización de todas las operaciones del sistema. Esta señal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen.

    Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo

Page 16: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

junto a elementos pasivos o bien un resonador cerámico o una red R-C.

    Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energía y de calor generado.

Recursos especiales

    Cada fabricante oferta numerosas versiones de una arquitectura básica de microcontrolador. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el coste, el hardware y el software.

    Los principales recursos específicos que incorporan los microcontroladores son:

Temporizadores o "Timers". Perro guardián o "Watchdog". Protección ante fallo de alimentación o "Brownout". Estado de reposo o de bajo consumo. Conversor A/D. Conversor D/A. Comparador analógico. Modulador de anchura de impulsos o PWM. Puertos de comunicación.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.13

Temporizadores o "Timers"

    Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores).

Page 17: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso.

    Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patillas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.

Perro guardián o "Watchdog"

    Cuando un ordenador personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y se reinicializa el sistema.

    En la mayoría de los casos y a diferencia de un ordenador personal, un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día y 365 días al año. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el sistema.

    Se debe diseñar el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardián antes de que provoque el reset. Si falla el programa o se bloquea, el programa no refrescará al Perro guardián y, al completar su temporización, provocará el reset del sistema.

Protección ante fallo de alimentación o "Brownout"

    Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo ("brownout"). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Esto es muy útil para evitar datos erróneos por transiciones y ruidos en la línea de alimentación.

Estado de reposo ó de bajo consumo

Page 18: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles), los microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se "congelan" sus circuitos asociados, quedando sumido en un profundo "sueño" el microcontrolador. Al activarse una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. Para hacernos una idea, esta función es parecida a la opción de Suspender en el menú para apagar el equipo (en aquellos PCs con administración avanzada de energía).

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.14

Conversor A/D (CAD)

    Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde las patillas del circuito integrado.

Conversor D/A (CDA)

    Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente señal analógica que saca al exterior por una de las patillas de la cápsula. Existen muchos dispositivos de salida que trabajan con señales analógicas.

Comparador analógico

    Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patillas de la cápsula. La salida del

Page 19: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra.

    También hay modelos de microcontroladores con un módulo de tensión de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.

Modulador de anchura de impulsos o PWM

    Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a través de las patillas del encapsulado. Resulta util para sistemas de control de potencia, como por ejemplo motores.

Puertos de comunicación

    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:

UART, adaptador de comunicación serie asíncrona. USART, adaptador de comunicación serie síncrona y

asíncrona Puerto paralelo esclavo para poder conectarse con los

buses de otros microprocesadores. USB (Universal Serial Bus), el conocido bus serie para los

PC. Bus I2C, que es un interfaz serie de dos hilos desarrollado

por Philips. Interface SPI, un puerto serie síncrono. CAN (Controller Area Network), para permitir la adaptación

con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles. En EE.UU. se usa el J185O.

TCP/IP, ya existen microcontroladores con un adaptador de comunicación para este protocolo.

    Tanto el I2C en televisores, como el Bus CAN en automóviles, fueron diseñados para simplificar la circuitería que supone un

Page 20: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

bus paralelo de 8 líneas dentro de un televisor, así como para librar de la carga que supone una cantidad ingente de cables en un vehículo.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.15

Herramientas de desarrollo

    Las herramientas de desarrollo están formadas por un conjunto de programas e interfaces que permiten realizar los proyectos de la forma más eficiente posible.

    Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores se describen a continuación

    Ensamblador. La programación en lenguaje ensamblador puede resultar un tanto ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una versión gratuita para los microcontroladores más populares.

    Compilador. La programación en un lenguaje de alto nivel (como C o Basic) permite disminuir el tiempo de desarrollo de un producto y si además está familiarizado con C o Basic es una buena opción. No obstante, cuando el compilador convierta el código del programa a un lenguaje ensamblado, cada línea de código del programa en lenguaje de alto nivel habrá generado bastantes más líneas de código en lenguaje ensamblador, normalmente en una relación de uno a tres. Esto significa que para utilizar un lenguaje de alto nivel necesitaremos un microcontrolador con una capacidad de memoria relativamente grande.

    Si el programa que estamos desarrollando necesita utilizar números con decimales, o con notación científica o se utilizan operaciones complejas, como pueden ser las trigonométricas, es casi obligado utilizar un lenguaje de alto nivel. Pero si lo que se

Page 21: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

va a hacer es manipular bits en registros, entradas, salidas y cálculos sencillos, el lenguaje ensamblado es la mejor opción.

    Las versiones más potentes de compiladores suelen ser muy caras, aunque para los microcontroladores más populares pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos.

    Como compilador gratuito puede utilizarse el compilador C GNU, que es un compilador C de código abierto tan bueno como los compiladores C comerciales pero que sin embargo tiene un proceso de instalación que no es sencillo. Además hay que comprobar que arquitecturas de microcontrolador soporta. Algunas de las cuales son MSP430 de TI, AVR de Atmel y HC11 de Motorola, (ver www.gnu.org y www.fsf.org). También puede conseguirse un compilador C GNU en binario ya construido. Por ejemplo para la arquitectura ARM puede conseguirse un compilador C GNU binario para win32 desde www.gnuarm.com, que trabaja con línea de comandos e incluye un depurador de código. Para obtener un entorno de desarrollo (IDE) para windows que pueda utilizarse con el conjunto de herramientas GNU puede utilizarse la aplicación VIDE, que puede conseguirse en www.objectcentral.com/vide.htm.

    Simulador. Se trata de software que es capaz de ejecutar en un PC programas realizados para el microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecución de un programa, siendo ideales para la depuración de los mismos. Su gran inconveniente es que es difícil simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el paso físico de la implementación de un modo más seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ.

    Placas de evaluación. Se trata de pequeños sistemas con un microcontrolador ya montado y que suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, fácil acceso a los pines de E/S, etc. Pueden incluir un programa de control o sistema operativo que recibe el

Page 22: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

nombre de programa monitor. El programa monitor de algunas placas de evaluación, aparte de permitir cargar programas y datos en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecución paso a paso, monitorizar el estado del microcontrolador o modificar los valores almacenados los registros o en la memoria.

    Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC anfitrión y el zócalo de la tarjeta de circuito impreso donde se alojará el microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la placa de la aplicación es como si lo hiciese el mismo microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información tal y como luego sucederá cuando se coloque la cápsula.

    Programador. Es un dispositivo que conectado a un PC permite grabar en el microcontrolador el programa desarrollado. Algunos puede fabricarlos uno mismo (ver Programador PIC y EEPROM JDM y Programador JDMD) y resultan muy económicos. También existe software gratuito para programar no ya solo microcontroladores sino también otros dispositivos, como memorias (ver Programación de PIC con ic-prog). Actualmente se tiende a realizar la programación en la propia placa de utilización mediante ISP, In System Programmation o ICSP, In Circuit Serial Programation. De esta manera se puede programar al microcontrolador una vez esté montado en la placa del circuito utilizando una conexión de dos, tres o cuatro terminales. Para utilizar esta técnica se utiliza un programador que suele ser muy sencillo y que en algunos casos puede construir uno mismo.

    Otra posibilidad es utilizar un "cargador de arranque", muy util en la etapa de desarrollo de un programa. Un cargador de arranque es un pequeño programa en el microcontrolador que está montado en la placa del circuito que se está desarrollando y que puede comunicarse con las herramientas de desarrollo (que se van a utilizar para escribir el código del programa de la aplicación) a través de un enlace serie, como puede ser RS232, USB, I2C o un bus CAN.

Page 23: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    El programa cargador de arranque debe interpretar comandos para leer, grabar y borrar la parte de memoria reservada para el programa de la aplicación. Cuando se desea verificar el programa que se está desarrollando se inicia la comunicación con el programa cargador de arranque, que carga el código de programa en la memoria de programa del microcontrolador. Después el programa cargador de arranque transfiere el control al programa cargado y entonces se puede ejecutar y verificar el programa cargado. Esta operación de carga y prueba puede realizarse tantas veces como sea necesario.

    Los requerimientos que tiene que cumplir el microcontrolador a utilizar son:

Suficiente memoria de programa para alojar tanto el cargador de arranque como el programa en desarrollo.

Que el microcontrolador permita que pueda modificarse la memoria de programa por si mismo.

Un puerto serie para la comunicación.

    Por ejemplo, el microcontrolador LPC210x de la casa Philips incluye un cargador de arranque serie integrado que está ubicado en los 8 K primeros de su memoria Flash. Estándo el terminal P0.14 a masa y generándo un reset el LPC210x ejecuta el programa cargador de arranque. Utilizándo un programa para PC gratuito de la casa Philips y un cable serie conectado entre el PC y la UART del microcontrolador LPC210x (a través de un conversor TTL/RS232 como el c.i. MAX232) se puede realizar la programación del microcontrolador.

    También resulta interesante el interface JTAG (que por ejemplo posee el microcontrolador LPC210x), que puede utilizarse para programar el dispositivo y para depurar un programa durante su ejecución en el microcontrolador. Para utilizar el interface JTAG se necesita un módulo interfaz de depuración JTAG que se conecta con entre el sistema de desarrollo del microcontrolador y el PC que lo aloja. En el mercado existen distintos módulos interfaces JTAG comerciales pero tambié se pueden encontrar otros en Internet.

Paquetes IDE

Page 24: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    Actualmente existen paquetes de software denominados "Entornos de Desarrollo Integrado", IDE, que suelen funcionar bajo Windows y que incluyen editores de texto para el ensamblador o el compilador, permiten la simulación del programa y también pueden integrar el control de emuladores y programadores de dispositivos. Ejemplos de estos entornos de desarrollo son MPLAB de Microchip (ver MPLAB-IDE v6.60) que permite programar en lenguaje ensamblado y PCWH de la casa CCS que incluye un compilador C para los microcontroladores PIC de Microchip. MPLAB es gratuito y muy bueno, incluye un editor, un ensamblador y un simulador y también puede trabajar con compiladores y emuladores de otros fabricantes.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.16

¿Qué microcontrolador emplear?

Elegir un tipo o familia de microcontroladores

    A la hora de decidirse en terminos generales sobre que tipo o familia de microcontroladores emplear hay que tener en cuenta varios factores, como por ejemplo:

Experiencia previa Documentación existente Herramientas de desarrollo disponibles y su precio Precio del microcontrolador

    Experiencia previa: Si ya se ha trabajado con algún microcontrolador en particular, lo mejor es ver que nuevas posibilidades ofrecen los diversos fabricantes que trabajen con ese microcontolador como núcleo. Por ejemplo, el 8051 fué muy popular hace algun tiempo, y hay muchos microcontroladores actuales que derivan de este, como pueden ser los AT89 de Atmel, MCS251 de Intel, DS8 de Maxim (Dallas), P8 de Philips y MSC12 de Texas Instruments. Lo bueno es que salvo en determinados detalles se mantiene el conjunto de instrucciones, modos de direccionamiento, nombres de registros, y en definitiva la filosofía de trabajo del 8051. Con pequeños cambios

Page 25: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

podrían recuperarse programas diseñados para el 8051 con estos microcontroladores.

    Documentación existente: Este es un factor importante si se quiere conocer bien el tipo de microcontrolador elegido y su entorno de desarrollo. Además, si existe una amplia literatura de aplicaciones podrán utilizarse programas y diseños ya realizados para adaptarlos a nuestras necesidades. Mediante libros especializados, revistas de electrónica y sobre todo Internet, puede encontrarse la información necesaria sobre cualquier microcontrolador, si bien parace que la mayor cantidad de información disponible corresponde a los microcontroladores PIC de Microchip.

    Herramientas de desarrollo disponibles y su precio: Uno de los factores que más importancia tiene a la hora de seleccionar un microcontrolador entre todos los demás es el soporte tanto software como hardware de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo en la elección, ya que pueden suponer una ayuda inestimable en el desarrollo del proyecto. Algunos fabricantes de microcontroladores ofrecen paquetes IDE de calidad de forma completamente gratuita, como política para inclinarse por el uso de sus microcontroladores. Ejemplos de ello son AVR studio de Atmel, Code Warrior de Freescale (Motorola), MPLAB de Microchip o Eclipse de Texas Instruments. Estos paquetes IDE gratuitos permiten programar en código ensamblado, puesto que los compiladores de lenguaje de alto nivel (BASIC y C) no suelen ser gratis.

    Una forma de reducir costes en una producción de dispositivos con microcontroladores es utilizar una única familia de microcontroladores para optimizar el uso de las herramientas de apoyo que se van a necesitar, tales como emuladores, simuladores, ensambladores, compiladores, etc.

    Precio del microcontrolador: Como es lógico, los fabricantes de microcontroladores compiten duramente para vender sus productos. Para que nos hagamos una idea, para una producción a gran o mediana escala de dispositivos que utilizan un microcontrolador, una diferencia de precio en el mismo de

Page 26: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

algunos céntimos es importante (el consumidor deberá pagar además el coste del empaquetado, el de los otros componentes, el diseño del hardware y el desarrollo del software).

Elegir un modelo concreto de microcontrolador

    Una vez se decida que tipo o familia de microcontroladores se van a emplear hay que elegir el modelo de microcontrolador concreto para la aplicación y resulta imprescindible analizar los requisitos de la aplicación:

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.8

Entradas, salidas y recursos internos: Uno de los aspectos más atractivos de los microcontroladores es que la circuitería externa puede reducirse al mínimo. Para determinar las necesidades de entradas y salidas así como los recursos del sistema es conveniente dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar. Habrá que tener en cuenta:

o Número de entradas y salidas necesarias.o Número y tamaño (8, 16 ó 32 bits) de los

temporizadores necesarios.o Necesidad de un CAD o CDA, incluyendo la resolución

y número de entradas.o Necesidad de puertos de comunicaciones (I2C, RS232,

USB, bus CAN, SPI u otros).o Necesidad de una o más salidas PWM.o Necesidad de interfaces específicas como la de

control LCD.

Una vez realizado este análisis puede ser necesario añadir periféricos hardware externos. Esto puede ser una mejor opción que utilizar un microcontrolador de altas prestaciones pero caro. Si por ejemplo necesitamos un conversor A/D (CAD) de unas determinadas características y no está disponible con la familia de microcontroladores deseada es posible utilizar un conversor externo con una interfaz I2C. Esto sirve también para conseguir memoria

Page 27: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

programable no volatil extra (con una EEPROM externa). Si necesitamos un puerto USB, el lugar de vernos limitados a elegir entre alguno de los modelos aparecidos mas recientemente en el mercado, podemos elegir un controlador USB externo. Por último no olvidemos que también pueden implementarse algunos recursos por software, como una comunicación I2C o RS232 o una salida PWM.

Velocidad y consumo: Actualmente pueden encontrarse modelos de microcontroladores que pueden utilizar velocidades de reloj de hasta 100 MHz, pero además de eso, en la velocidad de ejecución del programa repercute la arquitectura del microcontrolador, siendo más rápido uno con arquitectura RISC que otro con CISC. Las velocidades altas incrementan las interferencias electromagnéticas radiadas y el consumo de los microcontroladores al estar la mayoría realizados con tecnologías CMOS, por lo que habrá que tener en cuenta la velocidad si el consumo es importante en la aplicación. Por todo esto el uso de velocidades altas debe reservarse para cuando sea necesario que el microcontrolador realice cálculos críticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rápido para ello.Hay que tener en cuenta que algunos productos que incorporan microcontroladores están alimentados con baterías y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo más conveniente en un caso como éste puede ser que el microcontrolador esté en estado de bajo consumo pero que despierte ante la activación de una señal (una interrupción) y ejecute el programa adecuado para procesarla. En las situaciones donde un dispositivo se relaciona con el entorno humano suele utilizarse el modo de bajo consumo, como por ejemplo en un mando a distancia de un televisor, que la mayor parte del tiempo no está haciendo nada, de manera que cuando el usuario pulsa una tecla el microcontrolador pasa al modo normal y ejecuta las operaciones necesarias. De esta manera la duración de la batería puede llegar casi a la vida de la misma puesto que en modo de bajo

Page 28: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

consumo un microcontrolador puede reducir 1000 veces sus necesidades de corriente comparándolo con el modo normal.

Memoria: Para determinar las necesidades de memoria de nuestra aplicación debemos separarla en memoria volátil (RAM), memoria no volátil (ROM, Flash, etc.) y memoria no volátil modificable (EEPROM). Este último tipo de memoria puede ser útil para incluir información específica de la aplicación como un número de serie o parámetros de calibración.El tipo de memoria a emplear vendrá determinado por el volumen de ventas previsto del producto: de menor a mayor volumen será conveniente emplear Flash, EEPROM, OTP y ROM. Los dos primeros tipos han sido pensados y diseñados para ser utilizados en etapas de desarrollo o en pequeñas series, para una producción en masa a pequeña escala es preferible utilizar el tipo OTP (que puede programarse como los dos tipos anteriores pero no se puede borrar y es normalmente más barato). El último tipo, ROM, necesita ser programado mediante una máscara por el frabicante de manera que sólo es práctico para cuando se necesiten varios miles de dispositivos idénticos. También debemos tener en cuenta que no siempre hay versiones con diferentes tipos de memoria para un modelo de microcontrolador en particular.En cuanto a la cantidad de memoria necesaria puede ser necesario realizar una versión preliminar de la aplicación y a partir de ella hacer una estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente disponer de memoria no volátil modificable.

Ancho de palabra: El criterio de diseño debe ser seleccionar el microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicación. Los modelos de 4 bits han desaparecido prácticamente del mercado de manera que utilizar un microcontrolador de 8 bits supone la mejor elección si el programa a desarrollar sólo controla unas pocas entradas y salidas y no utiliza cálculos complejos ni accede a grandes bases de datos. También resultan perfectos si el ancho de los datos es de

Page 29: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

un byte. Los microcontroladores de 16 y 32 bits, deberán utilizarse si se realizan cálculos matemáticos o científicos, una gestión de Entrada/Salida potente o si se necesita un espacio de direccionamiento muy elevado. Si una aplicación necesita un microcontrolador con más de 8 bits, es recomendable utilizar microcontroladores de 32 bits frente a los de 16 bits dada la poca diferencia de precio que actualmente existe entre ellos. Si la velocidad no es crítica también puede acudirse a la utilización de librerías para manejar los datos de alta precisión, que resulta una alternativa más barata y quizá suficiente.

Disponibilidad: Hay pocas cosas más frustrantes que elegir para el desarrollo de un diseño un componente electrónico y después de haberlo terminado comprobar que no está disponible en las tiendas de electrónica de tu ciudad. No obstante hoy es muy fácil realizar compras por medio de catálogos por correo o a través de Internet, incluso pueden solicitarse componentes directamente al fabricante. El problema está en el número de dispositivos que se deben pedir. El fabricante sólo nos atenderá si se solicitan cantidades realmente grandes, aparte de los problemas sobre licencias, permisos o aduanas que puedan surgir. La venta por catálogo mediante correo o por Internet dentro del país resulta muy interesante apenas se compre el suficiente material como para amortizar los gastos de transporte. Las compras desde España (mi caso) con otros paises de la Unión Europea como Alemania, Italia o Reino Unido no representan ningún problema. Más problemático resulta comprar en Estados Unidos o en otros paises que están fuera de la Unión. (Recuerdo los problemas que tuvimos con la aduana al comprar hace unos años una placa de desarrollo para el 8051 por correo en Israel). Teniendo en cuenta todo lo dicho resulta fundamental comprobar si existe un distribuidor que disponga de los componentes necesarios en su almacen (y en el encapsulado correcto) antes de comenzar el diseño. También debemos considerar que cuanto más popular sea el microcontrolador que elijamos menos problemas vamos a tener en este aspecto.

Page 30: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

Diseño del circuito y de la PCB: La selección de un microcontrolador concreto condicionará el diseño del circuito de manera que debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el resto de componentes del diseño. Tampoco debemos olvidarnos del encapsulado, podríamos elegir un determinado modelo de microcontrolador y luego encontrarnos que en lugar de venir con el tradicional encapsulado DIL sólo esté disponible en encapsulados PLCC o PGA, si bien siempre podremos utilizar un zócalo adecuado. Tampoco se podría trabajar manualmente con encapsulados BGA. Afortunadamente, de momento, estos problemas se dán sólo con los últimos modelos de microcontroladores con muchas patillas.En cuanto al diseño de la placa de circuito impreso (PCB) a no ser que el esquema sea simple o se afine mucho en el mismo será necesario el uso de puentes (su uso está mal visto) o de placas de c.i. de doble cara. Si se utilizan componentes SMD conviene saber que la primera generación de componentes SMD tiene una separación de terminales de 1,27 milímetros que todavía pueden soldarse manualmente con paciencia y una punta fina pero los últimos circuitos SMD tienen una separación de 0,64 milímetros paro lo cual es necesario utilizar máquinas de soldadura.

Fabricantes y modelos de microcontroladores

    A continuación se muestra una relación de algunos fabricantes y modelos de microcontroladores incluyendo su dirección en Internet, si es CISC o RISC, el número de bits del bus de datos y el núcleo del que deriva (8051, ARM, etc) así como si está disponible un IDE gratuito:

FABRICANTE FAMILIAARQUITECTURA

IDE

Analog Device www.analog.com

ADUC8xx CISC  8 bits 8051 -

ADUC7xxRISC 32 bits ARM7

-

Atmel www.atmel.com AT89xxx CISC  8 bits 8051 prog.

Page 31: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

independientes

TS87xxx CISC  8 bitsprog. independientes

AVR RISC  8 bits AVR studio

AT91xxxRISC 16 bits ARM7/9

-

Cirrus Logic www.cirrus.com

EP73xxxRISC 32 bits ARM7

-

EP93xxxRISC 32 bits ARM9

-

Cygnal www.silabs.com C8051F CISC  8 bits 8051 -

Freescale (Motorola) www.freescale.com

HC05 CISC  8 bits 6800 -

HC08 CISC  8 bits 6809Code Warrior

HC11 CISC  8 bits 6809 -

HC12 CISC 16 bits -

HCS12 CISC 16 bitsCode Warrior

HC16 CISC 16 bits -

56800 CISC 16 bits -

68KCISC 32 bits 68000

-

ColdFire CISC 32 bits -

MAC7100RISC 32 bits ARM7

-

Fujitsu www.fujitsu.com

F2MC-8 CISC  8 bits -

F2MC-16 CISC 16 bits -

FR RISC 32 bits -

Infineon www.infineon.com C5xxx CISC  8 bits 8051 -

C8xxx CISC  8 bits 8051 -

C16xxx CISC 16 bits -

Page 32: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

XC16xxx CISC 16 bits -

TCxxx CISC 32 bits -

Intel www.intel.comMCS251 CISC  8 bits 8051 -

MCS96/296 CISC 16 bits -

Maxim (Dallas) www.maxim-ic.com

DS80Cxxx CISC  8 bits 8051 -

DS83Cxxx CISC  8 bits 8051 -

DS89Cxxx CISC  8 bits 8051 -

MAXQ RISC 16 bits -

Microchip www.microchip.com

PIC 10,12,14,16,17,18

RISC  8 bits MPLAB

dsPIC RISC 16 bits MPLAB

NS (NATIONAL SEMICONDUCTOR) www.national.com

COP8xxx CISC  8 bits Webench

CR16Cxxx CISC 16 bits -

CP3000 RISC 16 bits -

Philips www.semiconductors.philips.com

P8xxx CISC  8 bits 8051 -

Xaxxx CISC 16 bits -

LPC2xxxRISC 32 bits ARM7

-

Rabbit Semiconductor www.rabbitsemiconductor.com

Rabbit2000 CISC  8 bits -

Rabbit3000 CISC  8 bits -

Renesas www.renesas.com

740 CISC  8 bits -

H8 CISC 16 bits HEW

H8S CISC 16 bits HEW

M16C CISC 16 bits -

7700 CISC 16 bits -

H8SX CISC 32 bits -

Super H CISC 32 bits HEW

ST (SGS-THOMSON) www.stm.com

ST5 CISC  8 bits Visual FIVE

ST6 CISC  8 bits -

ST7 CISC  8 bits STVD 7

Page 33: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

ST9 CISC  8 bits STVD 9

ST9 CISC 16 bits STVD 9

ST10 CISC 16 bits -

ARM7RISC 32 bits ARM7

-

Texas Instruments www.ti.com

MSC12xxx CISC  8 bits 8051 -

MSP430 CISC 16 bits Eclipse

TMS470RISC 32 bits ARM7

-

Toshiba chips.toshiba.com

870 CISC  8 bits -

900/900H CISC 16 bits -

900/900H CISC 32 bits -

Ubicom (Scenix) www.ubicom.com SXxx RISC  8 bits -

Zilog www.zilog.com

Z8xxx CISC  8 bits Z80 -

Z8Encore! CISC  8 bits Z80 -

eZ80Aclaim CISC  8 bits Z80 -

Los microcontroladores PIC

    Hace un tiempo, para introducirse en el mundo de los microcontroladores, se empleaba principalmente el 8051 de Intel.

    Aspecto del 8051 en un montaje:

Page 34: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    Arquitectura básica de un 8051:

Page 35: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.17

    Esquema mínimo de montaje para el 8051:

    Sin embargo, después de todo lo dicho, dedicaremos el resto de la documentación a los microcontroladores PIC de Microchip, no porque esta familia sea mejor que otras, sino porque presentan diversas características que los hacen especialmente interesantes:

Facilidad de uso. Gran cantidad de información disponible en libros, revistas

e Internet. Herramientas de desarrollo muy asequibles. Bajo precio y fácil disponibilidad.

    En muchos casos la elección de una versión adecuada de PIC es la mejor solución para resolver un problema. Otras familias de microcontroladores son más eficaces en aplicaciones concretas, especialmente si predomina una característica especial.

Page 36: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

    Dentro de los PIC, quizá el modelo con mayor disponibilidad (en el año 2005) para utilizarlo en montajes y prácticas y del que existe mayor información es el PIC16F84A. Si bien es cierto que hoy puede sustituirse por otros modelos con mas prestaciones (recursos por hardware como puertos serie RS232 o salidas PWM) siendo incluso más baratos (como el PIC....) no por ello deja de ser ideal para comenzar:

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Microcontroladores 2.18

    Esquemas mínimos de montaje para el PIC16F84:

Page 37: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

Oscilador RCC1 de 20pF como mínimo

5KΩ ≤ R1 ≤ 100KΩ

Reseña histórica sobre los PIC

    En 1965, la empresa GI creó una división de microelectrónica, GI Microelectronics División. En 1975 diseñó un chip destinado a controlar E/S: el PIC (Peripheral Interface Controller) con una arquitectura en la que se basan los modelos actuales. GI Microelectronics División se convirtió en la empresa subsidiaria GI Microelectronics Inc. y en 1985 en una empresa independiente, la Arizona Microchip Technology.

    Microchip cuenta con factorías principal en Chandler y Tempe, Arizona. También cuenta con centros de ensamblaje y ensayos en Taiwan y Tailandia. Para tener una idea de su alta producción, hay que tener en cuenta que produce millónes de unidades por semana.

Introducción y Arquitectura de microcontroladoresEn esta sección encontraras toda la información necesaria para ayudarte a despejar tus

dudas respectos a los microcontroladores, empezaremos con la definición de:

Page 38: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

¿QUE SON LOS MICROCONTROLADORES?

Primero que todo comenzaremos definiendo que son los microcontroladores: Los

microcontroladores ( abreviado μC, UC o MCU ) son circuitos integrados que son

capaces de ejecutar ordenes que fueron grabadas en su memoria. Su composición esta

dada por varios bloques funcionales, los cuales cumplen una tarea especifica, son

dispositivos que operan uno o mas procesos, por lo general los microcontroladores

están basados en la arquitectura de Harvard, la cual consiste en dispositivos de

almacenamiento separados (memoria de programa y memoria de datos).

El termino microcontrolador esta dado por dos palabras que son “Micro”-“Controlador”

las cuales tienen por significado “pequeño (en tamaño)” y “maniobrar o controlar

(función principal)” procesos los cuales son definidos mediante la programación.

Un micro controlador esta constituido en su interior por las tres principales unidades

funcionales de una computadora, las cuales son: unidad central de procesamiento,

memoria y periféricos de entrada y salida.

En fin un microcontrolador es un sistema completo, con unas prestaciones limitadas

que no pueden modificarse y que puede llevar a cabo las tareas para las que ha sido

programado de forma autónoma.

En cuanto a la arquitectura de los microcontroladores la detallaremos con mayor

profundidad a continuación…

ARQUITECTURA DE LOS MICROCONTROLADORES

Arquitectura Von Neumann La arquitectura tradicional:

Page 39: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

La arquitectura tradicional de

computadoras y microcontroladores se basa en el esquema propuesto por John Von

Neumann, en el cual la unidad central de proceso, o CPU, esta conectada a una

memoria única que contiene las instrucciones del programa y los datos. El tamaño de

la unidad de datos o instrucciones esta fijado por el ancho del bus de la memoria. Las

dos principales limitaciones de esta arquitectura tradicional son :

a) Que la longitud de las instrucciones esta limitada por la unidad de longitud de los

datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para

buscar instrucciones complejas.

b) La velocidad de operación (o ancho de banda de operación) esta limitada por el

efecto de cuello de botella que significa un bus único para datos e instrucciones que

impide superponer ambos tiempos de acceso.

La arquitectura von Neumann permite el diseño de programas con código

automodificable, práctica bastante usada en las antiguas computadoras que solo

tenían acumulador y pocos modos de direccionamiento, pero innecesaria, en las

computadoras modernas.

La arquitectura Harvard y sus ventajas:

La arquitectura conocida como Harvard,

consiste simplemente en un esquema en el que el CPU esta conectado a dos memorias

por intermedio de dos buses separados. Una de las memorias contiene solamente las

instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo

almacena los datos y es llamada 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 Instrucción Set Computer), el set de

instrucciones y el bus de la memoria de programa pueden diseñarse de manera tal que

todas las instrucciones tengan una sola posición de memoria de programa de longitud.

Page 40: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

Además, como los buses son independientes, el CPU puede estar accediendo a los

datos para completar la ejecución de una instrucción, y al mismo tiempo estar leyendo

la próxima instrucción a ejecutar. Podemos observar claramente que las principales

ventajas de esta arquitectura son:

a) El tamaño de las instrucciones no esta relacionado con el de los datos, y por lo tanto

puede ser optimizado para que cualquier instrucción ocupe una sola posición de

memoria de programa, logrando así mayor velocidad y menor longitud de programa.

b) El tiempo de acceso a las instrucciones puede superponerse con el de los datos,

logrando una mayor velocidad de operación.

Una pequeña 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 físicamente

en la memoria de programa (por ejemplo en la EPROM de un microprocesador).

ARQUITECTURA INTERNA DE UN MICROCONTROLADOR.

CPU (unidad central de proceso):

Podemos decir que la CPU, siglas en inglés de unidad central de proceso, es el núcleo

del microcontrolador. Se encarga de ejecutar las instrucciones almacenadas en la

memoria, de la que hablaremos más adelante. Es lo que habitualmente llamamos

procesador o microprocesador, término que a menudo se confunde con el de

microcontrolador. En esta línea cabe aclarar que, tal y como estamos viendo, ambos

términos no son lo mismo: el microprocesador es una parte de un microcontrolador y

sin él no sería útil; un microcontrolador, en cambio, es un sistema completo que puede

llevar a cabo de forma autónoma una labor.

Memoria:

Entendemos por memoria los diferentes componentes del microcontrolador que se

emplean para almacenar información durante un periodo determinado de tiempo. La

información que necesitaremos durante la ejecución del programa será, por un lado, el

Page 41: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

propio código, y por otro, los diferentes datos que usemos durante la ejecución del

mismo. Hablaremos por tanto de memoria de programa y de memoria de datos,

respectivamente.

La diferente naturaleza de la información que hay que almacenar hace necesario el uso

de diferentes tipos memorias. Sin hacer especial énfasis en este apartado, sí habrá que

tener en cuenta una clasificación básica, que distingue entre memoria volátil y no

volátil. La primera es aquella que pierde la información que almacena al desconectarla

de la alimentación; la segunda, como resulta obvio, no. Por lo tanto, se hace evidente

que al menos la memoria de programa deberá ser no volátil: no sería práctico que el

programa grabado en el microcontrolador se borrara cada vez que apagáramos el

dispositivo. Con respecto a la memoria de datos, diremos por el momento según la

situación puede interesarnos una u otra.

Unidades de entrada/salida:

Las unidades de entrada/salida son los sistemas que emplea el microcontrolador para

comunicarse con el exterior. Imaginemos una televisión: por un lado tiene un

dispositivo de salida, como es la pantalla, y por otro lado, de entrada, como son los

botones de subir o bajar volumen y de cambio de canal. Así, los dispositivos de entrada

nos permitirán introducir información en el microcontrolador y los de salida nos

servirán para que éste la saque al exterior.

 

ARQUITECTURA RISC Y CISC

Page 42: DISPOSITIVOS LÓGICOS MICROPROGRAMABLES

RISC (Reduced Instruction Set Computer) – Computadora con Juego de Instrucciones Reducidas.

En este caso la idea es que el microcontrolador reconoce y ejecuta sólo operaciones

básicas (sumar, restar, copiar etc…) Las operaciones más complicadas se realizan al

combinar éstas (por ejemplo, multiplicación se lleva a cabo al realizar adición

sucesiva). Es como intentar explicarle a alguien con pocas palabras cómo llegar al

aeropuerto en una nueva ciudad. Sin embargo, no todo es tan oscuro. Además, el

microcontrolador es muy rápido así que no es posible ver todas las “acrobacias”

aritméticas que realiza. El usuario sólo puede ver el resultado final de todas las

operaciones. Por último, no es tan difícil explicar dónde está el aeropuerto si se utilizan

las palabras adecuadas tales como: a la derecha, a la izquierda, el kilómetro etc.

 

CISC (Complex Instruction Set Computer) – Computadoras con un juego de instrucciones complejo.

¡CISC es opuesto a RISC! Los microcontroladores diseñados para reconocer más de 200

instrucciones diferentes realmente pueden realizar muchas cosas a alta velocidad. No

obstante, uno debe saber cómo utilizar todas las posibilidades que ofrece un lenguaje

tan rico, lo que no es siempre tan fácil.