38846974 3 Entendiendo Los AVR Atmel

download 38846974 3 Entendiendo Los AVR Atmel

of 14

Transcript of 38846974 3 Entendiendo Los AVR Atmel

ARTCULO

DE

PORTADA

Qu son, para qu sirven, cmo se usan

Microcontroladores AVR de AtmelArquitectura, Programadores, Tarjetas de Desarrollo

Debido a la gran cantidad de consultas recibidas durante los primeros das de publicacin de la edicin anterior de Saber Electrnica, en referencia al Artculo de Portada: Interfase Grfica de Video, que sirve para la construccin de distintos tipos de instrumentos y que se basa en el uso de un microcontrolador de la empresa Atmel, programamos la edicin del presente artculo. En el mismo pretendemos dar a conocer a nuestros lectores las principales caractersticas de estos chips; brindando, adems, algunos circuitos que pueden ser de inters tanto para la programacin de estos dispositivos como para comenzar a realizar sus primeras prcticas. Los AVR son una familia de microcontroladores RISC (que manejan un set reducido de instrucciones) de la empresa Atmel. El diseo estructural de estos circuitos integrados fue realizado por dos estudiantes en el Norwegian Institute of Technology, y posteriormente refinada y desarrollada en Atmel. Estos microcontroladores poseen una unidad central de proceso (CPU) con arquitectura Harvard y tiene 32 registros de 8 bits. Los 32 registros, los registros de entrada/salida y la memoria de datos se encuentran en un espacio de memoria unificado, en el cual tambin se encuentra el stack (a diferencia de lo que ocurre en los PICS, viejos conocidos de los lectores de Saber Electrnica). Este es el primero de una serie de artculos destinados a familiarizar a nuestros lectores con los AVR cuyo objeto es la realizacin de varios proyectos que sern publicados en prximas ediciones. Artculo preparado por Horacio D. Vallejo, en base a informacin de los Manuales de Datos de los AVR traducidos por el Ing. Mario Lisofsky y el aporte de autores varios que se mencionan en la nota.Saber Electrnica

1

Artculo de PortadaLuego de preguntar a diferentes fuentes sobre el origen del nombre AVR, propuesto por Atmel para estos microcontroladores, desconozco la verdadera etimologa de estas siglas, sin embargo podran deberse a lo siguiente: 1) Audio, Video, Radio: Microcontroladores pensados para aplicaciones en audio, video y radio. 2) Advanced Virtual Risc. 3) Corresponde a las iniciales de sus inventores: Alf Egil Bogen and Vegard Wollan (AlfVegardRisc). El AVR fue diseado para la ejecucin de programas escritos en cdigo C compilado. Por lo tanto, algunas instrucciones no estn; por ejemplo, no existe la instruccin 'suma inmediata' ('add immediate'), ya que la instruccin 'resta inmediata' ('substract immediate') con el complemento a dos puede ser usada como alternativa. La familia de microcontroladores AVR es bastante extensa y todas comparten el mismo ncleo AVR, pero tienen distintos perifricos y cantidades de RAM y ROM: desde el microcontrolador de la familia Tiny AVR ATtiny11 con 1kB de memoria flash y sin RAM (slo los 32 registros), con un encapsulado de 8 pines, hasta el microcontrolador de la famila Mega AVRATmega2560 con 256kB de memoria flash, 8kB de memoria RAM, 4kB de memoria EEPROM, conversor anlogo digital de 10 bits y 16 canales, temporizadores, comparador analgico, etc. Cada componente de la familia se ha diseado para que guarde cierta compatibilidad con el resto. Los microcontroladores AVR permiten la ejecucin de instrucciones mediante la metodologa 'pipeline' con dos etapas (cargar y ejecutar), que les permite ejecutar la mayora de las instrucciones en un ciclo de reloj, lo que los hace relativamente rpidos entre los microcontroladores de 8 bits. Como una primera sntesis, podemos decir que el set de instrucciones de los AVR es bastante regular, teniendo en cuenta las siguientes consideraciones: Los registros punteros X, Y y Z tienen capacidades de direccionamiento diferentes entre s. Los registros 0 al 15 tienen diferentes capacidades de direccionamiento que los registros 16 al 31. Las registros de I/O 0 al 31 tienen distintas caractersticas que las posiciones 32 al 63. La instruccin CLR afecta los 'flag', mientras que la instruccin SER no lo hace, a pesar de que parecen ser instrucciones complementarias (dejar todos los bits en 1, y dejar todos los bits en 0 respectivamente). Los cdigos de operacin 0x95C8 y 0x9004 hacen exactamente lo mismo (LPM). As como los PICs poseen un entorno de desarrollo (MPLAB), los AVR tambin poseen herramientas de desarrollo gratuitas o de bajo costo capaces de descargar el cdigo al microcontrolador utilizando una versin de las herramientas de licencia libre GNU. Ahora bien, como es probable que este artculo est siendo ledo por estudiantes y/o principiantes, vamos a dar una breve introduccin que explique qu es un microcontrolador y para qu se lo emplea. Para este propsito emplearemos definiciones realizadas por Emilio Toboso en su pgina www.perso.wanadoo.es/emiliotoboso. Cabe aclarar que en el libro PIC para Estudiantes, de Editorial Quark, Ud, puede encontrar bibliografa extensa sobre el tema y que en la pgina del Sr. Toboso tambin podr encontrar abundante informacin orientada a los microcontroladores PICs,

Introduccin a los Microcontroladores Desde la invencin de los semiconductores, el desarrollo de la tecnologa digital ha dado lugar a dispositivos cada vez ms complejos y rpidos. Entre ellos los microprocesadores y los microcontroladores. Los microcontroladores se encuentran en nuestro trabajo, en nuestra casa y en nuestra vida. Controlan el funcionamiento de los teclados de las computadoras, estn en los telfonos celulares, en los hornos de microondas y, en general, en todo aparato electrnico que posea un grado de automatismo. Se dice que un controlador es un dispositivo que se emplea para manejar uno o varios procesos. Por ejemplo, para ver televisin, un controlador evala la seal que ingresa por la antena y la procesa para que a la pantalla y el parlante llegue con el mismo nivel promedio, sin importar el nivel de la seal ingresante, siempre que est dentro de determinados parmetros. Hasta hace unos 35 aos, los controladores se construan con componentes electrnicos de lgica discreta; posteriormente se emplearon los microprocesadores, apoyados con chips de memoria y dispositivos de E/S sobre una tarjeta de circuito impreso. Desde comienzos de los 90 todos los elementos del controlador se han podido incluir en un solo circuito integrado, el cual recibe el nombre de microcontrolador. Es decir, un microcontrolador es un chip que posee en su interior a un microprocesador, memoria de programa, memoria de datos y puertos para comunicarse con el exterior. Un microcontrolador es un circuito integrado de alta escala de integracin 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 la memoria de programa debe residir un conjunto

2

Saber Electrnica

Microcontroladores AVR de Atmelde sentencias (programa) que controlan el funcionamiento de una tarea determinada, sus lneas de entrada/salida se conectan a los sensores y actuadores del dispositivo a controlar y, debido a su pequeo tamao, suele ir integrado en el propio dispositivo al que automatiza. Segn lo dicho, 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. Lneas de E/S para comunicarse con el exterior. Tambin puede poseer otros bloques de apoyo que flexibilizan an ms su uso, tales como: Mdulos para el control de perifricos: temporizadores, puertos serie y paralelo, CAD: Conversores Analgico/Digital, CDA: Conversores Digital/Analgico, etc. Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. Sistemas de proteccin de sobrecorriente o cortocircuito. Cada fabricante de microcontroladores oferta un elevado nmero de modelos diferentes, desde los ms sencillos hasta los ms poderosos. Se puede seleccionar la capacidad de las memorias, el nmero de lneas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy importante del diseo de un sistema microcontrolado es la seleccin del microcontrolador a utilizar. 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. Algunas aplicaciones de los microcontroladores son: En sistemas de comunicacin: centrales telefnicas, transmisores, receptores, tlefonos fijos, celulares, fax, etc. En electrodomsticos: lavarropas, hornos de microondas, heladeras, lavavajillas, televisores, reproductores de DVD, minicomponentes, controles remotos, etc. Industria informtica: Se encuentran en casi todos los perifricos; ratones, teclados, impresoras, escner, etc. Figura 1

Domtica: sistemas de alarma y seguridad, control de procesos hogareos a distancia, etc. Automacin: climatizacin, seguridad, ABS, etc. Industria: Autmatas, control de procesos, etc. Otros: Instrumentacin, electromedicina, ascensores, calefaccin, aire acondicionado, sistemas de navegacin, etc. En la figura 1 se puede apreciar la distribucin de los microcontroladores en las reas de ms uso.

Arquitecturas de Proceso En general, los microcontroladores poseen dos formas de trabajo en cuanto a los datos y direcciones. La arquitectura de Von Neumann (figura 2) se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a travs de un sistema de buses nico (direcciones, datos y control) mientras que la arquitectura Harvard (figura 3) dispone de dos memorias independien-

Figura 2

Figura 3 Saber Electrnica

3

Artculo de Portadates, una que contiene slo instrucciones y otra slo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias. La memoria de datos (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 memoria de programa (ROM). El usuario de PC est habituado a manejar Megabytes de memoria, pero los diseadores con microcontroladores trabajan con capacidades de memoria de programa de 512 bytes, 1kB, 2kB y hasta unos 128kB y de RAM de 32 bytes, 68 bytes, 512 bytes (hasta unos 4kB). Existen distintos tipos de memorias y en un microcontrolador se puede encontrar cualquiera de ellas: ROM con mscara: Es una memoria no voltil de slo lectura, cuyo contenido se graba durante la fabricacin del chip. El trmino mscara viene de la forma como se fabrican los circuitos integrados. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se obtienen a partir de procesos fotoqumicos, donde se impregnan capas de silicio y xido de silicio, y segn convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sita entre la luz y la oblea una mscara con agujeros, de manera que donde deba incidir la luz, sta pasar. Con varios procesos similares, pero ms complicados, se consigue fabricar los transistores y diodos que componen un circuito integrado. El alto precio del diseo de la mscara slo hace aconsejable el empleo de los microcontroladores, con este tipo de memoria, cuando se precisan cantidades superiores a varios miles de unidades. OTP: Es una memoria no voltil de slo lectura "programable una sola vez" por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde una PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas. EPROM: Erasable Programmable Read OnIy Memory, pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde una 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 cpsulas son de material cermico y son ms caros que los microcontroladores con memoria OTP, que estn hechos con material plstico. Hoy da se utilizan poco, siendo sustituidas por memorias EEPROM o Flash. EEPROM: Electrical Erasable Programmable Read OnIy Memory, son memorias de slo lectura, programa-

La Unidad Central de Proceso o CPU Es el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel de hardware como de 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. Existen tres tipos de CPU en cuanto a la forma de procesar las instrucciones: CISC: Un gran nmero de procesadores usados en los microcontroladores estn basados en la filosofa CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de 80 instrucciones de mquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actan como macros. RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores, estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones de mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es "especfico"; o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especfico).

La Memoria La memoria de programa y datos est integrada en el propio circuito integrado. 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.

4

Saber Electrnica

Microcontroladores AVR de Atmelbles y borrables elctricamente EEPROM a travs de la aplicacin de una tensin de predisposicin Vpp. Tanto la programacin como el borrado se realizan elctricamente desde el propio grabador y bajo el control programado de una PC. Es muy cmoda y rpida la operacin 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 nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramacin continua. Hoy da estn siendo sustituidas por memorias de tipo Flash. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables, para guardar y modificar cmodamente una serie de parmetros que adecan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. FLASH: Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Son idneas para la enseanza y la Ingeniera de diseo. 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. de E/S que comunican al computador interno con los perifricos exteriores y, segn los controladores de perifricos que posea cada modelo de microcontrolador, se destinan a proporcionar el soporte a las seales de entrada, salida y control. Todos los microcontroladores destinan algunas de sus patillas a soportar lneas de E/S de tipo digital, esto es, todo o nada. Por lo general, estas lneas se agrupan de ocho en ocho formando Puertos. Las lneas 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 configuracin.

Reloj (Clock) 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. 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 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 energa y de calor generado.

Recursos Especiales del Microcontrolador Cada fabricante posee numerosas versiones de una arquitectura bsica de microcontrolador. En algunas familias se ampla las capacidades de las memorias, en otras se incorporan nuevos recursos, en otras se reduce las prestaciones al mnimo para aplicaciones muy simples, etc. El trabajo del diseador es encontrar el modelo mnimo que satisfaga todos los requerimientos de su aplicacin. As, minimizar el costo, el hardware y el software. Veamos algunos recursos: Temporizadores y Contadores Los temporizadores se emplean para controlar perodos de tiempo y los contadores para llevar la cuenta de acontecimientos que suceden en el exterior. Para la meSaber Electrnica

Puertos de Entrada y Salida La principal utilidad de las patas que posee el chip que contiene un microcontrolador es soportar las lneas

5

Artculo de Portadadida de tiempos se carga un registro con el valor adecuado y a continuacin dicho valor se va incrementando o decrementando 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 a travs del cambio de informacin en una variable o registro (registro de cdigo de condiciones, por ejemplo). 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 Guardin o "Watchdog" Normalmente, cuando un ordenador personal se bloquea por un fallo del software u otra causa, se pulsa el botn del reset y se reinicia el sistema. Un microcontrolador suele funcionar 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 y generalmente se usa para detectar fallas de programas que ocasionaran que el micro se quede trabajando dentro de un loop indefinidamente. 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, el programa no refrescar al Perro Guardin y, al completar su temporizacin, provocar el reset del sistema. Sleep, Estado de Reposo de Bajo Consumo En muchas situaciones 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, es preciso ahorrar pilas; como en el caso de los controles remotos, donde el sistema est a la espera de que el usuario oprima una tecla. Para ahorrar energa, los microcontroladores disponen de una instruccin especial (SLEEP en algunos micros), 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 el microcontrolador sumido en un profundo "sueo". Al activarse una interrupcin ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. Para hacernos una idea, esta funcin es parecida a la opcin de Suspender en el men para apagar el equipo (en aquellas PCs con administracin avanzada de energa). Procesamiento de Seales Analgicas 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 patillas del circuito integrado. Por otra parte un CDA o conversor D/A transforma los datos digitales obtenidos del procesamiento de la computador en su correspondiente seal analgica que saca al exterior por una de las patillas de la cpsula. Existen muchos dispositivos de salida que trabajan con seales analgicas. 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 patillas 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. Proteccin "Brownout" Esta proteccin la realiza un circuito que resetea al microcontrolador cuando la tensin de alimentacin (VDD) es inferior a un mnimo ("brownout"). Mientras la tensin de alimentacin 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 errneos por transiciones y ruidos en la lnea de alimentacin. Modulador de Ancho de Pulsos o PWM Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a travs de las patillas del encapsulado. Es til para sistemas de control de potencia, como por ejemplo motores.

6

Saber Electrnica

Microcontroladores AVR de AtmelPuertos de Comunicacin Para que el micro se pueda comunicar con otros dispositivos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos es preciso agregarle unidades o puertos de comunicacin. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: UART, adaptador de comunicacin serie asincrnica. USART, adaptador de comunicacin serie sincrnica y asincrnica. Puerto paralelo esclavo para poder conectarse con los buses de otros microprocesadores. USB (Universal Serial Bus). Bus I2C, que es una interfaz serie de dos hilos desarrollado por Philips. Interface SPI, un puerto serie sincrnico. 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. TCP/IP, ya existen microcontroladores con un adaptador de comunicacin para este protocolo. Tanto el I2C en televisores, como el Bus CAN en automviles, fueron diseados para simplificar el circuito que supone un bus paralelo de 8 lneas dentro de un televisor, as como para librar de la carga que supone una cantidad ingente de cables en un vehculo. neas de programa, 16bits por inst.), PIC:1kx14 (1024 lneas de programa de 14 bit cada una). Memoria EEPROM libre: AVR - 64Bytes, PIC - 64Bytes Salidas: AVR - 15, PIC - 13 TIMER: AVR - 1 de 8bit (con prescaler desde CK hasta CK/1024), PIC - 1 de 8 bit (con prescaler desde 1:2 hasta 1:256) Comparador Analgico (NO ADC): AVR - 1 PIC - NO POSEE Watchdog: Ambos poseen Oscilador interno: Ambos poseen, en el AVR slo habilitable con programacin paralela Niveles de pila (STACK): AVR - 3, PIC - 8 Interrupciones: AVR - reset, interna, externa, timer y por comparador analgico, PIC - 5 interrupciones Bsicamente, los AVR tienen 3 registros para cada puerto de salida a saber: DDRB - Sirve para decir qu patas son de entrada o salida, 0 es entrada, 1 es salida (es inverso a los PIC). PINB - Registro que sirve para entradas solamente. PORTB - Registro que sirve para salidas solamente. Esto significa que para leer una entrada se debe usar el registro PINB mientras que para escribir datos en una salida se debe emplear el registro PORTB (obviamente si hacemos referencia a las patas del puerto B). En el ATMEL AT90S1200 el PortB tiene 8 bits de datos, a diferencia del PORTD que tiene slo 7. El bit 7 del PORTD no se emplea; PORTD tambin consta de 3 registros: DDRD, PORTD y PIND.

********************************************************** Los Atmel de Uso Automotriz

LOS MICROCONTROLADORES AVRLa empresa Atmel ha desarrollado una gran cantidad de microcontroladores en diferentes gamas, de forma similar a lo que ha hecho la empresa Microchip con nuestros viejos amigos: los PICs. Quiz, el ms popular es el ATMEL AT90S1200, que es algo as como el 16F84 de Microchip (en cuanto a popularidad se refiere). A continuacin se realiza algunos datos comparativos entre el AT90S1200 y el PIC16F84: N de instrucciones: AVR - 89, PIC - 35 Registros RAM: AVR - 32, PIC - 68 Velocidad: AVR - 12MHz, PIC: 20MHz Memoria de Programa: AVR - 1kByte FLASH (512 l-

Por algn micro debemos empezar Cuando comenzamos a realizar artculos con microcontroladores PIC en Saber Electrnica, all por 1998, elegimos el 16F84 y nuestro modelo o mentor era el viejo y conocido David Tate. Conversando con el Ing. Ismael Cervantes y en base al trabajo que est realizando el Ing. Lus Roberto Rodrguez, llegu a la conclusin que deba recurrir a la fuente y as determin que lo mejor es realizar la descripcin de varios modelos, tarea que iremos desarrollando en diferentes ediciones de nuestra querida revista. En esta oportunidad especificaremos algunas caractersticas y describiremos el funcionamiento de la serie de uso automotor ATtiny 25/45/85. A su vez, para concluir, daremos los circuitos de programadores de algunos modelos con licencia libre GNU. Saber Electrnica

7

Artculo de PortadaLa Serie ATtiny 25/45/85 El ATtiny 25/45/85 es un microcontrolador CMOS de 8 bits de baja potencia basado en la arquitectura RISC mejorada del AVR. Mediante la ejecucin de poderosas instrucciones en un solo ciclo de reloj, el ATtiny 225/45/85 logra una produccin que alcanza 1MIPS por MHz, permitindole al diseador de sistemas optimizar la relacin consumo de potencia-velocidad de procesamiento. Las principales caractersticas del dispositivo son las siguientes: * Alto desempeo, baja potencia. * Arquitectura RISC avanzada: -120 instrucciones poderosas, la mayora con ejecucin de un solo ciclo de reloj. -32x8 registros de trabajo de propsito general. -operacin totalmente esttica. * Programa y Memoria de Datos no voltiles: -2/4/8 kbytes de Memoria Flash Programable en el sistema, con duracin: 10000 ciclos de escritura/borrado. -128/256/512 bytes de EEPROM programable en el sistema, con duracin: 100000 ciclos de escritura/borrado. -128/256/512 bytes de SRAM interna. -Cerrojo de programacin para autoprogramar la Memoria Flash y Seguridad de Datos de EEPROM. * Caractersticas Perifricas: -Contador/Temporizador de 8 bits con Prescaler y dos canales PWM. -Contador/Temporizador de Alta Velocidad de 8 bits con Prescaler separado: Dos Salidas PWM de Alta Frecuencia con Registros de Comparacin de Salida separados. Generador Programable de Tiempo Muerto. -Interfaz Serie Universal con Detector de Condicin de Comienzo. -ADC de 10 bits: Cuatro Canales de Una Sola Salida. Dos Pares de Canales ADC Diferenciales con Ganancia Programable (1x, 20x). -Temporizador Programable de Vigilancia con Oscilador separado dentro del integrado. -Comparador Analgico dentro del integrado. * Caractersticas Especiales del Microcontrolador: -Sistema de Depuracin debugWIRE dentro del integrado. -Programable dentro del Sistema a travs del Puerto SPI. -Fuentes de Interrupcin Externas e Internas. -Modos de Descanso en Baja Potencia, de Reduccin de Ruido de ADC, y de Reduccin de Potencia. -Circuito Mejorado de Reinicializacin de Encendido. -Circuito Programable de Deteccin de Brownout (estado en que la tensin es entre un 8 y un 12% inferior al valor tpico) . -Oscilador Calibrado interno. * Entradas/Salidas y Encapsulados: -Seis Lneas Programables de Entrada/Salida. -SOIC de 8 patas. * Tensin de Funcionamiento: -2,7 a 5,5V * Rango de Velocidades: -ATtiny25/45/85: 0-8 MHz@2,7-5,5V, 0-16MHz @4,5-5,5V. * Rango de Temperaturas del Automvil: -de -40C a +125C * Bajo Consumo de Potencia: -Modo Activo: 1MHz, 2,7V : 500A -Modo de Potencia Reducida: 2A con 2,7V. La figura 4 muestra la disposicin de terminales de este microcontrolador.

Diagrama en Bloques En la figura 4 se puede observar el diagrama en bloques de la serie ATtiny 25/45/85 de ATmel. El ncleo del AVR combina un conjunto rico de instrucciones con 32 registros de trabajo de propsito general. Los 32 registros estn directamente conectados a la Unidad Aritmtico-Lgica (ALU), permitiendo que 2 registros independientes se accedan en una sola instruccin ejecutada en un ciclo de reloj. La arquitectura resultante es ms eficiente en lo que respecta a cdigo, en tanto que logra un rendimiento hasta 10 veces superior que los microcontroladores convencionales CISC. De las caractersticas enunciadas anteriormente, sobre el ATtiny 25/45/85 podemos destacar las siguientes: 2/4/8kB de Memoria Flash Programable en el Sistema, 128/256/512 bytes de EEPROM, 128/256/256 bytes de SRAM, 6 lneas de entrada/salida de propsito general, 32 registros de trabajo de propsito general, un Temporizador/Contador de 8 bits con modos de comparacin, un Temporizador/Contador de alta velocidad de 8 bits, una

8

Saber Electrnica

Microcontroladores AVR de Atmel

Figura 4 Interfaz Serie Universal, Interrupciones Internas y Externas, un ADC de 4 canales de 10 bits, un Temporizador Programable de Vigilancia con Oscilador Interno y 3 modos de ahorro de potencia seleccionables por software. El modo de Descanso detiene la CPU en tanto que permite que la SRAM, el Temporizador/Contador, el ADC, el Comparador Analgico, y el sistema de Interrupcin sigan trabajando. El modo de Reduccin de Potencia guarSaber Electrnica

9

Artculo de Portadada el contenido de los registros, inhabilitando todas las funciones del integrado hasta la siguiente Interrupcin o Reinicializacin. El modo de Reduccin de Ruido del ADC detiene la CPU y todos los mdulos de E/S excepto el ADC, a fin de minimizar el ruido de conmutacin durante las conversiones del ADC. El dispositivo se fabrica usando la tecnologa de memoria no-voltil y alta densidad de ATMEL. El sistema de interfaz serial que maneja el integrado permite que la Memoria de Programa se reprograme en el sistema a travs de una interfaz serie (SPI) mediante un programador convencional de memorias novoltiles o mediante un cdigo de carga incorporado en el integrado que se ejecuta en el ncleo del AVR. El AVR tiene un soporte basado en herramientas de desarrollo del sistema y de programacin que incluyen: Compiladores C, Macroensambladores, Depurador/Simuladores de Programa, Emuladores en el Circuito y Conjuntos de Componentes de Evaluacin. Este microcontrolador ha sido desarrollado y fabricado de acuerdo con los requerimientos ms exigentes de la norma internacional ISO-TS-16949 que define los grados de calidad para uso automotriz. Figura 5

te se ponen en 0 entregarn corriente si se activan los resistores pull-up.Las patas del Puerto B son del tipo tri-state cuando se activa una condicin de reinicializacin, aunque el reloj no est funcionando. RESET: Entrada de Reinicializacin. Un 0 en esta pata, durante ms de un pulso mnimo, generar una reinicializacin aunque el reloj no est funcionando.

La CPU del AVR Descripcin de los Pines: Vcc: Tensin de alimentacin. GND: Masa, tierra. Puerto B (PB5 PB0): El Puerto B es un puerto de E/S bidireccional de 6 bits con resistores pull-up internos (seleccionables para cada bit). Los buffers de salida del puerto B tienen caractersticas simtricas de excitacin con alta capacidad, tanto de fuente como de sumidero. Como entradas, las patas del Puerto B que externamenTrataremos la arquitectura del ncleo del AVR en general. La funcin principal del ncleo de la CPU es asegurar una correcta ejecucin del programa. La CPU, por lo tanto, debe acceder a memorias, realizar clculos, controlar perifricos, y manejar interrupciones. En la figura 5 se puede observar la arquitectura de la CPU. A fin de maximizar el desempeo y el paralelismo, el AVR usa una arquitectura Harvard, con memorias y buses separados para el programa y los datos. Las instrucciones que estn en la memoria de Programa se ejecutan con un solo nivel de transmisin por conductos. Mientras que se ejecuta una instruccin, se extrae la siguien-

10

Saber Electrnica

Microcontroladores AVR de Atmelte instruccin de la memoria de Programa. Este concepto permite que las instrucciones se ejecuten en cada ciclo de reloj. La memoria de programa es la memoria flash reprogramable en el Sistema. El Archivo de Registros de acceso rpido contiene 32 registros de trabajo de propsito general de 8 bits con un tiempo de acceso de un solo ciclo de reloj. Esto permite la operacin de la Unidad Aritmtico Lgica (ALU) en un slo ciclo. En una tpica operacin de la ALU, se toman 2 operandos del Archivo de Registros, se ejecuta la operacin, y el resultado se almacena nuevamente en el Archivo de Registros en un ciclo de reloj. Seis de los 32 registros se pueden usar como 3 registros apuntadores de direccionamiento indirecto de 16 bits para el direccionamiento en el Espacio de Datos, permitiendo eficientes clculos de direcciones. Uno de estos apuntadores de direcciones tambin se puede usar como apuntador de direcciones para tablas de consulta en la memoria Flash de Programa. Estos registros funcionales agregados son los registros X, Y y Z de 16 bits. La ALU soporta operaciones aritmticas y lgicas entre registros o entre una constante y un registro. Las operaciones de un solo registro tambin se pueden ejecutar en la ALU. Luego de una operacin aritmtica, el Registro de Estado se actualiza para reflejar la informacin sobre el resultado de la operacin. El Programa tiene instrucciones de salto condicional e incondicional e instrucciones de llamada, capaces de direccionar en forma directa todo el espacio de direcciones. La mayora de las instrucciones del AVR tienen un solo formato de palabra de 16 bits. Cada direccin de memoria de Programa contiene una instruccin de 16 o de 32 bits. Durante las interrupciones y las llamadas a subrutina, el Contador de Programa de direccin de retorno (PC) se almacena en la Pila. La Pila se ubica en la SRAM de datos generales, y en consecuencia el tamao de la Pila slo est limitado por el tamao total de la SRAM y su uso. Todos los programas del usuario deben inicializar el SP en la rutina de reinicializacin (antes que se ejecuten las subrutinas o las interrupciones). El Puntero de Pila (SP) se puede leer /escribir en el espacio de E/S. La SRAM de datos se puede acceder fcilmente mediante 5 modos diferentes de direccionamiento soportados en la arquitectura del AVR. Los espacios de memoria en la arquitectura del AVR son todos lineales y regulares. Un mdulo de interrupcin flexible tiene sus registros de control en el espacio de E/S con un bit adicional de Habilitacin de Interrupcin Global en el Registro de Estado. Todas las interrupciones tienen un Vector de Interrupcin separado en la tabla de Vectores de Interrupcin. Las interrupciones tienen una prioridad de acuerdo con su posicin en la tabla. Cuanto ms baja es la direccin del Vector de Interrupciones, ms alta es la prioridad. El espacio de memoria de E/S contiene 64 direcciones para funciones perifricas de la CPU como Registros de Control, SPI, y otras funciones de E/S. La memoria de E/S se puede acceder directamente, o como las posiciones del Espacio de Datos que estn a continuacin de las del Archivo de Registros, 0x20-0x5F.

La Unidad Aritmtico-Lgica (ALU) La ALU del AVR de alto desempeo trabaja en conexin directa con todos los 32 registros de trabajo de propsito general. Dentro de un solo ciclo de reloj se ejecutan las operaciones aritmticas entre registros de propsito general o entre un registro y uno inmediato. Las operaciones de la ALU se dividen en 3 categoras principales: aritmticas, lgicas, y funciones con bits. Algunas implementaciones de la arquitectura tambin proveen un poderoso multiplicador que soporta la multiplicacin con signo, sin signo y el formato fraccional.

El Registro de Estado El Registro de Estado contiene informacin sobre el resultado de la instruccin ms recientemente ejecutada. Esta informacin se puede usar para alterar el flujo del programa a fin de ejecutar operaciones condicionales. Notemos que el Registro de Estado se actualiza despus de todas las operaciones de la ALU. Esto, en muchos casos, evita la necesidad de usar instrucciones de comparacin especiales, resultando un cdigo ms compacto y ms rpido. El Registro de Estado no se almacena automticamente cuando se ingresa a una rutina de interrupcin y se vuelve a almacenar cuando se regresa de una interrupcin. Esto se maneja mediante el software. El Registro de Estado del AVR (SREG) posee una estructura como la mostrada en la figura 6. Figura 6

Saber Electrnica

11

Artculo de PortadaBit 7-I: Habilitacin Global de Interrupcin. Este bit debe ponerse en 1 para que se habiliten las interrupciones. El control individual de habilitacin de interrupcin se ejecuta luego en registros de control separados. Si se pone en 0, no se habilita ninguna interrupcin, independientemente de cmo estn las posiciones individuales de habilitacin de interrupcin. El bit I se pone en 0 mediante hardware despus que haya ocurrido una interrupcin, y se pone en 1 mediante la instruccin RETI para permitir interrupciones subsiguientes. El bit I tambin se puede poner en 1 y en 0 mediante las instrucciones SEI y CLI. Bit 6 -T: Almacenamiento de Copia de Bit. Las instrucciones de copia de bit BLD (Bit LoaD) y BST (Bit Store) usan el bit T como fuente o destino del bit operado. Un bit de un registro del Archivo de Registros se puede copiar en T mediante la instruccin BST, y un bit en T se puede copiar en un bit de un registro del Archivo de Registros mediante la instruccin BLD. Bit 5 - H: Bandera de Semi-acarreo. Este bit H indica un semi-acarreo en algunas operaciones aritmticas. El semi-acarreo es til en la aritmtica BCD. Bit 4 - S: Bit de Signo. El bit S siempre es una O exclusiva entre la Bandera Negativa N y la Bandera de Rebalse V con complemento a 2 . Bit 3 - V: Bandera de Rebalse con complemento a 2. Este bit soporta una aritmtica de complemento a 2. Bit 2 - N: Bandera Negativa. Este bit indica un resultado negativo en una operacin aritmtica o lgica. Bit 1 - Z: Bandera Nula. Este bit indica un resultado nulo en una operacin aritmtica o lgica. Bit 0 - C: Bandera de Acarreo. Este bit indica un acarreo en una operacin aritmtica o lgica.

Registros de Propsito General El Archivo de Registros se optimiza para el conjunto de instrucciones RISC mejorado del AVR. A fin de lograr el desempeo y la flexibilidad requeridas, el Archivo de Registros soporta los siguientes esquemas de E/S: Un operando de salida de 8 bits y una entrada de resultados de 8 bits. Dos operandos de salida de 8 bits y una entrada de resultados de 8 bits. Dos operandos de salida de 8 bits y una entrada de resultados de 16 bits. Un operando de salida de 16 bits y una entrada de resultados de 16 bits. Figura 7 La figura 7 muestra la estructura de los 32 registros de trabajo de propsito general de la CPU. La mayora de las instrucciones que operan en el Archivo de Registros tienen acceso directo a todos los registros, y la mayora de ellas son instrucciones de un solo ciclo. Como se ve en la figura 7, a cada registro se le asigna una direccin de memoria de Datos, las cuales se mapean directamente en las primeras 32 posiciones del Espacio de Datos del usuario. Aunque no se implementan fsicamente como posiciones de memoria de SRAM, esta organizacin de memoria proporciona una gran flexibilidad en el acceso de los registros, ya que los registros apuntadores X, Y y Z pueden apuntar a cualquier registro del archivo.

12

Saber Electrnica

Microcontroladores AVR de AtmelFigura 8

Los Registros X, Y y Z Los registros R26..R31 tienen algunas funciones adicionales a su uso de propsito general. Estos son punteros de direcciones de 16 bits para el direccionamiento indirecto del espacio de datos. Los 3 registros X, Y y Z de direccionamiento indirecto se definen como se describe en la figura 8. En los distintos modos de direccionamiento estos registros de direcciones tienen funciones tales como desplazamiento fijo, incremento automtico y decremento automtico.

Primeras Conclusiones En esta nota hemos dado una introduccin sobre los microcontroladores Atmel. En sucesivas ediciones continuaremos explicando el funcionamiento de los diferentes bloques componentes del micro, describiendo tambin algunos proyectos de mucha utilidad, tal como lo es la Interfase Grfica de Video publicada en la edicin anterior.

pueden ser de utilidad. Si bien se propone el cargador para el Atmel AT90S2313, descargando la aplicacin IgorPlugUSBprogrammer es posible programar otros micros de 20 patas. Para bajar la aplicacin que permite realizar la carga del programa, el lector debe registrarse en la pgina del autor. En la figura 9 se puede apreciar el circuito elctrico de este programador y en la figura 10 una imagen de la pantalla que muestra la carga del programa. Les recomiendo configurar en la Bios de su ordenador que el puerto paralelo est en modo Figura 10

Un Sencillo Programador por Puerto Paralelo Navegando por Internet, en busca de informacin que me permita tomar experiencia sobre estos temas con el objeto de compartirla con Uds, encontr un sencillo programador por puerto paralelo en la pgina: www.cesko.host.sk. Dicha pgina (que est en ingls), posee muy buena informacin y varios circuitos que le Saber Electrnica

Figura 9

13

Artculo de PortadaECP para que no haya ningn inconveniente al programar. Por ltimo, en la figura 11 se puede observar el entorno de desarrollo de microcontroladores Atmel de 40 terminales que estamos empleando para el armado de nuestras prcticas y que emplearemos tambin para el diseo y construccin de prototipos. Esta placa entrenadora es la que usamos para programar el Atmel Mega 8515 que sirvi de prototipo para el armado de la Interfase Grfica de Video de la edicin anterior de Saber Electrnica.

Figura 11

14

Saber Electrnica