AVR8

by Review by

= Introducción = El núcleo AVR8 esta basado en una arquitectura Harvard de 8 bits RISC modificada. Fue desarrollado a mediados de los 90' siendo la primer familia de microcontroladores en usar memoria on-chip tipo flash para el almacenamiento del programa, cabe resaltar que para ese entonces la memoria de los microntroladores se basaba en one-time programmable ROM, EPROM, o EEPROM.

La familia tiny, Mega y XMega de ATMEL utilizan un núcleo AVR8, un eficiente núcleo en cuanto a rendimiento vs consumo de energía gracias a la implementación de técnologias como picoPower patentadas por ATMEL. Otro aspecto importante de los microcontroladores de ATMEL es la dersificación y especialización de los perifericos, ofreciendo posibilitando a los diseñadores desarrollar plataformas para usos específicos a bajo costo, para obtener más información de microcontroladores de ATMEL

=Familias Básicas de microcontroladores de ATMEL con núcleo AVR8=


 * tinyAVR — Serie ATtiny
 * 0.5–8 kB de Memoria de programa
 * Encapsulado de 6–32-pin
 * Set de periféricos reducido


 * megaAVR — Serie ATmega
 * 4–256 kB de Memoria de programa
 * Encapsulado de 28–100-pin
 * Set de instrucciones extendido
 * Set de periféricos amplio


 * XMEGA — Serie ATxmega
 * 16–384 kB de Memoria de programa
 * Encapsulado de 44–64–100-pin
 * Set de periféricos extendido para mejorar el rendimiento a través de elementos como DMA, Manejador de eventos y criptografia, entre otros

= Herramientas de desarrollo SW = Para el desarrollo de aplicaciones para microcontroladores AVR existen diferentes herramientas para compilación, a continuación se desarrollara una pequeña explicación e introducción a las herramientas de diseño Software.

Plataformas Libres
Para la utilización de herramientas de software libre, se cuenta con el común GCC portado para núcleos AVR, en | Ubuntu una de las distribuciones Linux más extendidas los paquetes se encuentran en los repositorios. A continuación se listan los paquetes necesarios para la instalación de las herramientas de desarrollo para AVR con Ubuntu, si necesita ayuda con la instalación de paquetes en la wiki de Ubuntu es un buen lugar de consulta

ddd avrdude avr-libc gdb-avr gdb gcc-avr simulavr

Programa de prueba BlinkLED en puerto B
En el editor de textos de su preferencia, copie la siguiente código y asegúrese de darle nombre main.c

Fuente main.c

El anterior archivo utiliza las librerías básicas para la manipulación del microcontrolador y la gestión de tiempo del mismo, el pocas palabras el programa configura los el puerto B como salida, luego ingresa en un ciclo infinito esperando 100 ms por vez para cambiar de estado todos los pines del puerto B.

Para compilar la aplicación, se realiza llamando herramientas del compilador pero como ejemplo de arranque se entrega un Makefile, el cual contiene todas las reglas para compilar la aplicación, si necesita mas informacion acerca del Makefile puede consultar la pagina de gnu make.

De manera similar al paso anterior, guarde con un editor de texto el archivo Makefile en la misma carpeta donde guardo el main.c

Archivo para el constructor: AVR:MakeFile

Para construir la aplicación se debe ejecutar en el directorio donde ubicó la fuente y el Makefile la siguiente linea

Con esto ya tendrá el archivo de ejemplo compilado y si observa en el directorio, se creó un archivo de extensión hex, con este se programa el microcontrolador.

Plataformas Privativas
ATMEL entrega una herramienta gratuita pero cerrada, con la cual se pueden desarrollar proyectos para los microcontroladores AVR y ARM. Esta herramienta se llama AtmelStudio. Para recibir una pequeña introducción a AtmelStudio 6 puede ver los siguientes vídeos oficiales de ATMEL. Videos

= Herramientas de desarrollo HW =

Dentro de la Universidad de los Andes existen plataformas de desarrollo basadas en microcontroladores AVR las cuales se encuentran disponibles para el trabajo con proyectos de investigación o bajo supervisión de un docente.
 * Wiring
 * Pololu

Interfaz de programación ISP
Los AVR tienen la posibilidad de programarse a través de una interfaz ISP In Circuit Programer el cual no necesita ni de componentes, ni voltajes externos para realizar la programación del microcontrolador, es decir se programan a sí mismos. Existen dos tipos de conectores Estándar, de 6 y 10 pines, para lo conexión de dispositivos AVR.



La interfaz de programación corresponde a las señales del protocolo SPI, tal como se aprecia en la anterior figura.

Programador Uniandes - USBtinyISP
El programador Programador Uniandes - USBtinyISP es una modificiación al proyecto libre UsbtinyISP, para la fabricación del mismo con componentes de fácil consecución en la región, es una plataforma sencilla y de bajo costo que puede ser utilizada libremente dentro de la academia. Para mayor información sobre el programador se puede consultar la pagina del programador VUSBTINY, allí se encontrarán los archivos de fabricación, una explicación un pequeño ejemplo de funcionamiento.

La tarjeta del programador se fabrica dentro del laboratorio de fabricación de circuito impresos y se puede fabricar en cualquier otro lugar dado que es un circuito de una sola capa.

Por interfaz paralelo
Aunque la interfaz paralelo está en desuso en los nuevos equipos de computo, los programadores por puerto paralelo siguen siendo relevantes dada la simplicidad del protocolo y del montaje necesario. El siguiente es un ejemplo para la programación de AVRs, básicamente es un circuito de aislamiento y protección del puerto paralelo del PC.

Link del diseño

Fuente: web de recursos funciona tanto en Linux como en Windows

Referencias
Documentación completa de la aplicación AVRDUDE PDF