Tabla de contenido
- ¿Qué es un microcontrolador Atmega Atmel AVR?
- Introducción a los microcontroladores ATMega
- Historia de los microcontroladores ATMega
- Arquitectura del microcontrolador ATMega
- Diagrama de bloques del microcontrolador ATMEGA
- Pines y módulos del microcontrolador ATMega
- Programación con Microcontroladores ATMega
- Esquema de un proyecto LED simple usando el microcontrolador ATmega16
¿Qué es un microcontrolador Atmega Atmel AVR?
Introducción a los microcontroladores ATMega
Microcontrolador ATMega pertenece a familia AVR de microcontroladores, fabricados por Corporación AtmelEl microcontrolador ATMega es microcontrolador de 8 bits conjunto de instrucciones reducido (riesgo) basado en la arquitectura de Harvard.
Como su nombre indica, por ejemplo “ATmega16″ dónde y = Atmel, mega = mega AVR y dieciséis= 16kb de memoria flash.
Funciones estándar como ROM en chip (memoria de solo lectura), RAM de datos (memoria de acceso aleatorio), EEPROM de datos (memoria de solo lectura programable y borrable eléctricamente), temporizadores, puertos de entrada/salida, además de adiciones como analógico a Periféricos convertidores digitales. (ADC), puertos de interfaz serie, etc. Tiene más de 120 conjuntos de instrucciones y memoria de programa que van desde 4K a 256K bytes.
Historia de los microcontroladores ATMega
de Microcontrolador ATMega diseñado por dos Instituto Noruego de Tecnología (NTH) Estudiantes: Alf-Eigel Bogen y Vegard Wollan. Luego fue comprado y desarrollado por Atmel Corporation en 1996.
Arquitectura del microcontrolador ATMega
Como se mencionó en la parte introductoria, Microcontrolador ATMega Basado en la arquitectura de Harvard. En otras palabras, la memoria de datos y la memoria de programa están separadas. La memoria de programa, también conocida como memoria de programa o código, es una memoria flash de acceso aleatorio (ROM). El tamaño de la memoria del programa varía de 8K a 128K bytes.
La memoria de datos se divide en tres partes: 32 registros de propósito general, memoria de entrada/salida y memoria de acceso aleatorio estática interna (SRAM). Los registros de uso general tienen un tamaño fijo, pero los tamaños de la memoria de E/S y la SRAM interna varían de un chip a otro.
Diagrama de bloques del microcontrolador ATMEGA
El siguiente diagrama representa la arquitectura del microcontrolador ATMega.
Haga clic en la imagen para ampliar
Pines y módulos del microcontrolador ATMega
Haga clic en la imagen para ampliar
Vamos a dar una descripción general rápida de cada módulo.
1Registros de propósito general: Los microcontroladores ATMega tienen una arquitectura basada en registros. Es decir, tanto los operandos como los resultados de una operación se almacenan en registros ubicados junto con la unidad central de procesamiento (CPU). Los registros de uso general están vinculados a la unidad lógica aritmética (ALU) del procesador.
Estos registros se utilizan para almacenar información temporalmente durante la ejecución del programa. Consumen 32 bytes de espacio de memoria de datos y toman ubicaciones de direcciones ($00 a $FF). Estos registros se denominan R0 a R31 y cada uno tiene 8 bits de ancho.
2Memoria de E/S: También se denomina memoria de registro de función especial (SFR) porque está dedicada a funciones especiales como registros de estado, temporizadores, comunicaciones en serie, puertos de E/S y contadores de analógico a digital (ADC).
La cantidad de ubicaciones que ocupa esta memoria depende de cuántos pines y periféricos admita el chip. Todos los chips tienen una ubicación de E/S fija de 64 bytes, pero algunos microcontroladores ATMega tienen memoria de E/S extendida, que contiene registros adicionales relacionados con puertos y periféricos.
3SRAM interna: Esto también se denomina bloc de notas y los programadores y compiladores lo utilizan para almacenar datos y parámetros. Se puede acceder a cada ubicación directamente desde su dirección. Se utiliza para almacenar datos desde los puertos de entrada/salida y serie a la CPU.
cuatroFlash Memoria programable borrable eléctricamente (Flash EEPROM): Esta es la memoria programable del sistema utilizada para almacenar programas. Borrable y programable como una sola unidad. Debido a que no es volátil, el contenido de la memoria se retiene incluso si se apaga la alimentación. El número al final del nombre de cada microcontrolador ATMega indica la cantidad de memoria flash.
Por ejemplo, el ATMega16 tiene 16K bytes de memoria flash. La ventaja de la memoria Flash en los microcontroladores ATMega es la capacidad de programación en el sistema. Esto significa que el microcontrolador se puede programar incluso cuando está en la placa de circuito.
CincoMemoria programable borrable eléctricamente (EEPROM de datos): Parte Esta memoria se utiliza para almacenar y recuperar datos persistentes del programa y otros parámetros del sistema.
Además de los módulos de memoria, hay conexiones externas de microcontrolador para alimentación, dos pines de entrada de cristal externos, reinicio del procesador y cuatro puertos de 8 bits.
1. puerto: El microcontrolador ATMega contiene cuatro puertos de 8 bits: Puerto A, Puerto B, Puerto C y Puerto D. Cada puerto tiene un registro de datos (escribe los datos de salida en el puerto), un registro de dirección de datos (da salida o entrada a un pin de puerto en particular) y una dirección de pin de entrada (lee los datos de entrada del puerto).
2. reloj: El reloj del microcontrolador se utiliza para proporcionar una base de tiempo para los subsistemas periféricos. El reloj se puede configurar internamente usando una resistencia-capacitor seleccionable por el usuario o externamente usando un oscilador.
3temporizadores y contadores: Los microcontroladores ATMega suelen contener tres temporizadores/contadores. También se pueden usar dos temporizadores de 8 bits como contadores, pero el tercero es un contador de 16 bits. Se utilizan para generar señales de salida de precisión, contar eventos externos o medir parámetros de señales digitales de entrada.
3sistema de comunicación en serie: Los chips de microcontrolador ATMega incluyen receptores y transmisores seriales universales síncronos y asíncronos (USART), interfaz periférica serial (SPI) e interfaz serial de dos hilos (TWI).
cuatro.Conversor analógico a digital: Los microcontroladores ATMega contienen un subsistema convertidor de analógico a digital (ADC) multicanal. El ADC tiene una resolución de 10 bits y funciona según el principio de aproximación sucesiva. Está asociado con tres registros: registro de selección de multiplexor ADC, registro de estado y control de ADC y registro de datos de ADC.
Cinco. interrumpir: Los microcontroladores ATMega tienen 21 periféricos de interrupción. Tres se utilizan para fuentes externas y los 19 restantes se utilizan para subsistemas internos. Se utilizan para interrumpir la secuencia normal de eventos en caso de una emergencia de alta prioridad.
Programación con Microcontroladores ATMega
Como se mencionó anteriormente, los microcontroladores ATMega se basan en la arquitectura RISC. Es decir, se reduce el conjunto de instrucciones incluido. Al igual que con cualquier microcontrolador, la programación en los microcontroladores ATMega se puede realizar en lenguajes de bajo nivel (ensamblado) o de alto nivel (C integrado).
Una breve introducción a la programación a nivel de ensamblador.
Las instrucciones en lenguaje ensamblador constan de los siguientes campos:
[Label: ] mnemotécnico [operands] [; comments]
Aquí, el mnemotécnico se refiere a la instrucción. Los microcontroladores ATMega admiten modos de direccionamiento inmediato e indirecto. Se puede acceder a los registros de E/S desde sus respectivas ubicaciones en el espacio de memoria.
Los operandos se refieren a los argumentos sobre los que opera la instrucción. Para los microcontroladores ATMega, los operandos son registros de propósito general o registros de E/S.
La programación se realiza comúnmente utilizando el lenguaje C debido a su simplicidad. A continuación se muestra un pequeño ejemplo de programación de un microcontrolador ATMega16 utilizando el lenguaje C.
Esquema de un proyecto LED simple usando el microcontrolador ATmega16
el propósito: Cómo encender el LED usando un interruptor de botón con microcontrolador ATmega16
Código de proyecto:
{
DDRA=0x00;
DDRB=0xFF;
inti sin firmar;
mientras (1)
{
i=PINA;
Si (yo == 1)
{
puerto B = 0xFF;
}
aparte de eso
puerto B = 0x00;
}
}
El código anterior asigna el puerto A como puerto de entrada y su pin PA.0 está conectado a un interruptor de botón. Al puerto B se le asigna un puerto de salida y su pin PB.0 se conecta a un LED.
Escribí y compilé el código usando Atmel Studio 7, que convierte los archivos .c en archivos de objetos ELF binarios. Luego se convierte nuevamente a un archivo hexadecimal y se pasa al microcontrolador utilizando el programa AVRdude.
Una breve información sobre Microcontrolador ATMegaCualquier otra información relevante es bienvenida en los comentarios a continuación.
También puedes leer: