fbpx
Wikipedia

AVR

Los AVR son una familia de microcontroladores RISC del fabricante estadounidense Atmel, compañía adquirida por Microchip Technology en 2016. 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. Cuenta con bastantes aficionados debido a su diseño simple y la facilidad de programación. Se pueden dividir en los siguientes grupos :

  • ATxmega: procesadores muy potentes con 16 a 384 kB de memoria flash programable, encapsulados de 44, 64 y 100 pines (A4, A3, A1), capacidad de DMA, eventos, criptografía y amplio conjunto de periféricos con DACs.
  • ATmega: microcontroladores AVR grandes con 4 a 256 kB de memoria flash programable, encapsulados de 28 a 100 pines, conjunto de instrucciones extendido (multiplicación y direccionamiento de programas mayores) y amplio conjunto de periféricos.
  • ATtiny: pequeños microcontroladores AVR con 0,5 a 8 kB de memoria flash programable, encapsulados de 6 a 20 pines y un limitado conjunto de periféricos.
  • AT90USB: ATmega integrado con controlador USB
  • AT90CAN: ATmega con controlador de bus CAN
  • Tipos especiales: algunos modelos especiales, por ejemplo, para el control de los cargadores de baterías, pantallas LCD y los controles de los motores o la iluminación.
  • AT90S: tipos obsoletos, los AVRs clásicos
El microcontrolador AT90S2333 de Atmel
Microcontroladores ATmega, ATXmega y ATtiny
Programador ISP AVRISP mkII de Atmel
Descripción de pines del cable ISP, tal y como es usado por algunos fabricantes
Muestra los pines del conector ISP

Bajo el nombre AVR32, Atmel tiene una arquitectura RISC de 32 bits con soporte de DSP y SIMD. A pesar de la similitud de sus nombres y logotipos, las dos arquitecturas tienen poco en común.

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 bits al espacio de memoria externa, bajo los nombres X, Y y Z. Esto es un compromiso que se hace en arquitecturas de 8 bits desde los tiempos de Intel 8008, ya que su tamaño de palabra nativo de 8 bits (256 posiciones accesibles) es pobre para direccionar. Por otro lado, hacer que todo el banco superior de 16 registros de 8 bits tenga un comportamiento alterno como un banco de 8 registros de 16 bits, 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 repertorio 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 ATmega2560 de la familia Mega AVR 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 segmentación ('pipeline' en inglés) con dos etapas (cargar y ejecutar), que les permite ejecutar la mayoría de las instrucciones en un ciclo de reloj, lo que los hace relativamente rápidos entre los microcontroladores de 8 bits.

El repertorio de instrucciones de los AVR es más regular que la de la mayoría de los microcontroladores de 8 bits (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 más arriba por qué).
  • 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 coste. 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:

  • Página de AVR en Atmel el 21 de enero de 2012 en Wayback Machine.
  • Codiseño del procesador AVR y su compilador C

Portales, foros:

  • AVRFreaks
  • Recursos AVR para el novato (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). – en Electrons.Psychogenic.com
  • grupo de discusión AVR – en EmbeddedRelated.com

Desarrollo:

  • – Por Rich Neswold
  • Programando los AVR con GCC – por Guido Socher
  • - Ambiente de desarrollo para AVR sobre FreeBSD por Ricardo Albarracín B.
  • Herramienta de desarrollo WinAVR (en Sourceforge) – Conjunto de herramientas open source para Windows, incluyendo GCC.

Grabadores:

  • USBtinyISP. Programador de AVRs por el USB. Es hardware libre.
  •   Datos: Q216651
  •   Multimedia: Atmel AVR / Q216651

familia, microcontroladores, risc, fabricante, estadounidense, atmel, compañía, adquirida, microchip, technology, 2016, arquitectura, concebida, estudiantes, norwegian, institute, technology, posteriormente, refinada, desarrollada, atmel, norway, empresa, subs. Los AVR son una familia de microcontroladores RISC del fabricante estadounidense Atmel compania adquirida por Microchip Technology en 2016 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 Cuenta con bastantes aficionados debido a su diseno simple y la facilidad de programacion Se pueden dividir en los siguientes grupos ATxmega procesadores muy potentes con 16 a 384 kB de memoria flash programable encapsulados de 44 64 y 100 pines A4 A3 A1 capacidad de DMA eventos criptografia y amplio conjunto de perifericos con DACs ATmega microcontroladores AVR grandes con 4 a 256 kB de memoria flash programable encapsulados de 28 a 100 pines conjunto de instrucciones extendido multiplicacion y direccionamiento de programas mayores y amplio conjunto de perifericos ATtiny pequenos microcontroladores AVR con 0 5 a 8 kB de memoria flash programable encapsulados de 6 a 20 pines y un limitado conjunto de perifericos AT90USB ATmega integrado con controlador USB AT90CAN ATmega con controlador de bus CAN Tipos especiales algunos modelos especiales por ejemplo para el control de los cargadores de baterias pantallas LCD y los controles de los motores o la iluminacion AT90S tipos obsoletos los AVRs clasicosEl microcontrolador AT90S2333 de Atmel Microcontroladores ATmega ATXmega y ATtiny Programador ISP AVRISP mkII de Atmel Descripcion de pines del cable ISP tal y como es usado por algunos fabricantes Muestra los pines del conector ISP Bajo el nombre AVR32 Atmel tiene una arquitectura RISC de 32 bits con soporte de DSP y SIMD A pesar de la similitud de sus nombres y logotipos las dos arquitecturas tienen poco en comun El AVR es una CPU de arquitectura Harvard Tiene 32 registros de 8 bits Algunas instrucciones solo operan en un subconjunto de estos registros La concatenacion 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 traves de operaciones de carga almacenamiento A diferencia de los microcontroladores PIC el stack se ubica en este espacio de memoria unificado y no esta limitado a un tamano fijo El AVR fue disenado desde un comienzo para la ejecucion eficiente de codigo C compilado Como este lenguaje utiliza profusamente punteros para el manejo de variables en memoria los tres ultimos pares de registros internos del procesador son usados como punteros de 16 bits al espacio de memoria externa bajo los nombres X Y y Z Esto es un compromiso que se hace en arquitecturas de 8 bits desde los tiempos de Intel 8008 ya que su tamano de palabra nativo de 8 bits 256 posiciones accesibles es pobre para direccionar Por otro lado hacer que todo el banco superior de 16 registros de 8 bits tenga un comportamiento alterno como un banco de 8 registros de 16 bits complicaria mucho el diseno violando la premisa original de su simplicidad Ademas algunas instrucciones tales como suma inmediata add immediate en ingles faltan ya que la instruccion resta inmediata substract immediate en ingles con el complemento dos puede ser usada como alternativa El repertorio de instrucciones AVR esta implementado fisicamente y disponible en el mercado en diferentes dispositivos que comparten el mismo nucleo AVR pero tienen distintos perifericos y cantidades de RAM y ROM desde el microcontrolador de la familia Tiny AVR ATtiny11 con 1KB de memoria flash y sin RAM solo los 32 registros y 8 pines hasta el microcontrolador ATmega2560 de la familia Mega AVR con 256KB de memoria flash 8KB de memoria RAM 4KB de memoria EEPROM conversor analogo digital de 10 bits y 16 canales temporizadores comparador analogico JTAG etc La compatibilidad entre los distintos modelos es preservada en un grado razonable Los microcontroladores AVR tienen una segmentacion pipeline en ingles con dos etapas cargar y ejecutar que les permite ejecutar la mayoria de las instrucciones en un ciclo de reloj lo que los hace relativamente rapidos entre los microcontroladores de 8 bits El repertorio de instrucciones de los AVR es mas regular que la de la mayoria de los microcontroladores de 8 bits por ejemplo los PIC Sin embargo no es completamente ortogonal Los registros punteros X Y y Z tienen capacidades de direccionamiento diferentes entre si 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 caracteristicas que las posiciones 32 al 63 La instruccion CLR afecta los flag mientras que la instruccion 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 codigos de operacion 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 coste Estos microcontroladores estan soportados por tarjetas de desarrollo de costo razonable capaces de descargar el codigo al microcontrolador y por una version de las herramientas GNU Esto ultimo 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 EditarSitio oficial de Atmel Atmel Noruega Pagina de AVR en Atmel Archivado el 21 de enero de 2012 en Wayback Machine Codiseno del procesador AVR y su compilador CPortales foros AVRFreaks Recursos AVR para el novato enlace roto disponible en Internet Archive vease el historial la primera version y la ultima en Electrons Psychogenic com grupo de discusion AVR en EmbeddedRelated comDesarrollo 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 Grabadores USBtinyISP Programador de AVRs por el USB Es hardware libre Datos Q216651 Multimedia Atmel AVR Q216651 Obtenido de https es wikipedia org w index php title AVR amp oldid 146273351, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos