Tipos de microcontroladores AVR: Atmega32 y ATmega8

Tipos de microcontroladores AVR: Atmega32 y ATmega8

ATmega32 - Microcontrolador AVR de 8 bits

Los microcontroladores AVR se basan en la arquitectura RISC avanzada. ATmega32 es un microcontrolador CMOS de 8 bits de bajo consumo basado en la arquitectura RISC mejorada de AVR. AVR puede ejecutar 1 millón de instrucciones por segundo si la frecuencia del ciclo es 1MHz.

Fotografía DIP de 40 pines de ATmega32

Fotografía DIP de 40 pines de ATmega32

Características principales:




  • 32 x 8 registros de uso general.
  • 32K bytes de memoria de programa flash autoprogramable del sistema
  • 2K bytes de SRAM interna
  • 1024 bytes EEPROM
  • Disponible en DIP de 40 pines, QTFP de 44 derivaciones, QFN / MLF de 44 almohadillas
  • 32 líneas de E / S programables
  • 8 canales, ADC de 10 bits
  • Dos temporizadores / contadores de 8 bits con preescaladores separados y modos de comparación
  • Un temporizador / contador de 16 bits con preescalador independiente, modo de comparación y modo de captura.
  • 4 canales PWM
  • En la programación del sistema mediante el programa de arranque en chip
  • Temporizador de perro guardián programable con oscilador integrado en el chip.
  • USART serie programable
  • Interfaz serial SPI maestro / esclavo

Características especiales del microcontrolador:

  • Seis modos de suspensión: inactivo, reducción de ruido ADC, ahorro de energía, apagado, espera y espera extendida.
  • Oscilador RC calibrado interno
  • Fuentes de interrupción externas e internas
  • Encendido, reinicio y detección programable de apagones.
DIP de 40 pines de ATmega32

DIP de 40 pines de ATmega32

Los 32 registros están conectados directamente a la Unidad Aritmética Lógica (ALU), lo que permite acceder a dos registros independientes en una sola instrucción ejecutada en un ciclo de reloj.

El apagado guarda el contenido del registro pero congela el oscilador. Todas las demás funciones del chip se desactivarán hasta que surja la siguiente interrupción externa. El temporizador asincrónico permite al usuario mantener un temporizador basado en el modo de ahorro de energía mientras el resto del dispositivo está inactivo.

El modo de reducción de ruido ADC detiene la CPU y todos los módulos de E / S excepto ADC y el temporizador asíncrono. En modo de espera, excepto el oscilador de cristal, el resto del dispositivo está inactivo. Tanto el oscilador principal como el temporizador asíncrono continúan funcionando en modo de espera extendido.

ATmega32 es un potente microcontrolador debido a su flash autoprogramable en el sistema en un chip monolítico, proporciona una solución altamente flexible y rentable para muchas aplicaciones de control integradas.


44 almohadillas TQFP / MLF

44 almohadillas TQFP / MLF

Descripciones de pines:

VCC: Suministro de voltaje digital

GND: Suelo

Puerto A (PA7-PA0): Este puerto sirve como entradas analógicas al convertidor A / D. También sirve como puerto de E / S bidireccional de 8 bits si no se utiliza el convertidor A / D.

Puerto B (PB7-PB0) y puerto D (PD7-PD0): Es un puerto de E / S bidireccional de 8 bits. Sus búferes de salida tienen características de transmisión simétricas con alta capacidad de sumidero y fuente. Como entradas, estas son extremadamente bajas si se activan las resistencias pull-up. También sirve para varias funciones especiales del ATmega32.

Puerto C (PC7-PC0): Es un puerto de E / S bidireccional de 8 bits. Si la interfaz JTAG está habilitada, se activarán las resistencias pull-up en los pines PC5 (TDI), PC3 (TMS) y PC2 (TCK).

Interfaz de JTAG usando el puerto C de ATmega32

Interfaz de JTAG usando el puerto C de ATmega32

Reiniciar: Es una entrada.

XTAL1: Es una entrada al amplificador del oscilador inversor y una entrada al circuito operativo del reloj interno.

XTAL2: Es una salida del amplificador de oscilador inversor.

AVCC: Es el pin de voltaje de suministro para el puerto A y el convertidor A / D. Debe estar conectado a VCC.

AREF: AREF es el pin de referencia analógico para el convertidor A / D.

Memorias ATmega32:

Tiene dos espacios de memoria principal, la memoria de datos y el espacio de memoria del programa. Además, cuenta con una memoria EEPROM para el almacenamiento de datos.

En la memoria del programa flash programable del sistema:

ATmega32 contiene 32 Kbytes en chip en la memoria flash reprogramable del sistema para el almacenamiento de programas. Flash está organizado como 16k X 16 y su memoria está dividida en dos secciones, sección de programa de arranque y sección de programa de aplicación.

Diagrama de circuito del programador ISP

Diagrama de circuito del programador ISP

Memoria de datos SRAM:

El archivo de registro, la memoria de E / S y la SRAM de datos internos son direccionados por las 2144 ubicaciones de memoria de datos inferiores. Las primeras 96 ubicaciones se dirigen al archivo de registro y la memoria de E / S, y las siguientes 2048 ubicaciones se dirigen a la SRAM de datos internos. Directo, indirecto con desplazamiento, indirecto, indirecto con decremento previo e indirecto con decremento posterior son los 5 modos de direccionamiento diferentes para la cobertura de la memoria de datos. Los 32 registros de propósito general, 64 registros de E / S y 2048 bytes de SRAM de datos internos son accesibles utilizando estos modos de direccionamiento.

Diagrama de bloques de ATmega32

Diagrama de bloques de ATmega32

Memoria de datos EEPROM:

Contiene 1024 bytes de memoria EEPROM de datos. Se puede acceder a él como un espacio de datos separado en el que se pueden leer y escribir bytes individuales.

Memoria de E / S:

Todas las E / S y periféricos se colocan en el espacio de E / S. Se accede a las ubicaciones de E / S mediante las instrucciones IN y OUT, transfiriendo los datos entre los 32 registros de propósito general y el espacio de E / S. Los registros de E / S con la dirección 00-1F son directamente accesibles por bit utilizando las instrucciones SBI y CBI.

ATmega8

Introducción

Es un microcontrolador CMOS de 8 bits de la familia AVR (desarrollado por Atmel Corporation en 1996) y está construido sobre la arquitectura RSIC (Reduced Instruction Set Computer). Su ventaja básica es que no contiene ningún acumulador y el resultado de cualquier operación se puede almacenar en cualquier registro, definido por la instrucción.

Arquitectura

Arquitectura

Arquitectura

Memoria

Consta de 8 KB de memoria flash, 1 KB de SRAM y 512 Bytes de EEPROM. El flash de 8K se divide en 2 partes: la parte inferior se usa como sección de flash de arranque y la parte superior se usa como sección de flash de aplicación. La SRAM contiene 1K bytes junto con 1120 bytes de registros de propósito general y registros de E / S. Las 32 ubicaciones de direcciones inferiores se utilizan para 32 registros de 8 bits de uso general. Las siguientes 64 direcciones se utilizan para registros de E / S. Todos los registros están conectados directamente a la ALU. La EEPROM se utiliza para almacenar datos definidos por el usuario.

Puertos de entrada / salida

Consta de 23 líneas de E / S con 3 puertos de E / S, denominados B, C y D. El puerto B consta de 8 líneas de E / S, el puerto C consta de 7 líneas de E / S y el puerto D consta de 8 E / S líneas.

Los registros correspondientes a cualquier puerto X (B, C o D) son:

DDRX : Registro de dirección de datos del puerto X

PORTX : Registro de datos del puerto X

PINX : Registro de entrada del puerto X

Temporizadores y contadores

Consta de 3 temporizadores con modos comparables. Dos de ellos son de 8 bits, mientras que el tercero es de 16 bits.

Osciladores

Incorpora reset interno y oscilador lo que permite eliminar la necesidad de cualquier entrada externa. El oscilador RC interno es capaz de generar un reloj interno que puede funcionar a cualquier frecuencia de 1MHz, 2MHz, 4MHz u 8MHz según lo programado. También es compatible con un oscilador externo con una frecuencia máxima de 16 MHz.

Comunicación

Proporciona esquemas de transferencia de datos síncronos y asíncronos a través de USART (Transmisor receptor universal síncrono y asíncrono), es decir, comunicación con módems y otros dispositivos seriales. También es compatible con SPI (interfaz periférica en serie) que se utiliza para la comunicación entre dispositivos según el método maestro-esclavo. Otro tipo de comunicación compatible es la TWI (interfaz de dos hilos). Permite la conmutación entre dos dispositivos mediante el uso de 2 cables junto con una conexión a tierra común.

También tiene un módulo comparador integrado en el chip para proporcionar comparación entre dos voltajes conectados a las dos entradas del comparador analógico a través de los chips externos.

También contiene un ADC de 6 canales, de los cuales 4 tienen una precisión de 10 bits y 2 tienen una precisión de 8 bits.

Registro de estado : Contiene información sobre el conjunto de instrucciones aritméticas actualmente ejecutadas.

Diagrama de pines ATmega :

Diagrama de pines ATmega

Diagrama de pines ATmega

Una de las características importantes de ATmega8 es que, excepto los 5 pines, todos los demás pines admiten dos señales.

  • Los pines 23,24,25,26,27,28 y 1 se utilizan para el puerto C, mientras que los pines 9,10,14,15,16,17,18,19 se utilizan para el puerto B y los pines 2,3,4, 5,6,11,12 se utilizan para el puerto D.
  • El pin 1 es también el pin de reinicio y la aplicación de una señal de bajo nivel durante un tiempo superior a la longitud mínima del pulso generará un reinicio.
  • Los pines 2 y 3 también se utilizan para la comunicación en serie para USART.
  • Los pines 4 y 5 se utilizan como interrupciones externas. Uno de ellos se activará cuando se establezca el bit de bandera de interrupción del registro de estado y el otro se activará siempre que prevalezca la condición de interrupción.
  • Los pines 9 y 10 se utilizan como oscilador externo, así como como osciladores de contadores de temporizador donde el cristal está conectado directamente entre los pines. El pin 10 se utiliza para el oscilador de cristal o el oscilador de cristal de baja frecuencia. Si el oscilador RC calibrado interno se usa como fuente de reloj y el temporizador asíncrono está habilitado, estos pines se pueden usar como pines del oscilador del temporizador.
  • El pin 19 se utiliza como salida de reloj maestro, entrada de reloj esclavo para el canal SPI.
  • El pin 18 se utiliza como entrada de reloj maestro, salida de reloj esclavo.
  • El pin 17 se utiliza como salida de datos maestra, entrada de datos esclava para el canal SPI. Se utiliza como entrada cuando está habilitado por un esclavo y es bidireccional cuando lo habilita el maestro. Este pin también se puede utilizar como salida de comparación de comparación, que sirve como salida externa para la comparación de temporizador / contador.
  • El pin 16 se utiliza como entrada de selección esclava. También se puede utilizar como una coincidencia de comparación de temporizador / contador1 configurando el pin PB2 como salida.
  • El pin 15 se puede utilizar como salida externa para la comparación de temporizador / contador A.
  • Los pines 23 a 28 se utilizan para canales ADC. El pin 27 también se puede usar como reloj de interfaz serial y el pin 28 se puede usar como datos de interfaz serial
  • Los pines 13 y 12 se utilizan como entradas del comparador analógico.
  • Los pines 11 y 6 se utilizan como fuentes de temporizador / contador.

Modos de suspensión del microcontrolador

El microcontrolador funciona en 6 modos de suspensión.

  • Modo inactivo: Detiene el funcionamiento de la CPU, pero permite el funcionamiento de SPI, USART, ADC, TWI, Timer / Counter y Watchdog e interrumpe el sistema. Se logra poniendo a cero los bits SM0 a SM2 del indicador de registro MCU.
  • Modo de reducción de ruido ADC : Detiene la CPU pero permite el funcionamiento de ADC, interrupciones externas, timer / counter2 y watchdog.
  • Modo de apagado : Habilita interrupciones externas, la interfaz serial de 2 hilos, perro guardián mientras deshabilita el oscilador externo. Detiene todos los relojes generados.
  • Modo ahorro de energía : Se utiliza cuando el temporizador / contador se sincroniza de forma asincrónica. Detiene todos los relojes excepto clkASY.
  • Modo de espera : En este modo, el oscilador puede operar, deteniendo todas las demás operaciones.

Aplicaciones que involucran a Atmega8

LED parpadeante

Aplicaciones que involucran Atmega8

Esquema de LED parpadeante

El programa está escrito en lenguaje C y primero se compila como archivo .c. La herramienta de software ATMEL convertirá este archivo en un archivo de objeto ELF binario. Luego se convierte nuevamente a un archivo hexadecimal. Luego, el archivo hexadecimal se pasa al microcontrolador mediante el programa AVR dude.

Autor de la foto: