Diferencia entre revisiones de «AVR»
m Robot: corrección de errores menores... ayúdanos!!!. |
m Robot: corrijo errores menores |
||
Línea 9: | Línea 9: | ||
El AVR fue diseñado desde un comienzo para la ejecución eficiente de código C compilado. Por lo tanto, algunas instrucciones tales como '<code>suma inmediata</code>' ('<code>add immediate</code>' en inglés) faltan, ya que la instrucción '<code>resta inmediata</code>' ('<code>substract immediate</code>' en inglés) con el complemento dos puede ser usada como alternativa. |
El AVR fue diseñado desde un comienzo para la ejecución eficiente de código C compilado. Por lo tanto, algunas instrucciones tales como '<code>suma inmediata</code>' ('<code>add immediate</code>' en inglés) faltan, ya que la instrucción '<code>resta inmediata</code>' ('<code>substract immediate</code>' en inglés) con el complemento dos puede ser usada como alternativa. |
||
El set de instrucciones AVR está implementado físicamente y disponible en el mercado en diferentes dispositivos, que comparten el mismo núcleo AVR pero tienen distintos |
El set de instrucciones AVR está implementado físicamente y disponible en el mercado en diferentes dispositivos, que comparten el mismo núcleo AVR pero tienen distintos periféricos y cantidades de RAM y ROM: desde el microcontrolador de la familia ''Tiny AVR'' ATtiny11 con 1KB de memoria flash y sin RAM (sólo los 32 registros), y 8 pines, hasta el microcontrolador de la famila ''Mega AVR''ATmega2560 con 256KB de memoria flash, 8KB de memoria RAM, 4KB de memoria EEPROM, conversor análogo digital de 10 bits y 16 canales, temporizadores, comparador analógico, JTAG, etc. La compatibilidad entre los distintos modelos es preservada en un grado razonable. |
||
Los microcontroladores AVR tienen una cañería ('pipeline' en inglés) con dos etapas (cargar y ejecutar), que les permite ejecutar la mayoría en un ciclo de reloj, lo que los hace relativamente rápidos entre los microcontroladores de 8-bit. |
Los microcontroladores AVR tienen una cañería ('pipeline' en inglés) con dos etapas (cargar y ejecutar), que les permite ejecutar la mayoría en un ciclo de reloj, lo que los hace relativamente rápidos entre los microcontroladores de 8-bit. |
Revisión del 14:41 10 dic 2007
Los AVR son una familia de microcontroladores RISC de Atmel. La arquitectura de los AVR fue concebida por dos estudiantes en el Norwegian Institute of Technology, y posteriormente refinada y desarrollada en Atmel Norway, la empresa subsidiaria de Atmel, fundada por los dos arquitectos del chip.
El AVR es una CPU de arquitectura Harvard. Tiene 32 registros de 8 bits. Algunas instrucciones sólo operan en un subconjunto de estos registros. La concatenación de los 32 registros, los registros de entrada/salida y la memoria de datos conforman un espacio de direcciones unificado, al cual se accede a través de operaciones de carga/almacenamiento. A diferencia de los microcontroladores PIC, el stack se ubica en este espacio de memoria unificado, y no está limitado a un tamaño fijo.
El AVR fue diseñado desde un comienzo para la ejecución eficiente de código C compilado. Por lo tanto, algunas instrucciones tales como 'suma inmediata
' ('add immediate
' en inglés) faltan, ya que la instrucción 'resta inmediata
' ('substract immediate
' en inglés) con el complemento dos puede ser usada como alternativa.
El set de instrucciones AVR está implementado físicamente y disponible en el mercado en diferentes dispositivos, que comparten el mismo núcleo AVR pero tienen distintos periféricos y cantidades de RAM y ROM: desde el microcontrolador de la familia Tiny AVR ATtiny11 con 1KB de memoria flash y sin RAM (sólo los 32 registros), y 8 pines, hasta el microcontrolador de la famila Mega AVRATmega2560 con 256KB de memoria flash, 8KB de memoria RAM, 4KB de memoria EEPROM, conversor análogo digital de 10 bits y 16 canales, temporizadores, comparador analógico, JTAG, etc. La compatibilidad entre los distintos modelos es preservada en un grado razonable.
Los microcontroladores AVR tienen una cañería ('pipeline' en inglés) con dos etapas (cargar y ejecutar), que les permite ejecutar la mayoría en un ciclo de reloj, lo que los hace relativamente rápidos entre los microcontroladores de 8-bit.
El set de instrucciones de los AVR es más regular que la de la mayoría de los microcontroladores de 8-bit (por ejemplo, los PIC). Sin embargo, no es completamente ortogonal:
- 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 características que las posiciones 32 al 63.
- La instrucción CLR afecta los 'flag', mientras que la instrucción 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 códigos de operación 0x95C8 y 0x9004 hacen exactamente lo mismo (LPM).
Como los PIC, tiene una comunidad de seguidores (ejemplificadas por el foro de internet AVRFreaks), principalmente debido a la existencia de herramientas de desarrollo gratuitas o de bajo costo. Estos microcontroladores están soportados por tarjetas de desarrollo de costo razonable, capaces de descargar el código al microcontrolador, y por una versión de las herramientas GNU.
Enlaces externos
Sitio oficial de Atmel:
Portales, foros:
- AVRFreaks
- Recursos AVR para el novato – en Electrons.Psychogenic.com
- grupo de discusión AVR – en EmbeddedRelated.com
- Candle Automation – Tutoriales para novatos
- AVR Projects - Base de datos con una colección de proyectos y recursos para el AVR
Desarrollo:
- Ambiente de desarrollo GNU para los AVR – Por Rich Neswold
- AVR projects and information
- Procyon AVRlib - Biblioteca de funciones en C para los AVR
- Programando los AVR con GCC – por Guido Socher
- Sistemas embebidos en FreeBSD - Ambiente de desarrollo para AVR sobre FreeBSD por Ricardo Albarracin B.
- Herramienta de desarrollo WinAVR (en Sourceforge) – Conjunto de herramientas open source para Windows, incluyendo GCC.