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

SEMANA 6 – MICROCONTROLADORES

MICROCONTROLADORES

SEMANA 6
JUEGO DE INSTRUCCIONES Y PROGRAMACIÓN
DELMicrocontroladores
MICROCONTROLADOR PIC
Atmel

Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
IACC-2019
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni
utilizar los contenidos para fines comerciales de ninguna clase.
1
SEMANA 6 – MICROCONTROLADORES

APRENDIZAJE ESPERADO
• Caracterizar microcontroladores Atmel
y sus variantes.

IACC-2019
2
SEMANA 6 – MICROCONTROLADORES

APRENDIZAJE ESPERADO..................................................................................................................... 2
INTRODUCCIÓN ................................................................................................................................... 4
1. MICROCONTROLADORES ATMEL ................................................................................................ 5
1.1. FAMILIA AVR........................................................................................................................ 6
1.2. ARQUITECTURA ................................................................................................................... 7
1.2.1. CPU .................................................................................................................................. 8
1.2.2. MEMORIA DE PROGRAMA .............................................................................................. 9
1.2.3. MEMORIA DE DATOS....................................................................................................... 9
1.2.4. INICIALIZACIÓN.............................................................................................................. 10
1.2.5. PILA DE PROGRAMA ...................................................................................................... 11
1.2.6. REGISTROS DE ESTADO ................................................................................................. 11
1.2.7. RELOJ ............................................................................................................................. 12
1.3. HERRAMIENTAS DE ATMEL AVR........................................................................................ 13
1.3.1. SOFTWARE AVR-STUDIO ............................................................................................... 13
1.3.2. TÁCTIL CAPACITIVA ....................................................................................................... 15
1.3.3. INTELIGENCIA PERIFÉRICA ............................................................................................. 16
COMENTARIO FINAL.......................................................................................................................... 17

IACC-2019
3
SEMANA 6 – MICROCONTROLADORES

INTRODUCCIÓN
La arquitectura y el concepto de los núcleo AVR, bajo costo y profusa
microcontroladores AVR de Atmel fue creado disponibilidad en el mercado.
por dos estudiantes para desarrollar una
familia capaz de competir con los Al igual que los PIC, los AVR cuentan con una
microcontroladores PIC, líderes del mercado comunidad de seguidores, gracias a la
para entonces, consiguiendo con el tiempo existencia de herramientas de desarrollo de
bajo costo o gratuitas y la existencia de una
una familia de 8 bits y otra de 32 bits. En 2016
esta empresa fue absorbida por los versión de software libre de las herramientas.
fabricantes de los PIC, Microchip Esta semana se abordará la familia de
Technologies. microcontroladores AVR, del fabricante
En la actualidad, los AVR, junto con los PIC, Atmel, conociendo su arquitectura y algunas
son los microcontroladores más utilizados a de las herramientas de desarrollo disponibles
nivel mundial, gracias a la facilidad de uso del en el mercado.

“El ATmega328P tiene una arquitectura de tipo AVR, arquitectura desarrollada por Atmel y en
cierta medida ´competencia´ de otras arquitecturas como por ejemplo la PIC del fabricante”
Microchip (Torrente, 1996, p. 3).

IACC-2019
4
SEMANA 6 – MICROCONTROLADORES

1. MICROCONTROLADORES ATMEL

Los microcontroladores AVR1 fueron desarrollados por la empresa Atmel Corp. Esta empresa
incluye, dentro de su línea de productos, un conjunto de microcontroladores, muchos de ellos
derivados del 8051, que incluyen dispositivos de arquitectura ARM2 y otras arquitecturas propias.
Son utilizados cada vez más en aplicaciones de vanguardia, tales como, telefonía inteligente,
dispositivos médicos avanzados, periféricos de videojuegos, accesorios de audio, entre otras. Sus
características más destacadas son:
 Arquitectura Harvard, con memoria EEPROM para datos, flash para código y SRAM.
 Arquitectura de 8 bits, tipo RISC.
 Arquitectura tipo Registro-Registro para la operación con los datos.
 Arquitectura cerrada.

Familias sugeridas en función del tamaño y características buscadas


Fuente: http://www.utm.mx/~fsantiag/Micros/0_Presentacion_Elect.pdf

Lo anterior permite el desarrollo de prototipos de menor costo, más pequeños y más fiables. En la
figura se presenta un gráfico de tamaño versus características, donde se visualiza el modelo de
microcontrolador a utilizar en función de los requerimientos.

1 Siglas de Alf-Egil Bogen, Vegard Wollan, RISC Processor.


2 Acrónimo de Advanced RISC Machine (máquina RISC avanzada).

IACC-2019
5
SEMANA 6 – MICROCONTROLADORES

1.1. FAMILIA AVR


La familia de microcontroladores AVR cuenta con más de 70 dispositivos de núcleo similar, pero con
interesantes diferencias en cuanto a los recursos y dispositivos internos que manejan. Se pueden
dividir en los siguientes grupos:

Microcontrolador Atmel
Fuente: https://bit.ly/2vKASnh

Los AVR3 son una de las familias más populares del fabricante Atmel4, concebida por dos estudiantes
del Norwegian Institute of Technology y desarrollado desde 1996. Constituyó un microcontrolador
de 8 bits, en una única pastilla, con arquitectura Harvard y memoria flash5 para almacenamiento de
programa. Se hizo muy popular por su incorporación en la línea Arduino6 y placas de desarrollo de
hardware libre.

Además de los listados en la tabla a continuación, se cuenta con algunas variantes, con las siguientes
características:

 AT90USB: incluye controlador USB.


 AT90CAN: incluye controlador de bus CAN.
 Tipos especiales: engloba modelos especiales, entre los que se cuentan dispositivos para el
control de los cargadores de baterías, control de motores, control de iluminación y control de
pantallas sensitivas.

3 Aunque Atmel explica que el término AVR no es un acrónimo, tampoco explica las razones de este nombre, por lo que
comúnmente se acepta que AVR significa Alf Vegard´s RISC (RISC de Alf y Vegard, estos últimos son los creadores de esta
familia de microcontroladores).
4 Adquirida por Microchip Technology en 2016.
5 Derivada de las EEPROM, que permite la lectura y escritura de múltiples posiciones de memoria en la misma operación.
6 Placa de desarrollo de hardware, con software y hardware libre, y que utiliza esta marca de microprocesadores.

IACC-2019
6
SEMANA 6 – MICROCONTROLADORES

MODELO CARACTERÍSTICAS ENCAPSULADO


AT90S Modelos clásicos, ya obsoletos. -
ATtiny Microcontrolador AVR de reducido
tamaño y memoria flash programable, con De 6 a 20 pines
capacidad desde 0.5K hasta 8KB.
ATmega Microcontrolador AVR de gran tamaño y
memoria flash programable, con De 28 a 100 pines
capacidad desde 0.5K hasta 8KB.
ATxmega Microcontrolador muy poderoso y
De 44, 64 y 100
memoria flash programable, con
pines
capacidad desde 0.5K hasta 8KB.

Características de modelos de microcontroladores ATMEL


Fuente: elaboración propia.

1.2. ARQUITECTURA
Uno de los aspectos más interesantes dentro de la arquitectura de esta familia de
microcontroladores, está en el hecho de contar con memoria flash y EEPROM, así como una
memoria RAM estática (SRAM), todo en un mismo chip. Algunos dispositivos cuentan con un bus
paralelo externo, lo cual permite añadir memoria extra de datos o dispositivos periféricos mapeados
a memoria. A excepción de los TinyAVR, todos estos cuentan con interfaces seriales, que pueden
ser utilizados para conectar memorias EEPROM seriales o integrados tipo flash.

Originalmente, el AVR fue diseñado para una eficiente ejecución de


código C compilado, por lo cual la arquitectura interna de los
registros considera tres pares de registros internos, los que son
utilizados como punteros de 16 bits hacia la memoria externa,
nombrándolos como X, Y y Z.

Tal como se mencionó, la arquitectura de los AVR es del tipo es del tipo Registro – Registro, es decir,
el juego de instrucciones está orientado hacia el uso directo de registros. Por otra parte, la
información contenida en la SRAM únicamente puede operarse cuando se encuentra en un registro
y cuenta con diversas instrucciones para almacenamiento o cargas, tanto directas como indirectas.

IACC-2019
7
SEMANA 6 – MICROCONTROLADORES

1.2.1. CPU
La línea AVR puede soportar velocidades de reloj desde 0 MHz a 20 MHz, aunque algunos
dispositivos pueden alcanzar los 32 MHz. Otras variantes presentan osciladores en el mismo chip, lo
que evita la necesidad de circuitos resonadores o relojes externos. En general, todas las
instrucciones se ejecutan en un único ciclo, excepto las instrucciones de bifurcamiento y de carga o
almacenamiento desde o hacia la memoria que se ejecuta en dos ciclos.

Núcleo AVR
Fuente: http://www.utm.mx/~fsantiag/Micros/0_Presentacion_Elect.pdf

Como es de esperarse, la CPU garantiza la correcta ejecución del programa almacenado en memoria.
La CPU accesa las diferentes memorias, realiza cálculos, maneja interrupciones y controla
periféricos. Utiliza una arquitectura Harvard (buses y memoria separados para datos e
instrucciones) a fin de hacer posible la segmentación y llevar al máximo el rendimiento. Soporta
operaciones lógicas y aritméticas entre un registro y una constante o entre registros, aunque
también se dispone de operaciones de un único registro.

IACC-2019
8
SEMANA 6 – MICROCONTROLADORES

1.2.2. MEMORIA DE PROGRAMA


La memoria de programa es utilizada para el programa de instrucciones a ejecutar y se almacena en
una memoria no volátil. En general, todo el programa debe residir en la memoria interna del circuito
integrado, aunque existen ciertas familias para las que esto no aplica.

Está constituida por una memoria tipo flash, cuyo tamaño depende directamente del modelo en
particular considerado. Es capaz de soportar hasta 10,000 ciclos de borrado/escritura/borrado. Es
posible dividirla en una sección para arranque y una para aplicación. Es interesante observar que los
vectores de interrupción forman parte de la memoria de programa, iniciando en la dirección 0.

Memoria de programa
Fuente: http://www.utm.mx/~fsantiag/Micros/0_Presentacion_Elect.pdf

1.2.3. MEMORIA DE DATOS


La memoria de datos corresponde al espacio de memoria estática o SRAM. Su tamaño varía en
función del modelo en particular del que se trate. La figura a continuación muestra la distribución
típica de esta memoria en un microcontrolador AVR. Cuenta con una sección destinada a los
archivos de registro; otra destinada a los registros utilizados en conjunto con los puertos de entrada
y salida regulares y los extendidos, y por último, el espacio de memoria de propósito general.

IACC-2019
9
SEMANA 6 – MICROCONTROLADORES

Memoria de datos
Fuente: http://www.utm.mx/~fsantiag/Micros/0_Presentacion_Elect.pdf

1.2.4. INICIALIZACIÓN
La inicialización del microcontrolador tiene lugar cuando se energiza el dispositivo o cuando ha
recibido una señal interna o externa para hacerlo, momento en el cual inicia o continúa con la
ejecución del programa almacenado en memoria. Esta inicialización es conocida normalmente como
reset.

Una vez que el dispositivo se recupera de una situación de reset, este espera un tiempo de
establecimiento típicamente de 65 ms, previa a la recuperación del sistema, lo que garantiza que
los registros cuenten con su valor inicial. Existen varias condiciones en las cuales puede ocurrir un
Reset:

 Reset de encendido: también llamado power-on reset. El microcontrolador se inicializa cuando


el voltaje de la fuente de alimentación es inferior al voltaje de umbral de encendido.

IACC-2019
10
SEMANA 6 – MICROCONTROLADORES

 Reset externo: el microcontrolador se inicializa cuando se presenta un nivel bajo en el pin de


reset por un tiempo superior a la longitud mínima del pulso de trabajo del reloj.
 Watchdog reset: el microcontrolador se inicializa cuando el watchdog timer (perro guardián)
termina su período.
 Brown-out reset: el microcontrolador se inicializa cuando se encuentra habilitado el detector de
reducción de voltaje, y el voltaje de alimentación se hace menor que el umbral establecido.

1.2.5. PILA DE PROGRAMA


La pila7 se encuentra implementada en un espacio de propósito general y es utilizada para los
llamados de subrutinas, el almacenamiento temporal de variables y el manejo de interrupciones.
Este registro se denomina SP y es el que apunta al tope de la pila.

Se compone de dos registros llamados SPH y SPL, a fin de direccionar al espacio completo de
memoria. Posterior a un reset, el apuntador de pila cuenta con un valor de 0x0000.

Espacio de memoria para la pila


Fuente: http://www.utm.mx/~fsantiag/Micros/0_Presentacion_Elect.pdf

1.2.6. REGISTROS DE ESTADO


Los microcontroladores AVR cuentan con 32 registros de 8 bits, por lo que se clasifican como
dispositivos de 8 bits de arquitectura RISC. Sin embargo, los TinyAVR cuenta únicamente con 16
registros.

El microcontrolador cuenta con 32 registros de 8 bits de propósito general, seis de estos pueden ser
utilizados como apuntadores de 16 bit, los cuales van desde el registro R26 al registro R31, desde la
dirección de memoria 0x1A hasta 0x1F.

7 Se define la
pila como la lista ordenada que permite el almacenamiento y recuperación de datos en una estructura donde
el último dato en entrar es el primero en salir.

IACC-2019
11
SEMANA 6 – MICROCONTROLADORES

7 0 Dir.
R0 0x00
R1 0x01
R2 0x02

R13 0x0D
R14 0x0E
R15 0x0F
R16 0x10
R17 0x11

R26 (XL) 0x1A
X{
R27 (XH) 0x1B
R28 (YL) 0x1C
Y{
R29 (YH) 0x1D
R30 (ZL) 0x1E
Z{
R31 (ZH) 0x1F

Registros de propósito general


Fuente: elaboración propia.

1.2.7. RELOJ
La línea de microcontroladores AVR trabaja con una velocidad de reloj de 0 a 20 MHz, con varios
dispositivos de 32 MHz. Algunos modelos también tienen un preescalador de ajuste de reloj que
puede dividir el sistema de reloj hasta por 1024, y se puede reconfigurar por software durante la
ejecución. Las opciones para la señal de reloj son las siguientes:

 Cristal de rango completo.


 Cristal de baja potencia.
 Oscilador RC interno de 128 KHz.
 Cristal de baja frecuencia.
 Reloj externo.
 Oscilador RC calibrado interno.

IACC-2019
12
SEMANA 6 – MICROCONTROLADORES

El dispositivo cuenta con múltiples fuentes para generar la señal de reloj y simultáneamente la señal
de reloj es distribuida en diferentes módulos. La unidad de control del reloj es la encargada de la
generación de múltiples señales que son distribuidas a los múltiples módulos, estas son:

 clkCPU: dirigido al núcleo AVR, incluyendo al registro de estado, archivo de registros, apuntador
de pila y memoria de datos, entre otras.
 clkFLASH: dirigida a las memorias EEPROM y flash.
 clkADC: reloj dedicado al convertidor analógico-digital.
 clkI/O: utilizado por los módulos de interfaces SPI y USART, temporizadores y el módulo de
interrupciones externas.
 clkASY: utilizada para sincronizar al temporizador 2, el cual permite utilizar al temporizador
como un contador de tiempo real.

1.3. HERRAMIENTAS DE ATMEL AVR


Al igual que ocurre son otros tipos de microcontroladores, el AVR cuenta con una gran disponibilidad
de herramientas, tanto a nivel de software como de hardware, las cuales pueden clasificarse de la
manera siguiente:

 Software de desarrollo genérico.


 De desarrollo IC analógicas y digitales.
 De desarrollo de comunicaciones.
 De desarrollo de pantalla táctil.

A continuación, se tratarán las dos más utilizadas y populares dentro del ecosistema de trabajo de
este microcontrolador.

1.3.1. SOFTWARE AVR-STUDIO


A fin de poder desarrollar aplicaciones a nivel de software, la empresa ATMER Corp. ha puesto a
disposición un entorno de desarrollo AVR-STUDIO, el cual posibilita la carga, ensamblaje y
depuración de programas.

Constituye el software de desarrollo oficial de Atmel, contando con múltiples herramientas útiles
para poder escribir, hacer la compilación, la depuración, y finalmente, programar los diferentes
modelos de microcontroladores AVR, utilizando para ello una misma interface gráfica. Este software
incluye un simulador a través del cual se puede observar el estado de registros y puertos mientras
tiene lugar la ejecución de un programa.

IACC-2019
13
SEMANA 6 – MICROCONTROLADORES

Visión global del modo de depuración de AVR-STUDIO


Fuente: https://bit.ly/2V9wsRg

En el siguiente link se dispone una guía para la descarga para este tipo de
microcontrolador:

http://www.coffeebrain.org/wiki/index.php?title=Instalaci%C3%B3n_y_
Configuraci%C3%B3n_Atmel_Studio

IACC-2019
14
SEMANA 6 – MICROCONTROLADORES

1.3.2. TÁCTIL CAPACITIVA


ATMEL cuenta con controladores de pantalla táctil denominados MaXTouch, los cuales combinan
una tecnología de transferencia de carga con controladores de 8, 16 o 32 bits, ofreciendo hasta 16
posibles toques simultáneos, excelente tiempo de respuesta y el procesamiento de una imagen
táctil capacitiva.

Esta familia es capaz de soportar el funcionamiento en entornos exigentes y cambiantes. En general,


cuenta con las siguientes características:

Uso del microcontrolador de membrana táctil capacitiva


Fuente: https://bit.ly/2Jmsh25

 Control deslizante y táctil.


 16 canales táctiles independientes.
 Control LED integrado.
 Capacidad de programación de host.
 Compensación y recalibración dinámica de deriva.
 Adquisición de espectro extendido.
 Baja potencia de operación.

Es interesante observar que esta tecnología permite detectar y eliminar falsos toques, uso con
dedos mojados, guantes o lápices tipo stylus. Dentro de esta familia se cuenta con muchas
categorías no descritas aquí como, por ejemplo, la capacidad de ofrecer respuesta sin necesidad de
hacer un toque sobre la pantalla, a distancias de entre 20 y 30mm.

IACC-2019
15
SEMANA 6 – MICROCONTROLADORES

1.3.3. INTELIGENCIA PERIFÉRICA


AVR cuenta con versiones de este microcontrolador que incorporan el concepto de inteligencia
periférica. Se trata de la serie AT32UC3 de 32 bits, el cual eleva la eficiencia por sobre el más alto
rendimiento y el más bajo consumo energético, haciéndolo compatible con una memoria SRAM de
puerto doble, controlador DMA8 periférico, un bus de datos de capas múltiples, un sistema capaz
de manejar eventos periféricos y los periféricos inteligentes, lo que los hace magníficos para
aplicaciones de elevado rendimiento.

También constituyen una excelente opción para aplicaciones alimentadas a batería y portátiles. Esta
familia integra una unidad de punto flotante, la cual incrementa el rendimiento aritmético en
números decimales, con un rango dinámico más amplio y mayor precisión. Cuenta con las siguientes
características:

 Conectividad: es ideal para aplicaciones con conectividad variada y compleja.


 Funcionamiento aritmético: precisión y rango dinámico incrementada para el procesamiento de
señales digitales.
 Alto rendimiento: desaparecen restricciones en comunicaciones de alta velocidad.
 Bajo consumo de energía: presenta el más bajo consumo de energía de la industria en modos
desconectado y activo.
 Biblioteca de software: cuenta con una biblioteca muy amplia de controladores de dispositivo.

8
Sigla de Direct Access Memory (Acceso Directo a Memoria).

IACC-2019
16
SEMANA 6 – MICROCONTROLADORES

COMENTARIO FINAL
Los microcontroladores AVR cuentan con una arquitectura de alto rendimiento, simplicidad de uso
y uno de los consumos energéticos más bajos de la industria. Todo ello convierte a esta familia en
una excelente opción para desarrolladores de las más variadas aplicaciones, siendo una de las más
interesantes opciones para mercados nacientes como el del internet de las cosas.

ATMEL Corp. ofrece una amplia y gama de microcontroladores, tanto de 8 como de 32 bits. Esta
semana se abordaron tópicos tales como la organización de la memoria, de datos y de programa,
componentes internos complementarios, así como la herramienta de desarrollo de software que
ofrece al fabricante, junto con algunos modelos particulares.

IACC-2019
17
SEMANA 6 – MICROCONTROLADORES

REFERENCIAS

Torrente, O. (2013). ARDUINO Curso práctico de formación. Madrid, España: RC Libros.

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:

IACC (2019). Microcontroladores Atmel. Microcontroladores. Semana 6.

IACC-2019
18
SEMANA 6 – MICROCONTROLADORES

IACC-2019
19

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