Diferencia entre revisiones de «AVR»
Contenido eliminado Contenido añadido
m r2.7.1) (robot Añadido: zh:Atmel AVR |
Estilo |
||
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 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
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 de las instrucciones 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
* 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).
Línea 39:
* [http://hubbard.engr.scu.edu/avr/avrlib/ Procyon AVRlib - Biblioteca de funciones en C para los AVR]
* [http://www.linuxfocus.org/English/November2004/article352.shtml Programando los AVR con GCC] – por Guido Socher
* [http://www.eldemonio.org/documentos/020507184907.html Sistemas embebidos en FreeBSD] - Ambiente de desarrollo para AVR sobre FreeBSD por Ricardo
* [http://winavr.sourceforge.net/ Herramienta de desarrollo WinAVR ] (en [[Sourceforge]]) – Conjunto de herramientas open source para Windows, incluyendo GCC.
Grabadores:
* [http://www.ladyada.net/make/usbtinyisp/ USBtinyISP]. Programador de AVRs por el USB. Es hardware libre.
[[Categoría:Microcontroladores]]
|