Introducción a la programación del microcontrolador Atmega128/328

Atmega128 /328 es un potente microcontrolador que se utiliza en una gran variedad de campos de aplicación. Se trata de un microcontrolador de 8 bits altamente integrado con una amplia gama de periféricos y funciones. En esta entrada del blog, analizaremos las diferentes características del Atmega128 / 328, su configuración de pines, técnicas de programación y aplicaciones. También analizaremos las ventajas del microcontrolador Atmega128 / 328 frente a otros microcontroladores y proporcionaremos algunas prácticas recomendadas para trabajar con él.

¿Qué es Atmega128 / 328?

Atmega128 / 328 es un microcontrolador de 8 bits fabricado por Atmel Corporation. Se basa en la arquitectura AVR y es uno de los microcontroladores más populares utilizados en sistemas integrados. Está disponible en varios paquetes y configuraciones, incluyendo un PDIP de 40 pines, un TQFP de 44 pines y un VQFP de 64 pines. El Atmega128 / 328 se basa en la arquitectura RISC y cuenta con una amplia gama de periféricos, entre los que se incluyen un convertidor A/D de 8 canales y 10 bits, tres temporizadores de 16 bits, un puerto serie y un puerto SPI. Tiene un total de 128 Kbytes de memoria de programa y 2 Kbytes de EEPROM.

Atmega128
Atmega128

Descripción general de Atmega128 / 328

Características

El Atmega128 / 328 tiene una amplia gama de capacidades, lo que lo convierte en un microcontrolador versátil y potente. Tiene una arquitectura RISC de 16 bits, lo que le permite ejecutar instrucciones de forma rápida y eficiente. Puede funcionar a 8 MHz, 16 MHz o 20 MHz, lo que lo hace adecuado para una amplia gama de aplicaciones. El Atmega128 / 328 también cuenta con una amplia gama de periféricos, incluyendo un convertidor A/D de 8 canales y 10 bits, tres temporizadores de 16 bits, un puerto serie y un puerto SPI. También tiene 128 Kbytes / 328 Kbytes de memoria de programa y 2 Kbytes de EEPROM, lo que le permite almacenar grandes cantidades de datos.

El Atmega128 / 328 también está altamente integrado, lo que lo hace ideal para su uso en sistemas embebidos. Tiene un oscilador en chip, un circuito de reinicio en chip y regulación de voltaje en chip. También tiene un circuito de reinicio al encendido en chip, que garantiza que el microcontrolador se reinicie cuando se aplica la alimentación. Además, el Atmega128 tiene una amplia gama de puertos de E/S, lo que le permite interactuar con una gran variedad de dispositivos externos.

Configuración de pines

Atmega128 / 328 tiene un total de 64 pines, que están dispuestos en dos filas. Los pines se dividen en dos categorías: pines de E/S digitales y pines de E/S analógicos. Los pines de E/S digitales se utilizan para controlar señales digitales, mientras que los pines de E/S analógicos se utilizan para controlar señales analógicas. El Atmega128/328 también tiene un puerto serie, un puerto SPI y un puerto I2C.

Pin Configuration of Atmega128
Pin Configuration of Atmega128

Aplicaciones

  • Proyectos de robótica, como brazos robóticos y robots autónomos.
  • Proyectos de comunicación, como módulos Bluetooth y Wi-Fi.
  • Sistemas de adquisición de datos y sistemas integrados para el registro y control de datos.
  • Aplicaciones automovilísticas, como sistemas de control del motor y sistemas de infoentretenimiento a bordo.
  • Productos de consumo, como mandos a distancia, cámaras digitales y electrodomésticos.

Programación del Atmega128 / 328

El IC Atmega128 / 328 se puede programar utilizando lenguaje C o ensamblador. Cuenta con una amplia gama de características que facilitan su programación, incluyendo una amplia gama de puertos de E/S, un oscilador integrado y un regulador de voltaje integrado.

Si desea programar el Atmega128 / 328, necesitará un programador. Un programador es un dispositivo que se utiliza para transferir el código del programa desde un ordenador al Atmega128 / 328. Una vez transferido el código del programa, el IC se puede programar utilizando el software adecuado. Todos los pasos se pueden dividir en 4 partes, como se indica a continuación:

  • Parte 1: Preparación de los componentes necesarios.
  • Parte 2: Construcción de circuitos Arduino en una placa de pruebas.
  • Parte 3: Grabar el gestor de arranque en el IC Atmega128 / 328.
  • Parte 4: Programación del IC Atmega128 / 328.

Parte 1: Preparación de los componentes

Atmega128 / 328: El componente clave de la placa de pruebas y su diagrama de pinout se muestran arriba.

Placa de pruebas (LM7805): Dispositivo sin soldadura para conectar componentes electrónicos con cables de puente.

Osciladores (16 MHz): Proporcionan los relojes para el IC, conectados con el pin 23 y el pin 24.

Condensador (10 uF): Se utiliza en las secciones de entrada y salida del LM7805 para derivar cualquier componente de CA a tierra.

Cable puente: cable metálico que conecta dos puntos en una placa de circuito o placas de pruebas.

Parte 2: Construcción de circuitos Arduino en una placa de pruebas sin soldadura

Paso 1: En primer lugar, conecte la sección de alimentación tal y como se muestra en el diagrama del circuito y pruébela con la fuente de alimentación externa del LM7805. El resultado es el siguiente:

Connecting the power to LM7805 breadboard

Paso 2: A continuación, conecte la parte del microcontrolador tal y como se muestra en el diagrama del circuito.

Connecting the Atmega128 / 328 IC to breadboard

Paso 3: Ahora, utilice puentes de cable para conectar la fuente de alimentación y la sección del microcontrolador.

Connecting the power supply and the Atmega128 / 328 IC by wire jumpers

Parte 3: Grabar el gestor de arranque en el IC Atmega128 / 328

Un gestor de arranque es un pequeño fragmento de código ejecutable almacenado de forma permanente en la memoria del microcontrolador. Ocupa menos de 1 Kb de memoria. Un gestor de arranque permite al circuito integrado aceptar código del ordenador y colocarlo en la memoria del microcontrolador.

Cuando compras un nuevo Atmega128 / 328 en el mercado, no tiene bootloader. Por lo tanto, para programarlo con el IDE de Arduino, primero debes cargar el bootloader.

Para cargar el gestor de arranque, disponemos de dos métodos:

  • Usando el programador USBasp
  • Usando una placa Arduino UNO

En comparación con el primer método, el segundo es más sencillo, ya que requiere menos conexiones y las últimas versiones del IDE de Arduino son menos compatibles con los programadores USBasp.

Por lo tanto, en este tutorial utilizaremos la placa Arduino UNO para cargar el gestor de arranque.

Paso 1: Abra el IDE de Arduino. Vaya al menú: Archivo -> Ejemplos -> ArduinoISP. A continuación, seleccione ArduinoISP.

Opening Arduino IDE and Choose ArduinoISP Examples

Paso 2: Ahora, tienes que cargar este código en tu placa Arduino. Selecciona el puerto COM y la placa en el menú Herramientas y haz clic en el botón Cargar.

Paso 3: Una vez completada la carga, desconecta la placa Arduino del ordenador. A continuación, conecta la placa Arduino con el IC Atmega128 / 328 como se muestra en la imagen siguiente.

Connecting the Arduino board with the Atmega128 / 328

Paso 4: Abra el IDE de Arduino después de conectar la placa Arduino al ordenador. A continuación, vaya al menú: Herramientas -> Placa: «Arduino/Genuin0 Uno» y seleccione el puerto correcto para su placa. A continuación, seleccione Programador: como «Arduino como ISP».

Choosing Board Arduino or Genuine Uno and Programmer as Arduino as ISP

Paso 5: Ahora, vuelve a la barra de menú Herramientas y haz clic en Grabar gestor de arranque en la opción Programador. Tras unos segundos, el gestor de arranque se habrá cargado correctamente. Si se produce algún error durante la carga, comprueba la conexión.

Burning Bootloader to Atmega128 / 328

Parte 4: Programación del circuito integrado Atmega128 / 328

El chip Arduino Atmega128 / 328 se puede programar de diferentes maneras, entre ellas:

  1. Utilizar una placa Arduino sin el IC Atmega128 / 328.
  2. Utilizar el módulo de conversión USB a serie TTL (módulo FTDI).
  3. Utilizar un programador USBasp (si hay muchas conexiones).

A continuación, presentamos la primera y la segunda forma de programar el IC Atmega128 / 328.

4.1 Programación del IC Atmega128 / 328 utilizando una placa Arduino

Paso 1: Tome una placa Arduino sin chip Atmega128 / 328. A continuación, conecte la placa Arduino con nuestra placa de pruebas como se muestra.

Connecting the Arduino board with the breadboard

Paso 2: Conecta la placa Arduino al ordenador y abre el IDE de Arduino. Selecciona Arduino Uno en el menú Placa de Herramientas, Programador como USBasp y el puerto COM correcto de la placa.

Paso 3: Comenzaremos cargando el programa Blink. Seleccione el programa blink de los ejemplos y pulse el botón de carga.

Uploading the Blink program to Atmega128 / 328

Ahora puede ver que el LED de la placa de pruebas comienza a parpadear.

4.2 Programación del Atmega128 / 328 utilizando un convertidor USB a serie

Esta es la mejor manera de programar el Atmega128 / 328 si no tienes una placa Arduino.

Paso 1: Configura las conexiones del convertidor USB a serie de la siguiente manera:

Pin RXD de FTDI -> Pin Tx de Atmega128 / 328 (pin 3)

Pin TXD de FTDI -> Pin Rx (pin 2) de Atmega128 / 328

GND -> GND (pin 8)

5v -> Vcc (pin 7)

Algunos módulos FTDI tienen un pin de reinicio, también conocido como pin DTR, que debe conectarse al pin de reinicio (pin 20) del Atmega128 / 328.

Paso 2: Ahora, conecte el FTDI al ordenador y abra el administrador de dispositivos en el panel de control. Verá la sección Puertos, expándala. Si el controlador tiene una marca amarilla delante, es necesario actualizar el controlador del módulo.

Connecting the FTDI with computer and open Device Management in Control Panel

Si no está marcado, anote el número de puerto COM y abra el IDE de Arduino. Vaya a Herramientas -> Puertos -> Seleccione el COM que ha anotado.

Paso 3: Al final, cargamos el programa Blink en nuestra placa de pruebas Arduino. Vaya a Archivo -> Ejemplos -> Conceptos básicos -> Blink. En el menú Placa de Herramientas, seleccione Arduino Uno, Programador como USBasp y el puerto COM correcto de la placa.

A continuación, haz clic en el botón de carga.

(Nota: si su módulo FTDI no tiene un pin DTR, pulse el botón de reinicio de la placa de pruebas y pulse el botón de carga. Si aparece «Compiling sketch…» (Compilando boceto…), manténgalo pulsado hasta que aparezca «Uploading…» (Cargando…) y, a continuación, suelte el botón).

Ahora el programa se cargará correctamente en el chip Arduino Bootloader Atmega128 / 328.

Atmega128 / 328 frente a otros microcontroladores

El Atmega128/328 es un microcontrolador potente y versátil, pero hay otros microcontroladores disponibles que pueden ser más adecuados para determinadas aplicaciones. Por ejemplo, el procesador ARM Cortex-M es más adecuado para aplicaciones que requieren un mayor rendimiento. El procesador ARM también es más eficiente en cuanto al consumo de energía y es más adecuado para aplicaciones de bajo consumo.

El Atmega128 / 328 también es más caro que otros microcontroladores. Sin embargo, es un microcontrolador potente y versátil, y es adecuado para una amplia gama de aplicaciones. Por lo tanto, es importante tener en cuenta los requisitos de la aplicación a la hora de elegir un microcontrolador.

Mejores prácticas para trabajar con Atmega128 / 328

Atmega128 / 328 es un microcontrolador potente y versátil, y existen algunas prácticas recomendadas para trabajar con él. Es importante mantener el microcontrolador en un entorno libre de electricidad estática, ya que esta puede dañarlo. También es importante asegurarse de que el microcontrolador reciba el voltaje correcto y que el regulador de voltaje integrado funcione correctamente. Además, es importante asegurarse de que el oscilador integrado en el chip funcione correctamente, ya que se utiliza para generar la señal del reloj.

También es importante asegurarse de que las herramientas de desarrollo estén actualizadas y que el código de programación se pruebe exhaustivamente antes de utilizarlo en el microcontrolador. Además, es importante cumplir con las normas de seguridad adecuadas cuando se trabaja con el microcontrolador.

Compartir en:

Scroll al inicio

Cotización