Ir al contenido

Diferencia entre revisiones de «AVR»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Botito777 (discusión · contribs.)
m Robot: corrijo errores menores
Sin resumen de edición
Línea 7: Línea 7:
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 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 '<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. Como este lenguaje utiliza profusamente punteros para el manejo de variables en memoria, los tres últimos pares de registros internos del procesador, son usados como punteros de 16 bit al espacio de memoria externa, bajo los nombres X, Y y Z. Esto es un compromiso que se hace en arquitecturas de ocho bit desde los tiempos de Intel 8008, ya que su tamaño de palabra nativo de 8 bit (256 localidades accedidas) es pobre para direccionar. Por otro lado, hacer que todo el banco superior de 16 registros de 8 bit tenga un comportamiento alterno como un banco de 8 registros de 16 bit, complicaría mucho el diseño, violando la premisa original de su simplicidad. Además, 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 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.
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.
Línea 14: Línea 14:


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:
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 punteros X, Y y Z tienen capacidades de direccionamiento diferentes entre sí (ver mas arriba por que)
*Los registros 0 al 15 tienen diferentes capacidades de direccionamiento que los registros 16 al 31.
*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.
*Las registros de I/O 0 al 31 tienen distintas características que las posiciones 32 al 63.
Línea 21: Línea 21:




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.
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. Esto último es posible por su uniformidad en el acceso al espacio de memoria, propiedad de la que carecen los procesadores de memoria segmentada o por bancos, como el PIC o el 8051 y sus derivados.


== Enlaces externos ==
== Enlaces externos ==
Línea 28: Línea 28:
*[http://www.atmel.no Atmel Noruega]
*[http://www.atmel.no Atmel Noruega]
*[http://www.atmel.com/products/avr/ Página de AVR en Atmel]
*[http://www.atmel.com/products/avr/ Página de AVR en Atmel]
*[http://www.atmel.com/dyn/resources/prod_documents/COMPILER.pdf Codiseño del procesador AVR y su compilador C]
Portales, foros:
Portales, foros:
*[http://www.avrfreaks.net AVRFreaks]
*[http://www.avrfreaks.net AVRFreaks]

Revisión del 02:52 17 ene 2008

El microcontrolador AT90S2333 de Atmel
Descripción de pines del cable ISPof, tal y como es usado por algunos fabricantes

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. Como este lenguaje utiliza profusamente punteros para el manejo de variables en memoria, los tres últimos pares de registros internos del procesador, son usados como punteros de 16 bit al espacio de memoria externa, bajo los nombres X, Y y Z. Esto es un compromiso que se hace en arquitecturas de ocho bit desde los tiempos de Intel 8008, ya que su tamaño de palabra nativo de 8 bit (256 localidades accedidas) es pobre para direccionar. Por otro lado, hacer que todo el banco superior de 16 registros de 8 bit tenga un comportamiento alterno como un banco de 8 registros de 16 bit, complicaría mucho el diseño, violando la premisa original de su simplicidad. Además, 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í (ver mas arriba por que)
  • 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. Esto último es posible por su uniformidad en el acceso al espacio de memoria, propiedad de la que carecen los procesadores de memoria segmentada o por bancos, como el PIC o el 8051 y sus derivados.

Enlaces externos

Sitio oficial de Atmel:

Portales, foros:

Desarrollo: