Atmel AVR
|
|
El AVR es un Arquitectura Harvard modificada 8-bit RISC solo chip microcontrolador que fue desarrollado por Atmel en 1996. El AVR fue una de las primeras familias de microcontroladores para usar la en-viruta memoria Flash para el almacenamiento del programa, a diferencia de ROM programable una sola vez, EPROM, o EEPROM utilizada por otros microcontroladores en el momento.
megaAVR fichas hizo extremadamente populares después de que fueron diseñados en el 8-bit Arduino plataforma.
Contenido
- 1 Breve historia
- 2 Resumen de dispositivo
- 2.1 Familias básicas
- 2.2 Arquitectura de dispositivo
- 2.2.1 Memoria del programa
- 2.2.2 Memoria interna de datos
- 2.2.3 Registros internos
- 2.2.4 Registros de la entrada-salida de AVR
- 2.2.5 EEPROM
- 2.3 Ejecución del programa
- 2.4 Conjunto de instrucciones
- 2.5 Velocidad MCU
- 2.6 Desarrollo
- 2.7 Características
- 3 Interfaces de programación
- 3.1 ISP
- 3.2 PDI
- 3.3 Serie de alto voltaje
- 3.4 Paralelo de alto voltaje
- 3.5 Gestor de arranque
- 3.6 ROM
- 3.7 aWire
- 4 Depuración de interfaces
- 4.1 debugWIRE
- 4.2 JTAG
- 5 Herramientas de desarrollo y kits de evaluación
- 5.1 Kit de inicio STK600
- 5.2 Kit de inicio STK500
- 5.3 Kit de inicio STK200
- 5.4 AVR ISP y AVR ISP mkII
- 5.5 AVR Dragon
- 5.6 JTAGICE mkI
- 5.7 MkII JTAGICE
- 5.8 JTAGICE3
- 5.9 AVR UNO!
- 5.10 Mariposa demostración junta
- 5.11 AT90USBKey
- 5.12 Raven kit inalámbrico
- 5.13 Programadores de terceros
- 6 Uso de Atmel AVR
- 7 Clones de FPGA
- 8 Véase también
- 9 Referencias
- 10 Lectura adicional
- 11 Enlaces externos
Breve historia
La arquitectura AVR fue concebida por dos estudiantes en la Instituto Noruego de tecnología (N) Alf-Egil Bogen[1] y Vegard Wollan.[2][3]
El MCU AVR original fue desarrollado en un local ASIC casa en Trondheim, Noruega llamado Nordic VLSI al tiempo, Nordic Semiconductor, donde estaban trabajando Bogen y Wollan como estudiantes.[citación necesitada] Era conocido como un μRISC (Micro RISC)[citación necesitada] y estaba disponible como silicio IP/bloque de Nordic VLSI.[citación necesitada] Cuando la tecnología fue vendida a Atmel de Nordic VLSI,[citación necesitada] la arquitectura interna fue desarrollada por Bogen y Wollan en Atmel Noruega, una subsidiaria de Atmel. Los diseñadores trabajaron con escritores del compilador IAR Systems para asegurar que la instrucción set previstas más eficiente compilación de Idiomas de alto nivel.[4] Atmel dice que el nombre AVR no es un acrónimo y no significa nada en particular. Los creadores del RAV no dan ninguna respuesta definitiva en cuanto a lo que el término significa "AVR".[3] Sin embargo, es comúnmente aceptado que significa AVR ALF (Egil Bogen) y Vde inexistentes (Wollan) RProcesador de ISC.[5] Tenga en cuenta que el uso de "AVR" en este artículo se refiere generalmente a la línea de 8-bit RISC de microcontroladores Atmel AVR.
Entre los primeros del RAV línea era el AT90S8515, que en un 40-pin DIP paquete tiene el mismo pinout como un 8051 microcontrolador, incluyendo el autobús dirección y datos multiplexado externo. La polaridad de la RESET línea estaba enfrente (8051 tener un RESET activo de alto, mientras que el AVR tiene una baja activa RESET), pero aparte de eso el pinout era idéntico.
La arquitectura de microcontrolador AVR 8-bit fue introducida en 1997. En 2003, Atmel había enviado 500 millones AVR microcontroladores flash.[6]
Resumen de dispositivo
El AVR es un Arquitectura Harvard modificada máquina de programa y datos se almacenan en los sistemas de memoria física separada que aparecen en espacios de direcciones diferentes, pero con la habilidad de leer los elementos de datos de memoria de programa, usando instrucciones especiales.
Familias básicas
AVRs se clasifican generalmente en siguiente:
- tinyAVR — la ATtiny serie
- 0.5 – 16 kB de memoria de programa
- 6 – 32 pines
- Conjunto limitado de periférico
- megaAVR — la serie de ATmega
- 4 – 512 kB de memoria de programa
- 28 – 100 pines
- Ampliado el conjunto de instrucciones (multiplicar las instrucciones y las instrucciones para el manejo de grandes memorias de programa)
- Amplio conjunto periférico
- XMEGA — la serie ATxmega
- 16 – 384 kB de memoria de programa
- 44 – 64 – 100 pines (A4, A3, A1)
- Extiende características de rendimiento, tales como DMA, "Sistema de eventos" y soporte de criptografía.
- Periférico extenso con ADCs
- Application-specific AVR
- megaAVRs con características especiales que no se encuentran en los otros miembros de la familia AVR, como regulador del LCD, USB controlador avanzado PWM, CAN, etc..
- FPSLIC (AVR con FPGA)
- FPGA Puertas de 5K a 40K
- SRAM para el código del programa AVR, a diferencia de los otros AVRs
- Núcleo AVR puede funcionar en hasta 50 MHz [7]
- AVRs 32 bits
- En el año 2006 Atmel lanzado microcontroladores basados en el 32-bit AVR32 arquitectura. Incluyen SIMD y DSP instrucciones, junto con otras funciones de procesamiento de audio y video. Esta familia de 32 bits de dispositivos está destinada a competir con el BRAZO basado en procesadores. El conjunto de instrucciones es similar a otros núcleos RISC, pero no es compatible con el AVR original o cualquiera de los diversos núcleos ARM.
Arquitectura de dispositivo
Flash, EEPROM, y SRAM son todos integrado en un único chip, eliminando la necesidad de memoria externa en la mayoría de las aplicaciones. Algunos dispositivos tienen una opción paralela autobús externo para permitir agregar dispositivos asignados a la memoria o memoria de datos adicionales. Casi todos los dispositivos (excepto los más pequeños chips TinyAVR) tienen interfaces en serie, que pueden utilizarse para conectar más grandes EEPROMs serie o flash chips.
Memoria del programa
Instrucciones de programa se almacenan en no volátil memoria Flash. Aunque el MCU son 8 bits, cada instrucción toma una o dos palabras de 16 bits.
El tamaño de la memoria del programa se indica generalmente en el nombramiento del mismo dispositivo (por ejemplo, la línea de ATmega64x tiene 64 kB de flash mientras que la línea de ATmega32x tiene 32 kB).
No hay ninguna disposición para la memoria de programa off-chip; todo el código es ejecutado por el núcleo AVR debe residir en el flash de la en-viruta. Sin embargo, esta limitación no se aplica a los chips AT94 FPSLIC AVR/FPGA.
Memoria interna de datos
Los datos espacio de direcciones consiste en la archivo de registroI/O registros, y SRAM.
Registros internos
El AVRs tiene 32 solo-octeto registros y se clasifican como dispositivos de 8 bits RISC.
En la mayoría de las variantes de la arquitectura AVR, los registros de trabajo se asignan en como las primeras direcciones de 32 memoria (000016– 001F16) seguido por los 64 registros de I/O (002016– 005F16).
SRAM real comienza después de estos registro de secciones (Dirección 006016). (Nota que la entrada-salida registro espacio podría ser mayor en algunos dispositivos más extensas, en cuyo caso el memoria asignada I/O los registros ocupan una porción del espacio de direcciones SRAM).
Aunque existen abordando diferentes esquemas y opcodes optimizados para registrar el archivo y I/O registrar acceso, todo aún puede ser dirigida y manipulada como si estaban en SRAM.
En la variante XMEGA, el archivo de registro de trabajo no está asignado en el espacio de dirección de datos; como tal, no es posible tratar alguno de los registros de la XMEGA trabajo como si fueran SRAM. En cambio, los registros de I/O se asignan en el espacio de dirección de datos desde el comienzo mismo del espacio de direcciones. Además, la cantidad de espacio de dirección de datos dedicada a I/O registros ha crecido substancialmente a 4096 bytes (000016– 0FFF16). Al igual que con las generaciones anteriores, sin embargo, las instrucciones de manipulación rápidas de I/O sólo pueden alcanzar las primero 64 localidades de registro de I/O (los 32 primeros lugares para instrucciones de bit a bit). A raíz de los registros de I/O, la serie XMEGA destina una gama de 4096 bytes del espacio de direcciones de datos que puede utilizarse opcionalmente para el mapeo de la EEPROM interno para el espacio de dirección de datos (100016– 1FFF16). El SRAM real está situado después de estos rangos, a partir de las 200016.
Registros de la entrada-salida de AVR
Cada puerto se compone de tres registros: DDRx, PORTx y PINx.
- DDRx: Registro de dirección los datos.
- PORTx: Registro de Puerto de salida. Utilizado solamente para la salida.
- PINx: Registro de entrada. Utilizado solamente para la entrada.
- PIN alternar con PINx: "escribir una lógica uno a PINx n poco cambia el valor de PORTx n bit, independiente del valor de DDRx n". [8] Esto no puede ser cierto para todos los dispositivos del AVR, Compruebe la hoja de datos del dispositivo.
EEPROM
Microcontroladores AVR casi todos tienen interna EEPROM para el almacenamiento de datos semipermanente. Como la memoria flash, EEPROM puede mantener su contenido cuando se quita la energía eléctrica.
En la mayoría de las variantes de la arquitectura AVR, esta memoria EEPROM interna no está asignada al espacio de memoria direccionable de la MCU. Sólo se puede acceder del mismo modo es un dispositivo periférico externo, mediante puntero especial registra y las instrucciones de lectura/escritura EEPROM que accede mucho más lento que otros RAM interna.
Sin embargo, algunos dispositivos en la familia SecureAVR (AT90SC) [9] Utilice una asignación especial de EEPROM a la memoria de datos o programa dependiendo de la configuración. La familia XMEGA también permite la EEPROM a asignarse en el espacio de direcciones de datos.
Puesto que el número de escrituras en EEPROM no es ilimitado, Atmel especifica 100.000 escribe ciclos en sus fichas — una rutina de escritura EEPROM bien diseñada debe comparar el contenido de una dirección EEPROM con el contenido deseado y realizar sólo una escritura real si el contenido es necesario cambiar.
Nota que borrar y escritura pueden realizarse por separado en muchos casos, byte por byte, que también puede ayudar a prolongar la vida cuando pedacitos solamente necesitan ser ajustado a todos 1s (borrar) o selectivamente despejó a 0s (escritura).
Ejecución del programa
AVRs de Atmel tienen un nivel único de dos etapas, tubería diseño. Esto significa que se recupera la siguiente instrucción máquina como el actual que se está ejecutando. Más instrucciones tomar uno o dos ciclos, haciendo AVRs relativamente rápido entre el reloj 8-bit microcontroladores.
Los procesadores de AVR fueron diseñados con una ejecución eficaz de compilado C código en mente y tiene varios punteros incorporados para la tarea.
Conjunto de instrucciones
El Conjunto de instrucciones AVR es más ortogonal que los de mayoría microcontroladores de 8 bits, en particular la 8051 clones y Microcontroladores PIC con el cual compite hoy AVR. Sin embargo, no es totalmente regular:
- Registros de puntero X, Y y Z tienen que abordar las capacidades que son diferentes unas de otras.
- Registro localizaciones R0 a R15 tienen diferentes capacidades de direccionamiento de registro localizaciones R16 a R31.
- Puertos i/o: 0 a 31 tienen diferentes capacidades de direccionamiento de puertos de la entrada-salida 32 a 63.
- CLR afecta a banderas, mientras que SER no, aunque son instrucciones complementarias. CLR poner todos los bits a cero y SERLOS sets a 1. (Nota que el CLR es pseudo op para EOR R, R; y SER es abreviatura de LDI R, operaciones matemáticas FF., $ como EOR modificar banderas mientras que no se mueve/cargas/tiendas/sucursales como LDI).
- Acceso a datos de sólo lectura almacenados en la memoria del programa (flash) requiere instrucciones especiales LPM; el autobús flash lo contrario está reservado para la memoria de instrucción.
Además, algunas diferencias específicas de chip afectan la generación de código. Punteros código (incluyendo direcciones de retorno en la pila) son dos bytes de largo en chips con hasta 128 kBytes de memoria flash, pero tres bytes de largo en los chips más grandes; No todos los chips tienen multiplicadores de hardware; fichas con más de 8 kBytes de flash tienen instrucciones de rama y llamada con alcances más largos; y así sucesivamente.
La instrucción sobre todo regular establecido hace programación utilizando C (o incluso Ada) compiladores bastante sencillos. GCC ha incluido soporte AVR desde hace bastante tiempo, y que apoyo es ampliamente utilizado. De hecho, Atmel solicitó aportaciones de los principales desarrolladores de compiladores para microcontroladores pequeño, para determinar que la instrucción establece las características que eran más útiles en un compilador para lenguajes de alto nivel.
Velocidad MCU
La línea AVR normalmente puede soportar velocidades de reloj de 0 a 20 MHz, con algunos dispositivos alcanzando 32 MHz. operación con alimentación inferior generalmente requiere una velocidad de reloj reducida. Muy reciente (Tiny, Mega y Xmega, pero no 90) AVRs disponen de un oscilador on-chip, eliminando la necesidad de relojes externos o circuitos de resonador. Algunos AVRs también tienen un divisor de frecuencia de reloj de sistema que puede dividir el reloj de sistema de hasta 1024. Este divisor de frecuencia se puede reconfigurar por software durante el tiempo de ejecución, permitiendo que la velocidad de reloj para optimizarse.
Puesto que todas las operaciones (excluyendo los literales) registra R0 - R31 son solo ciclo, el AVR puede alcanzar hasta 1 MIPS por MHz, es decir, un procesador de 8 MHz puede alcanzar hasta 8 MIPS. Las cargas y las tiendas de memoria llevarán dos ciclos, ramificación toma dos ciclos. Ramas en las últimas partes de "byte 3 PC" como ATmega2560 son más lento que un ciclo en dispositivos anteriores.
Desarrollo
AVRs tienen muchos seguidores debido a las herramientas de desarrollo gratis y de bajo costo disponibles, incluyendo juntas de desarrollo con precios razonables y software de desarrollo libre. El AVRs se venden bajo diversos nombres comerciales que comparten el mismo núcleo básico, pero con diferentes combinaciones de periféricos y memoria. Compatibilidad entre los chips en cada familia es bastante buena, aunque I/O controller características pueden variar.
Ver enlaces externos para los sitios relacionados con el desarrollo de AVR.
Características
Corriente[¿Cuándo?] AVRs ofrecen una amplia gama de características:
- Multifunción, bidireccional de puertos de la entrada-salida con configurable, built-in resistencias pull-up
- Múltiples osciladores internos, incluyendo oscilador RC sin partes externas
- Instrucción interna, auto programable memoria Flash hasta 256 kB (384 kB de XMega)
- En-sistema programable utilizando interfaces propietarios serie/paralelo de bajo voltaje o JTAG
- Sección de código de arranque opcional con pedacitos de cerradura independiente para la protección
- Depuración apoyo (OCD) a través de JTAG de la en-viruta o debugWIRE en la mayoría de los dispositivos
- Las señales JTAG (TMS, TDI, TDO y TCK) están multiplexadas en GPIOs. Estos pines pueden configurarse para funcionar como JTAG o GPIO dependiendo del ajuste de un fusible poco, que puede ser programado vía ISP o HVSP. De forma predeterminada, AVRs con JTAG vienen con el interfaz JTAG habilitada.
- debugWIRE utiliza el pin /RESET como canal de comunicación bidireccional para acceder a circuitos de depuración en el chip. Está presente en los dispositivos con recuentos bajos de pin, que sólo requiere un pin.
- Datos internos EEPROM hasta 4 kB
- Interno SRAM hasta 16 kB (32 kB de XMega)
- Externa 64 kB datos endian poco espacio en ciertos modelos, incluyendo el Mega8515 y Mega162.
- El espacio de datos externos es overlaid con el espacio de datos internos, tal que el espacio de direcciones completo 64 kB no aparece en el autobús externo y accesos a e.g. Dirección 010016 tendrá acceso a RAM interna, no el autobús externo.
- En ciertos miembros de la serie de XMega, el espacio de datos externos ha sido mejorado para soportar tanto SRAM y SDRAM. Así, los modos de direccionamiento de datos se han ampliado para permitir hasta 16 MB de memoria de datos abordarse directamente.
- AVRs generalmente no admiten ejecutando código de memoria externa. Algunos ASSPs usando el núcleo AVR compatibles con la memoria de programa externo.
- temporizadores de 8 bits y 16 bits
- PWM salida (algunos dispositivos tienen un periférico PWM mejorado que incluye un generador de tiempo muerto)
- Captura de entrada Registre un sello de tiempo provocado por un borde de señal
- Comparador analógico
- 10 o 12-bit Convertidores, con multiplex de hasta 16 canales
- 12-bit Convertidores D/a
- Una variedad de interfaces seriales, incluyendo
- I²C compatible con interfaz de dos hilos (TWI)
- (Periféricos serie síncrono/asíncronoUART/ USART) (usado con RS-232, RS-485y más)
- Interfaz periférico Serial Bus (SPI)
- Interfaz Serial Universal (USI): un multiusos comunicación módulo hardware que puede utilizarse para implementar un SPI,[10] I2C[11][12] o UART[13] interfaz.
- Apagón detección
- Temporizador de vigilancia (WDT)
- Múltiples modos de ahorro de energía suspensión
- Control de iluminación y motor)PWM-específica) modelos de controlador
- PUEDE soporte de controladores
- USB soporte de controladores
- Adecuada velocidad completa (12 Mbit/s) hardware & controller Hub con AVR encajado.
- (También) libremente disponible baja velocidad (1.5 Mbit/s)HID) bitbanging emulaciones de software
- Ethernet soporte de controladores
- LCD soporte de controladores
- Dispositivos de baja tensión de funcionamiento hasta 1.8 V (a 0.7 V para piezas con convertidor DC-DC incorporado)
- dispositivos picoPower
- DMA Controladores y comunicación periférica "sistema de eventos".
- Soporte de criptografía rápido para AES y DES
Interfaces de programación
Hay muchos medios para cargar el código del programa en un chip de AVR. Los métodos para programa AVR fichas varía de AVR de familia a familia.
ISP
El programación en el sistema Método de programación (ISP) funcionalmente se realiza a través de SPI, además de algunos jugando con la línea de Reset. Mientras los pasadores SPI del RAV no están conectados a algo perjudicial, la viruta del AVR puede quedarse soldada en un PCB mientras que la reprogramación. Todo lo que necesita es un conector de 6 pines y adaptador de programación. Esta es la forma más común de desarrollar con un AVR.
El dispositivo de mkII de Atmel AVR ISP se conecta al puerto USB de una computadora y realiza la programación en el sistema utilizando el software de Atmel.
AVRDUDE (AVR Downloader/UploaDEr) se ejecuta en Linux, FreeBSDVentanas, y Mac OS X, y soporta una amplia variedad de hardware programación en el sistema, incluyendo Atmel AVR ISP mkII, Atmel JTAG ICE, mayores Atmel-puerto serial basado en programadores y varios terceros y programadores "hágalo usted mismo".[14]
PDI
El programa y la interfaz de depuración (PDI) es una interfaz propietaria de Atmel de programación externo y depuración de la en-viruta de dispositivos de XMEGA. El PDI apoya la programación de alta velocidad de todos los espacios de memoria no volátil (NVM); Flash, EEPROM, fusibles, pedacitos de la cerradura y la fila de usuario firma. Esto se hace accediendo al controlador de XMEGA NVM mediante la interfaz de PDI, y ejecutar los comandos del controlador NVM. El PDI es una interfaz de 2 pines usando el pin Reset para la entrada de reloj (PDI_CLK) y un pin de datos dedicado (PDI_DATA) para la entrada y salida.[15]
Serie de alto voltaje
Programación serial de alto voltaje (HVSP)[16] es sobre todo el modo de copia de seguridad en AVRs más pequeños. Un paquete AVR 8 pines no deja muchas combinaciones de señal única para colocar el AVR en modo de programación. Sin embargo, una señal de 12 voltios, es que el AVR debe ver sólo durante la programación y nunca durante el funcionamiento normal.
Paralelo de alto voltaje
Paralelo (HVPP) de programación de alto voltaje es considerado el "último recurso" y puede ser la única manera de arreglar las virutas AVR con fusible mala configuración.
Gestor de arranque
Mayoría de los modelos AVR puede reservar un Gestor de arranque región, 256 a 4 KB, donde vuelve a programar código puede residir. En reset, el gestor de arranque funciona primero y hace una determinación programadas por el usuario si desea volver a programar, o saltar a la aplicación principal. El código puede volver a programar a través de cualquier interfaz disponible, podría leer un binario codificado a través de un adaptador de Ethernet como PXE. Atmel tiene notas de aplicación y código pertenecientes a muchas interfaces de bus.[17][18][19][20]
ROM
La serie AT90SC de AVRs está disponible con una fábrica de máscara-ROM en lugar de flash para memoria de programa.[21] Debido al gran costo inicial y la cantidad de orden mínima, una máscara-ROM sólo es rentable para tiradas de alta producción.
aWire
aWire es una nueva interfaz de depuración de un alambre disponible en los nuevos dispositivos AVR32 UC3L.
Depuración de interfaces
El AVR ofrece varias opciones para la depuración, sobre todo con la en-viruta de depuración mientras el chip se encuentra en el sistema de destino.
debugWIRE
debugWIRETM es solución de Atmel para proporcionar capacidades de depuración en el chip mediante un pin del microcontrolador solo. Es particularmente útil para pin contar las partes inferiores que no pueden proporcionar las cuatro clavijas "repuestas" necesarias para JTAG. El mkII JTAGICE, mkIII y el dragón AVR apoyan debugWIRE. debugWIRE fue desarrollado después del lanzamiento JTAGICE original, y ahora clones apoyan.
JTAG
El grupo de acción conjunta prueba (JTAG) característica proporciona acceso a la en-viruta funcionalidad de depuración mientras el chip se está ejecutando en el sistema de destino.[22] JTAG permite acceder a la memoria interna y registros, establecer puntos de interrupción en el código y ejecución individual-caminar para observar el comportamiento del sistema.
Atmel proporciona una serie de adaptadores JTAG para el AVR:
- El JTAGICE 3[23] es el último miembro de la familia JTAGICE (JTAGICE mkIII). Soporta interfaces JTAG, aWire, SPI y PDI.
- El mkII JTAGICE[24] reemplaza el JTAGICE y tiene un precio similar. El mkII JTAGICE interfaces a la PC vía USB y soporta tanto JTAG y la nueva interfaz debugWIRE. Numerosos clones de terceros del dispositivo mkII de Atmel JTAGICE comenzaron a enviar después de Atmel había publicado el protocolo de comunicación.[25]
- El dragón AVR[26] es un sustituto de bajo costo (aproximadamente $50) para el mkII JTAGICE para ciertos artículos destino. El dragón AVR proporciona programación serial en el sistema, programación serial de alto voltaje y programación paralela, así como la emulación de JTAG o debugWIRE para piezas con 32 KB de memoria de programa o menos. ATMEL cambió la función de depuración del AVR dragón con el firmware más reciente de AVR Studio 4 - AVR Studio 5 y ahora es compatible con dispositivos de más de 32 KB de memoria de programa.
- Las interfaces JTAGICE adaptador al PC vía un puerto serial estándar.[citación necesitada] Aunque el adaptador JTAGICE ha sido declarado"fin-de-vida"por Atmel, está siendo apoyado en AVR Studio y otras herramientas.
JTAG también puede utilizarse para realizar un exploración del límite prueba,[27] que las pruebas las conexiones eléctricas entre AVRs y otros chips capaces de exploración del límite en un sistema. Exploración del límite es adecuada para una línea de producción, mientras que el aficionado es mejor probar con un multímetro o un osciloscopio.
Herramientas de desarrollo y kits de evaluación
Herramientas de desarrollo de Atmel AVR oficiales y kits de evaluación contienen un número de starter kits y herramientas de depuración con soporte para más dispositivos del AVR:
Kit de inicio STK600
El sistema STK600 starter kit y desarrollo es una actualización de la STK500.[28] El STK600 utiliza una placa base, una tabla de enrutamiento de señal y una tabla de destino.
La placa base es similar a la STK500, que proporciona una fuente de alimentación, reloj, en el sistema de programación, un puerto RS-232 y un puerto CAN (Controller Area Network, un estándar automotor) mediante conectores DE9 y estaca pins para todas las señales GPIO del dispositivo de destino.
Las juntas de la blanco ZIF tomas de corriente para DIP, SOIC, QFN, o QFP paquetes, dependiendo de la junta.
La Junta de ruteo de señal se encuentra entre la placa base y el tablero y las rutas de las señales con el conector apropiado en el tablero del dispositivo. Hay muchos tableros enrutamiento señal diferente que podrían ser usados con el tablero de un solo objetivo, dependiendo de qué dispositivo en el zócalo ZIF.
El STK600 permite la programación en el sistema de la PC vía USB, dejando el puerto RS-232 para el microcontrolador destino. Un pin 4 cabecera en el STK600 con la etiqueta 'RS-232 de reserva' puede conectar cualquier puerto USART nivel TTL en el chip a un chip MAX232 a bordo para traducir las señales a niveles RS-232. Las señales RS-232 están conectadas a los pines del conector DB-9 RTS, CTS, TX y RX.
Kit de inicio STK500
El kit del arrancador STK500 y desarrollo sistema características ISP y programación (PVH) para todos los dispositivos del AVR, directamente o a través de tableros de extensión de alto voltaje. La Junta está equipada con tomas de inmersión para todos AVRs disponibles en paquetes de inmersión.
STK500 Módulos de expansión: varios módulos de expansión están disponibles para el tablero STK500:
- STK501 - añade soporte para microcontroladores en paquetes de 64 pines TQFP.
- STK502 - añade soporte para LCD AVRs en paquetes de 64 pines TQFP.
- STK503 - añade soporte para microcontroladores en paquetes TQFP de 100 pines.
- STK504 - añade soporte para LCD AVRs en paquetes TQFP de 100 pines.
- STK505 - añade soporte para 14 y 20 pines AVRs.
- STK520 - añade soporte para 14 y 20 y 32 pines microcontroladores de la familia AT90PWM y ATmega.
- STK524 - añade soporte para la familia CAN/LIN/Motor Control ATmega32M1/C1 32 pines.
- STK525 - añade soporte para los microcontroladores de AT90USB en paquetes de 64 pines TQFP.
- STK526 - añade soporte para los microcontroladores de AT90USB en paquetes de 32 pines TQFP
Kit de inicio STK200
El sistema STK200 starter kit y desarrollo tiene un DIP zócalo que puede albergar una viruta del AVR en un paquete de 40, 20 ó de 8 pines. El tablero tiene un 4 MHz fuente de reloj, 8 diodo emisor de luz(LED) s, 8 botones de entrada, un RS-232 Puerto, un enchufe para un 32k SRAM y de la entrada-salida general numerosos. El chip puede programarse con un dongle conectado al puerto paralelo.
Chip | Tamaño de destello | EEPROM | SRAM | Frecuencia [MHz] |
Paquete |
---|---|---|---|---|---|
AT90S1200 | 1k | 64 | 0 | 12 | PDIP-20 |
AT90S2313 | 2k | 128 | 128 | 10 | PDIP-20 |
AT90S/LS2323 | 2k | 128 | 128 | 10 | PDIP-8 |
AT90S/LS2343 | 2k | 128 | 128 | 10 | PDIP-8 |
AT90S4414 | 4k | 256 | 256 | 8 | PDIP-40 |
AT90S/LS4434 | 4k | 256 | 256 | 8 | PDIP-40 |
AT90S8515 | 8k | 512 | 512 | 8 | PDIP-40 |
AT90S/LS8535 | 8k | 512 | 512 | 8 | PDIP-40 |
AVR ISP y AVR ISP mkII
El AVR ISP y AVR ISP mkII son baratas herramientas que permiten todos AVRs programarse vía ICSP.
La ISP del AVR conecta con una PC vía un puerto serial y extrae energía del sistema de destino. El AVR ISP permite utilizar cualquiera de las conexiones ICSP "estándar", el conector de 10 pines o 6 pines. El AVR ISP ha sido descontinuado, substituido por el mkII de la ISP del AVR.
El mkII de la ISP del AVR conecta con una PC vía USB y extrae energía del USB. LED visible a través del translúcido caso indicar el estado del poder blanco.
AVR Dragon
El Atmel dragón es una herramienta barata que se conecta a un PC vía USB. El dragón puede programar todos AVRs via JTAG, HVP, PDI,[29] o ICSP. El dragón también permite depurar de AVRs todos vía JTAG, PDI o debugWire; se ha eliminado una limitación anterior a dispositivos con 32 kB o menos memoria de programa en AVR Studio 4.18.[30] El dragón tiene un área de pequeño prototipo que puede acomodar un AVR 8 28 y 40 pines, incluyendo las conexiones de potencia y programación alfileres. No hay ninguna área para cualquier trazado de circuito adicional, aunque esto puede ser proporcionado por un producto de terceros llamado el "jinete de dragón".[31]
JTAGICE mkI
El JTAG En Circuito emulador (JTAGICE) herramienta de depuración apoya la en-viruta depuración (OCD) de AVRs con un interface JTAG. El mkI JTAGICE original utiliza una interfaz RS-232 a un PC y poder sólo programa AVR es con una interfaz JTAG. El mkI JTAGICE ya no está en producción, sin embargo, ha sido reemplazado por el mkII JTAGICE.
MkII JTAGICE
La herramienta de depuración de mkII JTAGICE apoya la en-viruta depuración (OCD) de AVRs con SPI, JTAG, PDI y debugWIRE interfaces. El interfaz del debugWire permite depurar utilizando solamente un pin (el pin Reset), que permite la depuración de aplicaciones que se ejecutan en microcontroladores pines baja.
El mkII JTAGICE se conecta mediante USB, pero hay una conexión alternativa vía un puerto serial, que requiere el uso de una fuente de alimentación separada. Además de JTAG, el mkII apoya la programación ISP (con adaptadores de 6 pines o conector de 10 pines). Tanto el USB y serial enlaces utilizan una variante del protocolo STK500.
JTAGICE3
La JTAGICE3 actualiza el mkII con capacidades más avanzadas de depuración y programación más rápido. Se conecta vía USB y soporta las interfaces JTAG, aWire, SPI y PDI.[32] El kit incluye varios adaptadores para uso con más conexiones de interfaz.
AVR UNO!
El AVR uno! es una herramienta de desarrollo profesional para todos dispositivos del AVR Atmel 8 bits y 32 bits con capacidad de depuración de la en-viruta. Soporta SPI, JTAG, PDI y aWire modos de programación y depuración mediante interfaces debugWIRE, JTAG, PDI y aWire.[33]
Mariposa demostración junta
La mariposa del AVR demostración junta muy popular es un equipo autónomo, pilas con el microcontrolador Atmel AVR ATmega169V. Fue construido para lucir la familia AVR, especialmente una nueva interfaz LCD incorporada. La Junta incluye el LCD pantalla, joystick, altavoz, puerto serial, reloj de tiempo real (RTC), chip de memoria flash y los sensores de temperatura y la tensión. Las versiones anteriores de la mariposa del AVR también contenían un CD fotoresistor; No está presente en placas de mariposa producidos después de junio de 2006 para permitir RoHS cumplimiento de normas.[34] El tablero pequeño tiene una camisa del pin en su espalda puede ser usado como una placa de nombre.
La mariposa del AVR viene precargada con software para demostrar las capacidades del microcontrolador. Fábrica firmware puede desplazarse a tu nombre, mostrar las lecturas del sensor y Mostrar la hora. La mariposa del AVR también cuenta con un transductor piezoeléctrico que puede ser utilizado para reproducir sonidos y música.
La mariposa del AVR demuestra LCD conducción mediante la ejecución de un segmento de 14, seis de visualización de caracteres alfanuméricos. Sin embargo, la interfaz LCD consume muchos de los pines de I/O.
ATmega169 CPU de la mariposa es capaz de velocidades de hasta 8 MHz, pero es por la fábrica de software a 2 MHz para preservar la vida de la batería de botón. Un programa preinstalado bootloader permite a la Junta que reprogramar mediante un enchufe serial estándar RS-232 con nuevos programas que los usuarios pueden escribir con las herramientas gratuitas de Atmel IDE.
AT90USBKey
Este tablero pequeño, aproximadamente la mitad de una tarjeta de negocios, tiene un precio un poco más de una mariposa del AVR. Incluye un AT90USB1287 con USB On-The-Go Apoyo (OTG), 16 MB de DataFlashLEDs, un pequeño joystick y un sensor de temperatura. La Junta incluye software que le permite actuar como un Dispositivo de almacenamiento masivo USB (su documentación se envía en el DataFlash), un joystick USB y mucho más. Para apoyar la capacidad de host USB, debe ser operado de una batería, pero cuando se ejecuta como un periférico USB, sólo necesita la energía proporcionada por el puerto USB.
Sólo el puerto JTAG utiliza pinout convencional 2.54 milímetros. Todos los otros puertos de la entrada-salida AVR requieren encabezados de 1,27 mm más compactos.
El dragón AVR puede programar y depurar desde la limitación de 32 KB fue destituida en AVR Studio 4.18 y el mkII JTAGICE es capaz de programar y depurar el procesador. El procesador también puede programarse a través de USB desde un host Windows o Linux, usando el USB "Dispositivo de actualización de Firmware" protocolos. Atmel naves propietaria (código fuente incluido pero distribución restringida) ejemplo programas y un USB pila de protocolo con el dispositivo.
LUFA[35] es un tercero software libre (Licencia MIT) Pila de protocolo USB para el USBKey y otros AVRs USB de 8 bits.
Raven kit inalámbrico
El kit de RAVEN apoya desarrollo inalámbrica usando de Atmel IEEE 802.15.4 chipsets, para ZigBee y otras pilas inalámbricas. Se asemeja a un par de tarjetas inalámbricas de mariposa más potentes, además de un USBKey sin hilos; y cuesta sobre eso mucho (bajo $US100). Todos estos tableros apoyan desarrollo basado en JTAG.
El kit incluye dos tableros AVR Raven, cada uno con un transceptor de 2,4 GHz Soporte IEEE 802.15.4 (y una pila de ZigBee libremente con licencia). Las radios son conducidas con procesadores, que son apoyados por una costumbre segmentado pantalla LCD impulsado por un procesador de ATmega3290p ATmega1284p. Cuervo periféricos se asemejan a la mariposa: altavoz piezoeléctrico, DataFlash (más grande), external EEPROM, sensores, cristal 32 kHz para RTC, y así sucesivamente. Estos están diseñados para uso en el desarrollo de los nodos de sensor remoto, relés de control, o lo que sea necesario.
La memoria USB utiliza un AT90USB1287 para las conexiones a un host USB y a los enlaces inalámbricos de 2.4 GHz. Estos sirven para supervisar y controlar los nodos remotos, confiando en poder de host en lugar de baterías locales.
Programadores de terceros
Una amplia variedad de herramientas de depuración y programación de terceros están disponibles para el AVR. Estos dispositivos utilizan varios interfaces, incluyendo RS-232, puerto paralelo de PC y USB. AVR Freaks tiene una lista completa.
Uso de Atmel AVR
AVRs se han utilizado en diversas aplicaciones automotrices tales como sistemas de seguridad, seguridad, powertrain y entretenimiento. Atmel ha lanzado recientemente una nueva publicación "Compilación de Atmel automotriz" para ayudar a los desarrolladores con aplicaciones de automoción. Algunos usos actuales son BMW, Daimler-Chrysler y TRW.
El Arduino computación física plataforma se basa en un microcontrolador ATmega328 (ATmega168 o ATmega8 en versiones Junta mayores de la Diecimila). El ATmega1280 y ATmega2560, con más capacidades de memoria y pinout, también han sido empleados para desarrollar la plataforma Arduino Mega. Pueden utilizar placas Arduino con su lengua y IDE, o con más convencionales (programación de entornosC, ensambladoretc..) como plataformas AVR sólo estandarizadas y ampliamente disponibles.
AVRs basados en USB se han utilizado en los controladores de la mano de Microsoft Xbox. El vínculo entre los controladores y Xbox es un dispositivo USB.
Numerosas empresas de producen tableros de microcontrolador AVR-basado destinados al uso por los aficionados, constructores de robot, experimentadores y desarrolladores del pequeño sistema incluyendo: Cubloc,[36] gnusb,[37] BasicX,[38] Robles Micros,[39] ZX microcontroladores,[40] y myAVR.[41] También hay una gran comunidad de Placas compatibles con Arduino apoyo a los usuarios similares.
Schneider Electric produce el M3000 Motor y el Chip de Control de movimiento, incorporando un núcleo de Atmel AVR y un controlador de movimiento avanzado para su uso en una variedad de aplicaciones de movimiento.[42]
Clones de FPGA
Con la creciente popularidad de FPGAs entre la comunidad open source, personas han comenzado a desarrollar procesadores de código abierto compatibles con el conjunto de instrucciones AVR. El OpenCores sitio web enumera los siguientes proyectos importantes de clon AVR:
- pAVR,[43] escrito en VHDL, está dirigido a crear el procesador más rápido y máximo recomendado de AVR, mediante la aplicación de técnicas no se encuentran en el procesador original AVR como canalización más profunda.
- avr_core,[44] escrito en VHDL, es un clon pretende ser lo más cerca posible a la ATmega103.
- Navré[45] escrito en Verilog, implementa todos Núcleo clásico instrucciones y está dirigido a alto rendimiento y uso de bajos recursos. No admite interrupciones.
Véase también
- Arduino
- AVR32
Referencias
- ^ alfbogen.com blog
- ^ Desde 1996, NTH se ha convertido en parte de la Universidad Noruega de ciencia y tecnología (NTNU)
- ^ a b "La historia de AVR". YouTube.com.
- ^ "El microcontrolador AVR y C Compiler co-diseño" (PDF). 19 / 09 / 2012 obtenido.
- ^ "UNSW escuela de Ingeniería Informática e ingeniería - General AVR Info". CSE.UNSW.edu.au. 19 / 09 / 2012 obtenido.
- ^ Comunicado de prensa de Atmel. "AVR microcontrolador de Atmel envía 500 millones de unidades".
- ^ Campo sistema programable nivel circuito integrado
- ^ https://www.atmel.com/images/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf
- ^ Atmel tarjeta inteligente ICs
- ^ "AVR319: usando el módulo USI para comunicación SPI" (PDF). Atmel. 2004. 10 de junio de 2014.
- ^ "Atmel AVR310: usando el módulo USI como un2C maestro " (PDF). Atmel. 2013. 10 de junio de 2014.
- ^ "AVR312: usando el módulo USI como un2C esclavo" (PDF). Atmel. 2005. 10 de junio de 2014.
- ^ "AVR307: UART dúplex medio utilizando el módulo de USI" (PDF). Atmel. 2003. 10 de junio de 2014.
- ^ "Programador AVRDUDE". Savannah.nongnu.org. 19 / 09 / 2012 obtenido.
- ^ «Conductor programación PDI» (PDF). 19 / 09 / 2012 obtenido.
- ^ "HVSP_Description". Support.atmel.no. 19 / 09 / 2012 obtenido.
- ^ "Cifrado DES AVR Bootloader" (PDF). 19 / 09 / 2012 obtenido.
- ^ "Cifrado AES AVR Bootloader" (PDF). 19 / 09 / 2012 obtenido.
- ^ "XMEGA Bootloader" (PDF). 19 / 09 / 2012 obtenido.
- ^ "Bootloader USB AVR" (PDF). 19 / 09 / 2012 obtenido.
- ^ "De Atmel Self-programación de microcontroladores Flash" (PDF). 19 / 09 / 2012 obtenido.
- ^ "Guía para la comprensión de los fusibles de JTAG y seguridad en el AVR". 19 / 09 / 2012 obtenido.
- ^ "JTAGICE 3-Atmel Corporation". Atmel.com. 19 / 09 / 2012 obtenido.
- ^ "AVR JTAGICE mkII". Atmel. 13 de enero de 2013.
- ^ "MkII JTAGICE protocolo de comunicación" (PDF). 19 / 09 / 2012 obtenido.
- ^ "AVR dragón". Atmel. 13 de enero de 2013.
- ^ Comunicado de prensa JTAGICE, 2004.
- ^ "STK600". Atmel. 13 de enero de 2013.
- ^ "AVR1005: empezando con XMEGA, página 7". Atmel. 07 de noviembre de 2011.
- ^ "AVR Studio v4.18 Release Notes". 19 / 09 / 2012 obtenido.
- ^ "La tecnología ECROS - jinete de dragón". Ecrostech.com. 2008-03-02. 19 / 09 / 2012 obtenido.
- ^ JTAGICE3 Página del producto
- ^ AVR UNO! Página del producto
- ^ Mariposa AVR
- ^ "LUFA (anteriormente MyUSB)". Cuatro paredes cubículo. 19 / 09 / 2012 obtenido.
- ^ "Comfile Technology". Comfile Technology, Inc. 13 de enero de 2013.
- ^ "gnusb: Open Source USB Sensor de caja". 13 de enero de 2013.
- ^ "BasicX". NetMedia, Inc. 13 de enero de 2013.
- ^ "Bienvenido al Robles Micros". Robles Micros. Robles Micros. 13 de enero de 2013.
- ^ "ZBasic". 13 de enero de 2013.
- ^ "myAVR". Laser & Co. Solutions GmbH. 13 de enero de 2013.
- ^ "Controlador de movimiento M3000 en un chip". imshome.com. Schneider Electric movimiento USA.
- ^ "pAVR:: Resumen". OpenCores. 19 / 09 / 2012 obtenido.
- ^ "AVR Core:: Resumen". OpenCores. 19 / 09 / 2012 obtenido.
- ^ "Clone Navré AVR (8-bit RISC):: Resumen". OpenCores. 19 / 09 / 2012 obtenido.
Lectura adicional
- Microcontrolador AVR y sistemas embebidos: Asamblea y C; Muhammad Ali Mazidi, Sarmad Naimi, Sepehr Naimi; 792 páginas; 2010; ISBN 978-0138003319.
- Programación en C incrustado y Atmel AVR; Richard H Barnett, Sarah Cox, Larry O'Cull; 560 páginas; 2006; ISBN 978-1-4180-3959-2.
- Programación en C para microcontroladores de ATMEL AVR mariposa y compilador WinAVR; Joe Pardue; 300 páginas; 2005; ISBN 978-0-9766822-0-2.
- Cartilla de microcontrolador Atmel AVR: Programación y entretela; Steven F Barrett, Daniel Pack, Mitchell Thornton; 194 páginas; 2007; ISBN 978-1-59829-541-2.
- Arduino: Una guía de inicio rápido; Maik Schmidt; 276 páginas; 2011; ISBN 978-1-934356-66-1.
Enlaces externos
|
El Wikibook Sistemas embebidos tiene una página sobre el tema: Atmel AVR |
- Oficial
- Atmel AVR
- Comunidades
- Comunidad AVR Freaks
- Comunidad Arduino
- Otros
- Atmel AVR en DMOZ, numerosos enlaces AVR
- AVR-Libc
- Programador de Atmel AVR Puerto Serial
- ¿Por qué se necesita una fuente de reloj para el AVR?
- AVR básico -Guía AVR para principiantes
- Programador AVR más simple usando LPT Port
- ATmega8 protoboard Tutorial
- AVR-paquete de la inmersión Pinout diagramas: ATtiny44/45/84/85, ATmega328P, ATmega644P, ATmega1284P
- AVR TQFP-paquete Pinout diagramas: ATmega328, ATmega2560, ATmega32U4
|
|