Вы находитесь на странице: 1из 14

ARTÍCULO DE PORTADA

Qué son, para qué sirven, cómo se usan


Microcontroladores AVR de Atmel
Arquitectura, Programadores, Tarjetas de Desarrollo

Debido a la gran cantidad de consultas recibidas durante los primeros días de publicación de la edición
anterior de Saber Electrónica, en referencia al Artículo de Portada: “Interfase Gráfica de Video”, que sirve
para la construcción de distintos tipos de instrumentos y que se basa en el uso de un microcontrolador
de la empresa Atmel, programamos la edición del presente artículo. En el mismo pretendemos dar a co-
nocer a nuestros lectores las principales características de estos chips; brindando, además, algunos cir-
cuitos que pueden ser de interés tanto para la programación de estos dispositivos como para comenzar
a realizar sus primeras prácticas.

Los AVR son una familia de microcontroladores RISC (que manejan un set reducido de instrucciones) de
la empresa Atmel. El diseño 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 encuen-
tran en un espacio de memoria unificado, en el cual también se encuentra el stack (a diferencia de lo que
ocurre en los PICS, viejos conocidos de los lectores de Saber Electrónica).

Este es el primero de una serie de artículos destinados a familiarizar a nuestros lectores con los AVR cuyo
objeto es la realización de varios proyectos que serán publicados en próximas ediciones.

Artículo preparado por Horacio D. Vallejo, en base a información 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 Electrónica 1
Artículo de Portada
Luego de preguntar a diferentes fuentes sobre el ori- (MPLAB), los AVR también poseen herramientas de de-
gen del nombre AVR, propuesto por Atmel para estos mi- sarrollo gratuitas o de bajo costo capaces de descargar el
crocontroladores, desconozco la verdadera etimología código al microcontrolador utilizando una versión de las
de estas siglas, sin embargo podrían deberse a lo si- herramientas de licencia libre GNU.
guiente: Ahora bien, como es probable que este artículo esté
siendo leído por estudiantes y/o principiantes, vamos a
1) Audio, Video, Radio: Microcontroladores pensados dar una breve introducción que explique qué es un micro-
para aplicaciones en audio, video y radio. controlador y para qué se lo emplea. Para este propósito
2) Advanced Virtual Risc. emplearemos definiciones realizadas por Emilio Toboso
3) Corresponde a las iniciales de sus inventores: Alf en su página www.perso.wanadoo.es/emiliotoboso.
Egil Bogen and Vegard Wollan (AlfVegardRisc). Cabe aclarar que en el libro “PIC para Estudiantes”, de
Editorial Quark, Ud, puede encontrar bibliografía extensa
El AVR fue diseñado para la ejecución de programas sobre el tema y que en la página del Sr. Toboso también
escritos en código C compilado. Por lo tanto, algunas ins- podrá encontrar abundante información orientada a los
trucciones no están; por ejemplo, no existe la instrucción microcontroladores PICs,
'suma inmediata' ('add immediate'), ya que la instrucción
'resta inmediata' ('substract immediate') con el comple-
mento a dos puede ser usada como alternativa. Introducción a los Microcontroladores
La familia de microcontroladores AVR es bastante ex-
tensa y todas comparten el mismo núcleo AVR, pero tie- Desde la invención de los semiconductores, el desarro-
nen distintos periféricos y cantidades de RAM y ROM: llo de la tecnología digital ha dado lugar a dispositivos ca-
desde el microcontrolador de la familia Tiny AVR ATtiny11 da vez más complejos y rápidos. Entre ellos los micropro-
con 1kB de memoria flash y sin RAM (sólo los 32 regis- cesadores y los microcontroladores. Los microcontrolado-
tros), con un encapsulado de 8 pines, hasta el microcon- res se encuentran en nuestro trabajo, en nuestra casa y en
trolador de la famila Mega AVRATmega2560 con 256kB nuestra vida. Controlan el funcionamiento de los teclados
de memoria flash, 8kB de memoria RAM, 4kB de memo- de las computadoras, están en los teléfonos celulares, en
ria EEPROM, conversor análogo digital de 10 bits y 16 los hornos de microondas y, en general, en todo aparato
canales, temporizadores, comparador analógico, etc. electrónico que posea un grado de automatismo.
Cada componente de la familia se ha diseñado para Se dice que un controlador es un dispositivo que se
que guarde cierta compatibilidad con el resto. Los micro- emplea para manejar uno o varios procesos. Por ejemplo,
controladores AVR permiten la ejecución de instrucciones para ver televisión, un controlador evalúa la señal que in-
mediante la metodología 'pipeline' con dos etapas (cargar gresa por la antena y la procesa para que a la pantalla y
y ejecutar), que les permite ejecutar la mayoría de las ins- el parlante llegue con el mismo nivel promedio, sin impor-
trucciones en un ciclo de reloj, lo que los hace relativa- tar el nivel de la señal ingresante, siempre que esté den-
mente rápidos entre los microcontroladores de 8 bits. tro de determinados parámetros. Hasta hace unos 35
Como una primera síntesis, podemos decir que el set años, los controladores se construían con componentes
de instrucciones de los AVR es bastante “regular”, tenien- electrónicos de lógica discreta; posteriormente se em-
do en cuenta las siguientes consideraciones: plearon los microprocesadores, apoyados con chips de
memoria y dispositivos de E/S sobre una tarjeta de circui-
• Los registros punteros X, Y y Z tienen capacidades to impreso. Desde comienzos de los 90 todos los elemen-
de direccionamiento diferentes entre sí. tos del controlador se han podido incluir en un solo circui-
• Los registros 0 al 15 tienen diferentes capacidades to integrado, el cual recibe el nombre de microcontrola-
de direccionamiento que los registros 16 al 31. dor. Es decir, un microcontrolador es un chip que posee
• Las registros de I/O 0 al 31 tienen distintas caracte- en su interior a un microprocesador, memoria de progra-
rísticas que las posiciones 32 al 63. ma, memoria de datos y puertos para comunicarse con el
• La instrucción CLR afecta los 'flag', mientras que la exterior.
instrucción SER no lo hace, a pesar de que parecen ser Un microcontrolador es un circuito integrado de alta
instrucciones complementarias (dejar todos los bits en 1, escala de integración que incorpora la mayor parte de los
y dejar todos los bits en 0 respectivamente). elementos que configuran un controlador y que contiene
• Los códigos de operación 0x95C8 y 0x9004 hacen todos los componentes fundamentales de un ordenador,
exactamente lo mismo (LPM). aunque de limitadas prestaciones y que se suele destinar
a gobernar una sola tarea.
Así como los PICs poseen un “entorno de desarrollo” En la memoria de programa debe residir un conjunto

2 Saber Electrónica
Microcontroladores AVR de Atmel
de sentencias (programa) que controlan el funcionamien- Figura 1
to 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 integra-
do en el propio dispositivo al que automatiza.
Según lo dicho, un microcontrolador dispone normal-
mente de los siguientes componentes:

• Procesador o CPU (Unidad Central de Proceso).


• Memoria RAM para contener los datos.
• Memoria para el programa tipo ROM/EPROM/EE-
PROM/Flash. • Domótica: sistemas de alarma y seguridad, control
• Líneas de E/S para comunicarse con el exterior. de procesos hogareños a distancia, etc.
• Automación: climatización, seguridad, ABS, etc.
También puede poseer otros bloques de apoyo que • Industria: Autómatas, control de procesos, etc.
flexibilizan aún más su uso, tales como: • Otros: Instrumentación, electromedicina, ascenso-
res, calefacción, aire acondicionado, sistemas de nave-
• Módulos para el control de periféricos: temporizado- gación, etc.
res, puertos serie y paralelo, CAD: Conversores Analógi-
co/Digital, CDA: Conversores Digital/Analógico, etc. En la figura 1 se puede apreciar la distribución de los
• Generador de impulsos de reloj que sincronizan el microcontroladores en las áreas de más uso.
funcionamiento de todo el sistema.
• Sistemas de protección de sobrecorriente o cortocir-
cuito. Arquitecturas de Proceso

Cada fabricante de microcontroladores oferta un ele- En general, los microcontroladores poseen dos for-
vado número de modelos diferentes, desde los más sen- mas de trabajo en cuanto a los datos y direcciones. La ar-
cillos hasta los más poderosos. Se puede seleccionar la quitectura de Von Neumann (figura 2) se caracteriza por
capacidad de las memorias, el número de líneas de E/S, disponer de una sola memoria principal donde se almace-
la cantidad y potencia de los elementos auxiliares, la ve- nan datos e instrucciones de forma indistinta. A dicha me-
locidad de funcionamiento, etc. Por todo ello, un aspecto moria se accede a través de un sistema de buses único
muy importante del diseño de un sistema microcontrola- (direcciones, datos y control) mientras que la arquitectura
do es la selección del microcontrolador a utilizar. Una Harvard (figura 3) dispone de dos memorias independien-
aplicación típica podría emplear varios microcontrolado-
res para controlar pequeñas partes del sistema. Estos pe-
queñ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. Algunas aplicaciones de los microcontroladores son:

• En sistemas de comunicación: centrales telefónicas,


transmisores, receptores, télefonos fijos, celulares, fax, Figura 2
etc.
• En electrodomésticos: lavarro-
pas, hornos de microondas, helade-
ras, lavavajillas, televisores, repro-
ductores de DVD, minicomponentes,
controles remotos, etc.
• Industria informática: Se en-
cuentran en casi todos los periféri-
cos; ratones, teclados, impresoras,
escáner, etc. Figura 3

Saber Electrónica 3
Artículo de Portada
tes, una que contiene sólo instrucciones y otra sólo datos. La memoria de datos (RAM) en estos dispositivos es
Ambas disponen de sus respectivos sistemas de buses de poca capacidad pues sólo debe contener las variables
de acceso y es posible realizar operaciones de acceso y los cambios de información que se produzcan en el
(lectura o escritura) simultáneamente en ambas memo- transcurso del programa. Por otra parte, como sólo exis-
rias. te un programa activo, no se requiere guardar una copia
del mismo en la RAM pues se ejecuta directamente des-
de la memoria de programa (ROM).
La Unidad Central de Proceso o CPU El usuario de PC está habituado a manejar Megaby-
tes de memoria, pero los diseñadores con microcontrola-
Es el elemento más importante del microcontrolador y dores trabajan con capacidades de memoria de programa
determina sus principales características, tanto a nivel de de 512 bytes, 1kB, 2kB y hasta unos 128kB y de RAM de
hardware como de software. Se encarga de direccionar la 32 bytes, 68 bytes, 512 bytes (hasta unos 4kB).
memoria de instrucciones, recibir el código OP de la ins- Existen distintos tipos de memorias y en un microcon-
trucción en curso, su decodificación y la ejecución de la trolador se puede encontrar cualquiera de ellas:
operación que implica la instrucción, así como la búsque-
da de los operandos y el almacenamiento del resultado. • ROM con máscara: Es una memoria no volátil de
Existen tres tipos de CPU en cuanto a la forma de sólo lectura, cuyo contenido se graba durante la fabrica-
“procesar” las instrucciones: ción del chip. El término máscara viene de la forma como
se fabrican los circuitos integrados. Estos se fabrican en
• CISC: Un gran número de procesadores usados en obleas que contienen varias decenas de chips. Estas
los microcontroladores están basados en la filosofía CISC obleas se obtienen a partir de procesos fotoquímicos,
(Computadores de Juego de Instrucciones Complejo). donde se impregnan capas de silicio y óxido de silicio, y
Disponen de más de 80 instrucciones de máquina en su según convenga, se erosionan al exponerlos a la luz. Co-
repertorio, algunas de las cuales son muy sofisticadas y mo no todos los puntos han de ser erosionados, se sitúa
potentes, requiriendo muchos ciclos para su ejecución. entre la luz y la oblea una máscara con agujeros, de ma-
Una ventaja de los procesadores CISC es que ofrecen al nera que donde deba incidir la luz, ésta pasará. Con va-
programador instrucciones complejas que actúan como rios procesos similares, pero más complicados, se consi-
macros. gue fabricar los transistores y diodos que componen un
• RISC: Tanto la industria de los computadores comer- circuito integrado. El alto precio del diseño de la máscara
ciales como la de los microcontroladores, están decan- sólo hace aconsejable el empleo de los microcontrolado-
tándose hacia la filosofía RISC (Computadores de Juego res, con este tipo de memoria, cuando se precisan canti-
de Instrucciones Reducido). En estos procesadores el re- dades superiores a varios miles de unidades.
pertorio de instrucciones de máquina es muy reducido y • OTP: Es una memoria no volátil de sólo lectura "pro-
las instrucciones son simples y, generalmente, se ejecu- gramable una sola vez" por el usuario. OTP (One Time
tan en un ciclo. La sencillez y rapidez de las instrucciones Programmable). Es el usuario quien puede escribir el pro-
permiten optimizar el hardware y el software del procesa- grama en el chip mediante un sencillo grabador controla-
dor. do por un programa desde una PC. La versión OTP es re-
• SISC: En los microcontroladores destinados a aplica- comendable cuando es muy corto el ciclo de diseño del
ciones muy concretas, el juego de instrucciones, además producto, o bien, en la construcción de prototipos y series
de ser reducido, es "específico"; o sea, las instrucciones se muy pequeñas.
adaptan a las necesidades de la aplicación prevista. Esta • EPROM: Erasable Programmable Read OnIy Me-
filosofía se ha bautizado con el nombre de SISC (Compu- mory, pueden borrarse y grabarse muchas veces. La gra-
tadores de Juego de Instrucciones Específico). bación 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
La Memoria de cristal en su superficie, por la que se somete a la
EPROM a rayos ultravioleta durante varios minutos. Las
La memoria de programa y datos está integrada en el cápsulas son de material cerámico y son más caros que
propio circuito integrado. Una parte debe ser no volátil, ti- los microcontroladores con memoria OTP, que están he-
po ROM, y se destina a contener el programa de instruc- chos con material plástico. Hoy día se utilizan poco, sien-
ciones que gobierna la aplicación. Otra parte de memoria do sustituidas por memorias EEPROM o Flash.
será tipo RAM, volátil, y se destina a guardar las variables • EEPROM: Electrical Erasable Programmable Read
y los datos. OnIy Memory, son memorias de sólo lectura, programa-

4 Saber Electrónica
Microcontroladores AVR de Atmel
bles y borrables eléctricamente EEPROM a través de la de E/S que comunican al computador interno con los pe-
aplicación de una tensión de predisposición Vpp. Tanto la riféricos exteriores y, según los controladores de periféri-
programación como el borrado se realizan eléctricamen- cos que posea cada modelo de microcontrolador, se des-
te desde el propio grabador y bajo el control programado tinan a proporcionar el soporte a las señales de entrada,
de una PC. Es muy cómoda y rápida la operación de gra- salida y control. Todos los microcontroladores destinan al-
bado y la de borrado. No disponen de ventana de cristal gunas de sus patillas a soportar líneas de E/S de tipo di-
en la superficie. Los microcontroladores dotados de me- gital, esto es, todo o nada. Por lo general, estas líneas se
moria EEPROM una vez instalados en el circuito, pueden agrupan de ocho en ocho formando Puertos. Las líneas
grabarse y borrarse cuantas veces se quiera sin ser reti- digitales de los Puertos pueden configurarse como Entra-
rados de dicho circuito. Para ello se usan "grabadores en da o como Salida, cargando un 1 ó un 0 en el bit corres-
circuito" que confieren una gran flexibilidad y rapidez a la pondiente de un registro destinado a su configuración.
hora de realizar modificaciones en el programa de traba-
jo. El número de veces que puede grabarse y borrarse
una memoria EEPROM es finito, por lo que no es reco- Reloj (Clock)
mendable una reprogramación continua. Hoy día están
siendo sustituidas por memorias de tipo Flash. Se va ex- Todos los microcontroladores disponen de un circuito
tendiendo en los fabricantes la tendencia de incluir una oscilador que genera una onda cuadrada de alta frecuen-
pequeña zona de memoria EEPROM en los circuitos pro- cia, que configura los impulsos de reloj usados en la sin-
gramables, para guardar y modificar cómodamente una cronización de todas las operaciones del sistema. El cir-
serie de parámetros que adecúan el dispositivo a las con- cuito de reloj está incorporado en el microcontrolador y
diciones del entorno. Este ti- sólo se necesitan unos po-
po de memoria es relativa- cos componentes exteriores
mente lenta. para seleccionar y estabili-
• FLASH: Se trata de una zar la frecuencia de trabajo.
memoria no volátil, de bajo Dichos componentes suelen
consumo, que se puede es- consistir en un cristal de
cribir y borrar. Funciona como cuarzo junto a elementos
una ROM y una RAM pero pasivos o bien un resonador
consume menos y es más pe- cerámico o una red R-C. Au-
queña. A diferencia de la mentar la frecuencia de reloj
ROM, la memoria FLASH es supone disminuir el tiempo
programable en el circuito. Es en que se ejecutan las ins-
más rápida y de mayor densi- trucciones, pero lleva apare-
dad que la EEPROM. La alternativa FLASH está reco- jado un incremento del consumo de energía y de calor
mendada frente a la EEPROM cuando se precisa gran generado.
cantidad de memoria de programa no volátil. Es más ve-
loz y tolera más ciclos de escritura/borrado. Son idóneas
para la enseñanza y la Ingeniería de diseño. Las memo- Recursos Especiales del Microcontrolador
rias EEPROM y FLASH son muy útiles al permitir que los
microcontroladores que las incorporan puedan ser repro- Cada fabricante posee numerosas versiones de una
gramados "en circuito", es decir, sin tener que sacar el cir- arquitectura básica de microcontrolador. En algunas fami-
cuito integrado de la tarjeta. Así, un dispositivo con este lias se amplía las capacidades de las memorias, en otras
tipo de memoria incorporado al control del motor de un se incorporan nuevos recursos, en otras se reduce las
automóvil permite que pueda modificarse el programa du- prestaciones al mínimo para aplicaciones muy simples,
rante la rutina de mantenimiento periódico, compensando etc. El trabajo del diseñador es encontrar el modelo míni-
los desgastes y otros factores tales como la compresión, mo que satisfaga todos los requerimientos de su aplica-
la instalación de nuevas piezas, etc. ción. Así, minimizará el costo, el hardware y el software.
Veamos algunos recursos:

Puertos de Entrada y Salida Temporizadores y Contadores


Los temporizadores se emplean para controlar perío-
La principal utilidad de las patas que posee el chip dos de tiempo y los contadores para llevar la cuenta de
que contiene un microcontrolador es soportar las líneas acontecimientos que suceden en el exterior. Para la me-

Saber Electrónica 5
Artículo de Portada
dida de tiempos se carga un registro con el valor adecua- da por el acontecimiento esperado, el microcontrolador
do y a continuación dicho valor se va incrementando o se despierta y reanuda su trabajo. Para hacernos una
decrementando al ritmo de los impulsos de reloj o algún idea, esta función es parecida a la opción de Suspender
múltiplo hasta que se desborde y llegue a 0, momento en en el menú para apagar el equipo (en aquellas PCs con
el que se produce un aviso a través del cambio de infor- administración avanzada de energía).
mación en una variable o registro (registro de código de
condiciones, por ejemplo). Procesamiento de Señales Analógicas
Cuando se desean contar acontecimientos que se Los microcontroladores que incorporan un Conversor
materializan por cambios de nivel o flancos en alguna de A/D (Analógico/Digital) pueden procesar señales analógi-
las patillas del microcontrolador, el mencionado registro cas, tan abundantes en las aplicaciones. Suelen disponer
se va incrementando o decrementando al ritmo de dichos de un multiplexor que permite aplicar a la entrada del
impulsos. CAD diversas señales analógicas desde las patillas del
circuito integrado.
Perro Guardián o "Watchdog" Por otra parte un CDA o conversor D/A transforma los
Normalmente, cuando un ordenador personal se blo- datos digitales obtenidos del procesamiento de la compu-
quea por un fallo del software u otra causa, se pulsa el tador en su correspondiente señal analógica que saca al
botón del reset y se reinicia el sistema. Un microcontrola- exterior por una de las patillas de la cápsula. Existen mu-
dor suele funcionar sin el control de un supervisor y de chos dispositivos de salida que trabajan con señales ana-
forma continuada las 24 ho- lógicas.
ras del día. El Perro Guar- Algunos modelos de micro-
dián consiste en un tempori- controladores disponen inter-
zador que, cuando se des- namente de un Amplificador
borda y pasa por 0, provoca Operacional, que actúa como
un reset automáticamente comparador entre una señal
en el sistema y generalmen- fija de referencia y otra varia-
te se usa para “detectar” fa- ble que se aplica por una de
llas de programas que oca- las patillas de la cápsula. La
sionarían que el micro se salida del comparador pro-
quede trabajando dentro de porciona un nivel lógico 1 ó 0
un loop indefinidamente. Se según una señal sea mayor o
debe diseñar el programa de menor que la otra.
trabajo que controla la tarea También hay modelos de mi-
de forma que refresque o ini- crocontroladores con un mó-
cialice al Perro Guardián an- dulo de tensión de referencia
tes de que provoque el re- que proporciona diversas
set. Si falla el programa o se bloquea, el programa no re- tensiones de referencia que se pueden aplicar en los
frescará al Perro Guardián y, al completar su temporiza- comparadores.
ción, provocará el reset del sistema.
Protección "Brownout"
Sleep, Estado de Reposo ó de Bajo Consumo Esta protección la realiza un circuito que resetea al
En muchas situaciones de trabajo en que el microcon- microcontrolador cuando la tensión de alimentación
trolador debe esperar, sin hacer nada, a que se produzca (VDD) es inferior a un mínimo ("brownout"). Mientras la
algún acontecimiento externo que le ponga de nuevo en tensión de alimentación sea inferior al de brownout, el
funcionamiento, es preciso ahorrar pilas; como en el ca- dispositivo se mantiene reseteado, comenzando a funcio-
so de los controles remotos, donde el sistema está a la nar normalmente cuando sobrepasa dicho valor. Esto es
espera de que el usuario oprima una tecla. Para ahorrar muy útil para evitar datos erróneos por transiciones y rui-
energía, los microcontroladores disponen de una instruc- dos en la línea de alimentación.
ción especial (SLEEP en algunos micros), que les pasa al
estado de reposo o de bajo consumo, en el cual los re- Modulador de Ancho de Pulsos o PWM
querimientos de potencia son mínimos. En dicho estado Son circuitos que proporcionan en su salida impulsos
se detiene el reloj principal y se "congelan" sus circuitos de anchura variable, que se ofrecen al exterior a través
asociados, quedando el microcontrolador sumido en un de las patillas del encapsulado. Es útil para sistemas de
profundo "sueño". Al activarse una interrupción ocasiona- control de potencia, como por ejemplo motores.

6 Saber Electrónica
Microcontroladores AVR de Atmel
Puertos de Comunicación neas de programa, 16bits por inst.), PIC:1kx14 (1024 lí-
Para que el micro se pueda comunicar con otros dis- neas de programa de 14 bit cada una).
positivos, otros buses de microprocesadores, buses de Memoria EEPROM libre: AVR - 64Bytes, PIC - 64By-
sistemas, buses de redes y poder adaptarlos con otros tes
elementos bajo otras normas y protocolos es preciso Salidas: AVR - 15, PIC - 13
agregarle unidades o puertos de comunicación. Algunos TIMER: AVR - 1 de 8bit (con prescaler desde CK has-
modelos disponen de recursos que permiten directamen- ta CK/1024), PIC - 1 de 8 bit (con prescaler desde 1:2
te esta tarea, entre los que destacan: hasta 1:256)
Comparador Analógico (NO ADC): AVR - 1 PIC - NO
• UART, adaptador de comunicación serie asincróni- POSEE
ca. Watchdog: Ambos poseen
• USART, adaptador de comunicación serie sincróni- Oscilador interno: Ambos poseen, en el AVR sólo ha-
ca y asincrónica. bilitable con programación paralela
• Puerto paralelo esclavo para poder conectarse con Niveles de pila (STACK): AVR - 3, PIC - 8
los buses de otros microprocesadores. Interrupciones: AVR - reset, interna, externa, timer y
• USB (Universal Serial Bus). por comparador analógico, PIC - 5 interrupciones
• Bus I2C, que es una interfaz serie de dos hilos de- Básicamente, los AVR tienen 3 registros para cada
sarrollado por Philips. puerto de salida a saber:
• Interface SPI, un puerto serie sincrónico.
• CAN (Controller Area Network), para permitir la • DDRB - Sirve para decir qué patas son de entrada
adaptación con redes de conexionado multiplexado desa- o salida, “0” es entrada, “1” es salida (es inverso a los
rrollado conjuntamente por Bosch e Intel para el cablea- PIC).
do de dispositivos en automóviles. En EE.UU. se usa el • PINB - Registro que sirve para entradas solamente.
J185O. • PORTB - Registro que sirve para salidas solamen-
• TCP/IP, ya existen microcontroladores con un adap- te.
tador de comunicación para este protocolo.
Tanto el I2C en televisores, como el Bus CAN en au- Esto significa que para leer una entrada se debe usar
el registro PINB mientras que para escribir datos en una
tomóviles, fueron diseñados para simplificar el circuito
salida se debe emplear el registro PORTB (obviamente si
que supone un bus paralelo de 8 líneas dentro de un te-
hacemos referencia a las patas del puerto B).
levisor, así como para librar de la carga que supone una
En el ATMEL AT90S1200 el PortB tiene 8 bits de da-
cantidad ingente de cables en un vehículo.
tos, a diferencia del PORTD que tiene sólo 7. El bit 7 del
PORTD no se emplea; PORTD también consta de 3 re-
gistros: DDRD, PORTD y PIND.
**********************************************************

Los Atmel de Uso Automotriz

LOS MICROCONTROLADORES AVR Por algún micro debemos empezar…


Cuando comenzamos a realizar artículos con micro-
La empresa Atmel ha desarrollado una gran cantidad controladores PIC en Saber Electrónica, allá por 1998,
de microcontroladores en diferentes gamas, de forma si- elegimos el 16F84 y nuestro “modelo o mentor” era el vie-
milar a lo que ha hecho la empresa Microchip con nues- jo y conocido David Tate. Conversando con el Ing. Ismael
tros viejos amigos: “los PICs”. Cervantes y en base al trabajo que está realizando el Ing.
Quizá, el más popular es el ATMEL AT90S1200, que Luís Roberto Rodríguez, llegué a la conclusión que debía
es algo así como el 16F84 de Microchip (en cuanto a po- recurrir a la fuente y así determiné que lo mejor es reali-
pularidad se refiere). A continuación se realiza algunos zar la descripción de varios modelos, tarea que iremos
datos comparativos entre el AT90S1200 y el PIC16F84: desarrollando en diferentes ediciones de nuestra querida
revista. En esta oportunidad especificaremos algunas ca-
Nº de instrucciones: AVR - 89, PIC - 35 racterísticas y describiremos el funcionamiento de la se-
Registros RAM: AVR - 32, PIC - 68 rie de uso automotor ATtiny 25/45/85. A su vez, para con-
Velocidad: AVR - 12MHz, PIC: 20MHz cluir, daremos los circuitos de programadores de algunos
Memoria de Programa: AVR - 1kByte FLASH (512 lí- modelos con licencia libre GNU.

Saber Electrónica 7
Artículo de Portada
La Serie ATtiny 25/45/85 -Fuentes de Interrupción Externas e Internas.
-Modos de Descanso en Baja Potencia, de Re-
El ATtiny 25/45/85 es un microcontrolador CMOS de 8 ducción de Ruido de ADC, y de Reducción de Potencia.
bits de baja potencia basado en la arquitectura RISC me- -Circuito Mejorado de Reinicialización de Encen-
jorada del AVR. Mediante la ejecución de poderosas ins- dido.
trucciones en un solo ciclo de reloj, el ATtiny 225/45/85 lo- -Circuito Programable de Detección de Brown-
gra una producción que alcanza 1MIPS por MHz, permi- out (estado en que la tensión es entre un 8 y un 12% in-
tiéndole al diseñador de sistemas optimizar la relación ferior al valor típico) .
consumo de potencia-velocidad de procesamiento. -Oscilador Calibrado interno.
Las principales características del dispositivo son las
siguientes: * Entradas/Salidas y Encapsulados:
-Seis Líneas Programables de Entrada/Salida.
* Alto desempeño, baja potencia. -SOIC de 8 patas.

* Arquitectura RISC avanzada: * Tensión de Funcionamiento:


-120 instrucciones poderosas, la mayoría con -2,7 a 5,5V
ejecución de un solo ciclo de reloj.
-32x8 registros de trabajo de propósito general. * Rango de Velocidades:
-operación totalmente estática. -ATtiny25/45/85: 0-8 MHz@2,7-5,5V, 0-16MHz
@4,5-5,5V.
* Programa y Memoria de Datos no volátiles:
-2/4/8 kbytes de Memoria Flash Programable en el * Rango de Temperaturas del Automóvil:
sistema, con duración: 10000 ciclos de escritura/borrado. -de -40ºC a +125ºC
-128/256/512 bytes de EEPROM programable en el
sistema, con duración: 100000 ciclos de escritura/borrado. * Bajo Consumo de Potencia:
-128/256/512 bytes de SRAM interna. -Modo Activo: 1MHz, 2,7V : 500µA
-Cerrojo de programación para autoprogramar la -Modo de Potencia Reducida: 2µA con 2,7V.
Memoria Flash y Seguridad de Datos de EEPROM.
La figura 4 muestra la disposición de terminales de
* Características Periféricas: este microcontrolador.
-Contador/Temporizador de 8 bits con Prescaler
y dos canales PWM.
-Contador/Temporizador de Alta Velocidad de 8 Diagrama en Bloques
bits con Prescaler separado:
·Dos Salidas PWM de Alta Frecuencia En la figura 4 se puede observar el diagrama en blo-
con Registros de Comparación de Salida separados. ques de la serie ATtiny 25/45/85 de ATmel.
·Generador Programable de Tiempo El núcleo del AVR combina un conjunto rico de ins-
Muerto. trucciones con 32 registros de trabajo de propósito gene-
-Interfaz Serie Universal con Detector de Condi- ral. Los 32 registros están directamente conectados a la
ción de Comienzo. Unidad Aritmético-Lógica (ALU), permitiendo que 2 regis-
-ADC de 10 bits: tros independientes se accedan en una sola instrucción
·Cuatro Canales de Una Sola Salida. ejecutada en un ciclo de reloj. La arquitectura resultante
·Dos Pares de Canales ADC Diferen- es más eficiente en lo que respecta a código, en tanto
ciales con Ganancia Programable (1x, 20x). que logra un rendimiento hasta 10 veces superior que los
-Temporizador Programable de Vigilancia con microcontroladores convencionales CISC.
Oscilador separado dentro del integrado. De las características enunciadas anteriormente, so-
-Comparador Analógico dentro del integrado. bre el ATtiny 25/45/85 podemos destacar las siguientes:
2/4/8kB de Memoria Flash Programable en el Sistema,
* Características Especiales del Microcontrolador: 128/256/512 bytes de EEPROM, 128/256/256 bytes de
-Sistema de Depuración debugWIRE dentro del SRAM, 6 líneas de entrada/salida de propósito general,
integrado. 32 registros de trabajo de propósito general, un Tempori-
-Programable dentro del Sistema a través del zador/Contador de 8 bits con modos de comparación, un
Puerto SPI. Temporizador/Contador de alta velocidad de 8 bits, una

8 Saber Electrónica
Microcontroladores AVR de Atmel

Figura 4

Interfaz Serie Universal, Interrupciones Internas y Exter- El modo de Descanso detiene la CPU en tanto que
nas, un ADC de 4 canales de 10 bits, un Temporizador permite que la SRAM, el Temporizador/Contador, el ADC,
Programable de Vigilancia con Oscilador Interno y 3 mo- el Comparador Analógico, y el sistema de Interrupción si-
dos de ahorro de potencia seleccionables por software. gan trabajando. El modo de Reducción de Potencia guar-

Saber Electrónica 9
Artículo de Portada
da el contenido de los regis- Figura 5
tros, inhabilitando todas las
funciones del integrado has-
ta la siguiente Interrupción o
Reinicialización. El modo de
Reducción de Ruido del
ADC detiene la CPU y todos
los módulos de E/S excepto
el ADC, a fin de minimizar el
ruido de conmutación du-
rante las conversiones del
ADC.
El dispositivo se fabrica
usando la tecnología de me-
moria no-volátil y alta densi-
dad de ATMEL.
El sistema de interfaz
serial que maneja el integra-
do permite que la Memoria
de Programa se reprograme
en el sistema a través de
una interfaz serie (SPI) me-
diante un programador con-
vencional de memorias no-
volátiles o mediante un códi-
go de carga incorporado en
el integrado que se ejecuta
en el núcleo del AVR.
El AVR tiene un soporte
basado en herramientas de desarrollo del sistema y de te se ponen en 0 entregarán corriente si se activan los re-
programación que incluyen: Compiladores C, Macroen- sistores pull-up.Las patas del Puerto B son del tipo tri-sta-
sambladores, Depurador/Simuladores de Programa, te cuando se activa una condición de reinicialización,
Emuladores en el Circuito y Conjuntos de Componentes aunque el reloj no esté funcionando.
de Evaluación.
RESET: Entrada de Reinicialización. Un 0 en esta pa-
Este microcontrolador ha sido desarrollado y fabrica- ta, durante más de un pulso mínimo, generará una reini-
do de acuerdo con los requerimientos más exigentes de cialización aunque el reloj no esté funcionando.
la norma internacional ISO-TS-16949 que define los gra-
dos de calidad para uso automotriz.
La CPU del AVR

Descripción de los Pines: Trataremos la arquitectura del núcleo del AVR en ge-
neral. La función principal del núcleo de la CPU es ase-
Vcc: Tensión de alimentación. gurar una correcta ejecución del programa. La CPU, por
lo tanto, debe acceder a memorias, realizar cálculos, con-
GND: Masa, tierra. trolar periféricos, y manejar interrupciones.
En la figura 5 se puede observar la arquitectura de la
Puerto B (PB5… PB0): El Puerto B es un puerto de CPU. A fin de maximizar el desempeño y el paralelismo,
E/S bidireccional de 6 bits con resistores pull-up internos el AVR usa una arquitectura Harvard, con memorias y bu-
(seleccionables para cada bit). Los buffers de salida del ses separados para el programa y los datos. Las instruc-
puerto B tienen características simétricas de excitación ciones que están en la memoria de Programa se ejecu-
con alta capacidad, tanto de fuente como de sumidero. tan con un solo nivel de transmisión por conductos. Mien-
Como entradas, las patas del Puerto B que externamen- tras que se ejecuta una instrucción, se extrae la siguien-

10 Saber Electrónica
Microcontroladores AVR de Atmel
te instrucción de la memoria de Programa. Este concep- Un módulo de interrupción flexible tiene sus registros
to permite que las instrucciones se ejecuten en cada ciclo de control en el espacio de E/S con un bit adicional de
de reloj. La memoria de programa es la memoria flash re- Habilitación de Interrupción Global en el Registro de Es-
programable en el Sistema. tado. Todas las interrupciones tienen un Vector de Inte-
El Archivo de Registros de acceso rápido contiene 32 rrupción separado en la tabla de Vectores de Interrupción.
registros de trabajo de propósito general de 8 bits con un Las interrupciones tienen una prioridad de acuerdo con
tiempo de acceso de un solo ciclo de reloj. Esto permite su posición en la tabla. Cuanto más baja es la dirección
la operación de la Unidad Aritmético Lógica (ALU) en un del Vector de Interrupciones, más alta es la prioridad.
sólo ciclo. En una típica operación de la ALU, se toman 2 El espacio de memoria de E/S contiene 64 direccio-
operandos del Archivo de Registros, se ejecuta la opera- nes para funciones periféricas de la CPU como Registros
ción, y el resultado se almacena nuevamente en el Archi- de Control, SPI, y otras funciones de E/S. La memoria de
vo de Registros en un ciclo de reloj. E/S se puede acceder directamente, o como las posicio-
Seis de los 32 registros se pueden usar como 3 regis- nes del Espacio de Datos que están a continuación de las
tros apuntadores de direccionamiento indirecto de 16 bits del Archivo de Registros, 0x20-0x5F.
para el direccionamiento en el Espacio de Datos, permi-
tiendo eficientes cálculos de direcciones. Uno de estos
apuntadores de direcciones también se puede usar como La Unidad Aritmético-Lógica (ALU)
apuntador de direcciones para tablas de consulta en la
memoria Flash de Programa. Estos registros funcionales La ALU del AVR de alto desempeño trabaja en cone-
agregados son los registros X, Y y Z de 16 bits. xión directa con todos los 32 registros de trabajo de pro-
La ALU soporta operaciones aritméticas y lógicas en- pósito general. Dentro de un solo ciclo de reloj se ejecu-
tre registros o entre una constante y un registro. Las ope- tan las operaciones aritméticas entre registros de propó-
raciones de un solo registro también se pueden ejecutar sito general o entre un registro y uno inmediato. Las ope-
en la ALU. Luego de una operación aritmética, el Regis- raciones de la ALU se dividen en 3 categorías principales:
tro de Estado se actualiza para reflejar la información so- aritméticas, lógicas, y funciones con bits. Algunas imple-
bre el resultado de la operación. mentaciones de la arquitectura también proveen un pode-
El Programa tiene instrucciones de salto condicional e roso multiplicador que soporta la multiplicación con signo,
incondicional e instrucciones de llamada, capaces de di- sin signo y el formato fraccional.
reccionar en forma directa todo el espacio de direcciones.
La mayoría de las instrucciones del AVR tienen un solo
formato de palabra de 16 bits. Cada dirección de memo- El Registro de Estado
ria de Programa contiene una instrucción de 16 o de 32
bits. El Registro de Estado contiene información sobre el
Durante las interrupciones y las llamadas a subrutina, resultado de la instrucción más recientemente ejecutada.
el Contador de Programa de dirección de retorno (PC) se Esta información se puede usar para alterar el flujo del
almacena en la Pila. La Pila se ubica en la SRAM de da- programa a fin de ejecutar operaciones condicionales.
tos generales, y en consecuencia el tamaño de la Pila só- Notemos que el Registro de Estado se actualiza después
lo está limitado por el tamaño total de la SRAM y su uso. de todas las operaciones de la ALU. Esto, en muchos ca-
Todos los programas del usuario deben inicializar el SP sos, evita la necesidad de usar instrucciones de compa-
en la rutina de reinicialización (antes que se ejecuten las ración especiales, resultando un código más compacto y
subrutinas o las interrupciones). El Puntero de Pila (SP) más rápido.
se puede leer /escribir en el espacio de E/S. La SRAM de El Registro de Estado no se almacena automática-
datos se puede acceder fácilmente mediante 5 modos di- mente cuando se ingresa a una rutina de interrupción y se
ferentes de direccionamiento soportados en la arquitectu- vuelve a almacenar cuando se regresa de una interrup-
ra del AVR. ción. Esto se maneja mediante el software.
Los espacios de memoria en la arquitectura del AVR El Registro de Estado del AVR (SREG) posee una es-
son todos lineales y regulares. tructura como la mostrada en la figura 6.

Figura 6

Saber Electrónica 11
Artículo de Portada
Bit 7-I: Habilitación Global de Interrupción. Bit 3 - V: Bandera de Rebalse con complemento a 2.
Este bit debe ponerse en 1 para que se habiliten las Este bit soporta una aritmética de complemento a 2.
interrupciones. El control individual de habilitación de in-
terrupción se ejecuta luego en registros de control sepa- Bit 2 - N: Bandera Negativa.
rados. Si se pone en 0, no se habilita ninguna interrup- Este bit indica un resultado negativo en una operación
ción, independientemente de cómo estén las posiciones aritmética o lógica.
individuales de habilitación de interrupción. El bit I se po-
ne en 0 mediante hardware después que haya ocurrido Bit 1 - Z: Bandera Nula.
una interrupción, y se pone en 1 mediante la instrucción Este bit indica un resultado nulo en una operación arit-
RETI para permitir interrupciones subsiguientes. El bit I mética o lógica.
también se puede poner en 1 y en 0 mediante las instruc-
ciones SEI y CLI. Bit 0 - C: Bandera de Acarreo.
Este bit indica un acarreo en una operación aritmética
Bit 6 -T: Almacenamiento de Copia de Bit. o lógica.
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 Registros de Propósito General
puede copiar en T mediante la instrucción BST, y un bit en
T se puede copiar en un bit de un registro del Archivo de El Archivo de Registros se optimiza para el conjunto
Registros mediante la instrucción BLD. de instrucciones RISC mejorado del AVR. A fin de lograr
el desempeño y la flexibilidad requeridas, el Archivo de
Bit 5 - H: Bandera de Semi-acarreo. Registros soporta los siguientes esquemas de E/S:
Este bit H indica un semi-acarreo en algunas opera-
ciones aritméticas. El semi-acarreo es útil en la aritmética • Un operando de salida de 8 bits y una entrada de re-
BCD. sultados de 8 bits.
• Dos operandos de salida de 8 bits y una entrada de
Bit 4 - S: Bit de Signo. resultados de 8 bits.
El bit S siempre es una O exclusiva entre la Bandera Ne- • Dos operandos de salida de 8 bits y una entrada de
gativa N y la Bandera de Rebalse V con complemento a 2 . 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 propósito
general de la CPU.
La mayoría de las instrucciones que
operan en el Archivo de Registros tie-
nen acceso directo a todos los regis-
tros, y la mayoría de ellas son instruc-
ciones de un solo ciclo.
Como se ve en la figura 7, a cada re-
gistro se le asigna una dirección de
memoria de Datos, las cuales se ma-
pean directamente en las primeras 32
posiciones del Espacio de Datos del
usuario. Aunque no se implementan fí-
sicamente como posiciones de memo-
ria de SRAM, esta organización de
memoria proporciona una gran flexibi-
lidad en el acceso de los registros, ya
que los registros apuntadores X, Y y Z
pueden apuntar a cualquier registro
del archivo.

12 Saber Electrónica
Microcontroladores AVR de Atmel
Figura 8

Los Registros X, Y y Z pueden ser de utilidad. Si bien se propone el cargador pa-


ra el Atmel AT90S2313, descargando la aplicación “Igor-
Los registros R26..R31 tienen algunas funciones adi- PlugUSBprogrammer” es posible programar otros micros
cionales a su uso de propósito general. Estos son punte- de 20 patas. Para bajar la aplicación que permite realizar
ros de direcciones de 16 bits para el direccionamiento in- la carga del programa, el lector debe registrarse en la pá-
directo del espacio de datos. Los 3 registros X, Y y Z de gina del autor. En la figura 9 se puede apreciar el circuito
direccionamiento indirecto se definen como se describe eléctrico de este
en la figura 8. En los distintos modos de direccionamien- programador y en
to estos registros de direcciones tienen funciones tales la figura 10 una
como desplazamiento fijo, incremento automático y de- imagen de la pan-
cremento automático. talla que muestra
la carga del pro-
grama. Les reco-
Primeras Conclusiones miendo configurar
en la Bios de su
En esta nota hemos dado una introducción sobre los ordenador que el
microcontroladores Atmel. puerto paralelo
En sucesivas ediciones continuaremos explicando el esté en modo Figura 10
funcionamiento de los diferentes
bloques componentes del micro,
describiendo también algunos pro-
yectos de mucha utilidad, tal como
lo es la Interfase Gráfica de Video
publicada en la edición anterior.

Un Sencillo Programador
por Puerto Paralelo

Navegando por Internet, en


busca de información que me per-
mita “tomar experiencia” sobre es-
tos temas con el objeto de com-
partirla con Uds, encontré un sen-
cillo programador por puerto para-
lelo en la página: www.cesko-
.host.sk. Dicha página (que está
en inglés), posee muy buena infor-
mación y varios circuitos que le Figura 9

Saber Electrónica 13
Artículo de Portada
ECP para que no haya ningún inconveniente al progra- seño y construcción de prototipos. Esta placa entrenado-
mar. Por último, en la figura 11 se puede observar el en- ra es la que usamos para “programar” el Atmel Mega
torno de desarrollo de microcontroladores Atmel de 40 8515 que sirvió de prototipo para el armado de la Interfa-
terminales que estamos empleando para el armado de se Gráfica de Video de la edición anterior de Saber Elec-
nuestras prácticas y que emplearemos también para el di- trónica. ✪

Figura 11

14 Saber Electrónica

Вам также может понравиться