logo

ATmega328, Arduino, bootloader, arduteka, farnell, attiny, android, impresion 3d


Seguro que en más de una ocasión habéis hecho corto de Arduinos, o bien estabais con un proyecto entre manos que tenía que ser lo más pequeño posible. O, simplemente, necesitabais otro micro pero os echaba para atrás el tener que comprar otro Duemilanove o Uno.

Pues bien, en estas situaciones tal vez lo que más nos convenga sea emplear únicamente el ATMega328, es decir, el microcontrolador sin toda la plataforma de prototipado y demás circuitos adyacentes. Lo que viene siendo la configuración mínima. Pero, a no ser que contéis con un programador externo, previamente necesitaréis grabar el bootloader o gestor de arranque en el circuito. Siempre y cuando hayáis comprado micros vírgenes, claro está: actualmente es habitual encontrar los ATMega con el bootloader ya cargado.

Existen diversos montajes para cargar el gestor de arranque; nosotros nos centraremos en uno de los más sencillos, ya que los componentes “extra” empleados son los que posteriormente necesitaremos para ensamblar nuestro Arduino autónomo.

¿Qué nos hará falta?

  • 1x Arduino Uno/Duemilanove
  • 1x ATMega328P-PU / ATMega328-PU (preferiblemente el primero)
  • 1x Cristal de cuarzo a 16Mhz
  • 2x Condensadores 18-22pF
  • 1x Resistencia 10kΩ
  • 3x Resistencias de 220-330Ω (para los LEDs)
  • 1x Resistencia ~120Ω (110-124Ω, como es un valor no estándar hay que combinar diversas resistencias para obtenerlo. Por ejemplo, una de 100Ω en serie con 5 de 100Ω en paralelo)
  • 1x Condensador 10uF

 

Desde aquí agradecemos a Farnell por facilitarnos los materiales para este proyecto.

Lo primero de todo es cargar en nuestro Arduino el programa ArduinoISP, que viene de serie con el IDE.

Desde hace ya unas cuantas versiones este sketch viene de serie con el IDE.

Una vez se haya completado la subida tan sólo hay que montar el siguiente circuito:

Pincha en la imagen para ampliar; hará falta!


Si todo ha ido bien, al alimentar con USB la placa el LED verde comenzará a “latir”. Ahora llega la parte interesante: cómo grabar el bootloader. Como hemos visto, existen dos modelos de ATMega328 con encapsulado DIP: el ATMega328-PU y el ATMega328P-PU. Arduino emplea estos últimos, cuya única diferencia con los primeros es que cuentan con la tecnología picopower, una funcionalidad que permite ahorrar energía ralentizando la frecuencia de ciertas partes del integrado. En caso de que tengas un 328P-PU, puedes ir directamente al último párrafo. Pero en caso contrario, es preciso modificar un archivo de configuración del entorno de Arduino para “engañarlo” y que piense que se trata del otro modelo de chip.

Para ello, sólo hay que abrir el archivo avrdude.conf, que se encuentra en hardware/tools/avr/etc/ y encontrar hacia la segunda mitad del archivo la línea 9245:

signature = 0x1e 0×95 0x0F;

y cambiarla por ésta (lo que viene siendo reemplazar el 0F por un 14):

signature = 0x1e 0×95 0×14;

Cuando hayas terminado de cargar el bootloader, revierte el cambio que acabamos de hacer, ya que entonces si no lo haces no podrás cargar archivos a tu Arduino. No obstante, tendrás que volver a hacer esto siempre que quieras cargar tu ATMega328-PU. Como curiosidad, si se omite esta parte la consola del entorno nos mostrará el siguiente error:

avrdude: Expected signature for ATMEGA328P is 1E 95 0F
Double check chip, or use -F to override this check.

Ahora ya estamos preparados para cargar el bootloader a nuestro microcontrolador. Algo tan sencillo como seleccionar “Arduino as ISP” en Tools>Programmer, y clicar en Tools>Burn bootloader.

Si todo va bien, se encenderá el LED amarillo y al cabo de un minuto tendremos nuestro ATMega listo para ser programado!

Pablo Murillo. Técnico electrónico apasionado por la tecnología y el mundo de la impresión 3D. Comprometido en difundir el movimiento maker en cualquiera de sus vertientes. Fundador de Arduteka.com Colaborador en Arduino.cc
  1. Pingback: Cargando el bootloader en el ATMega328 | Cosas en General

  2. Juan Antonio Responder

    Con este sistema se puede grabar el bootloader en un atmega 168???
    Gracias.

  3. Iván Responder

    Hola estoy intentando grabar la secuencia de inicio en un atmega 328P-Pu. sin exito :(
    Ya he probado con un cristal de 16Mhz pedido en ebay y sigo sin conseguirlo.
    me sale este error.
    avrdude: stk500_getsync(): not in sync: resp=0×00

  4. Iván Responder

    Buenas.
    Teniendo la rev3 de arduino UNO, con este esquema he conseguido cargar 5 atmega 328P-PU con exito.
    http://arduino.cc/en/uploads/Tutorial/BreadboardAVR.png

    El tutorial lo saque de la pag oficial.
    http://arduino.cc/en/Tutorial/ArduinoToBreadboard
    Gracias¡¡¡

  5. erik fabian Responder

    el circuito esta erroneo, en la parte de la resistencia de 10 k en realivad va a Vcc y en la parte de los cristales

  6. eduardo Responder

    Hola, oye sabes si puedo utilizar un arduino mega r3 en lugar del UNO que utilizaste tu?

    • Pablo Murillo Responder

      Hola, en principio no debería haber problema

      • Jjviton Responder

        Pues yo llevo ya muchas noches intentando y no soy capaz d grabar un 2560, me da error al verificar

        Alguien lo ha conseguido usando como Master un arruino Uno???

  7. peraquepiens Responder

    Hola buenas noches, acabo de grabar con éxito el bootloader a un paperduino con un arduino UNO rev 3 sin problemas con el IDE 1.0.3 de arduino. Os comento esto porque de ninguna de las formas expuestas aquí y en muchos foros había conseguido cargarlo con éxito el montaje es el siguiente y así de simple http://3.bp.blogspot.com/-fZ0JZ5CIG5I/TaXkmccQCuI/AAAAAAAAHtA/_IchZvm1ano/s1600/BootloaderConArduino.png mas lo que se explica arriba. no hacen falta resistencias, no hacen falta, leds, tampoco hay que puentear el reset del arduino como explican en otros foros, nada de nada. Saludos

    • Pablo Murillo Responder

      Hola!

      Gracias por la información.

      Si te parece, puedes comentar tu experiencia en el nuevo foro, así la información quedará disponible para el resto del mundo de una manera organizada. ;)

      http://www.arduteka.com/foro

      Seguro le será muy útil a mucha gente.

      Gracias de nuevo!

      Pablo.

  8. peraquepiens Responder

    Hola Pablo, solo decirte que me he dado de alta en el foro y que expondre ahí mis experiencias con arduino haber si entre todos resolvemos dudas que tengamos, yo por ejemplo tengo muchas y no se encuentra a veces información al respecto o está en ingles, gracias y saludos

  9. ElFabro Responder

    Hola. Que circuito debo utilizar para hacer funcionar el Atmega 328 una vez que ya le cargué el bootloader?
    Muchas gracias y saludos.

  10. Pingback: [Arduino] Grabando bootloader optiboot | Loleando.es – VideoTutoriales

  11. JAVIER Responder

    felicitaciones por el post , muy bueno , mira tengo una pregunta en esta direccion en el web de arduino dice que esto de cargar otro atmega no lo puedes hacer con el arduino uno , de tu experiencia me puedes comentar que tande cierto es esto. de antemano muchas gracias

    http://arduino.cc/en/Tutorial/ArduinoToBreadboard

Déjanos un comentario!

*

captcha *