Ir al contenido principal

Cargar Bootloader usando Arduino Uno como ISP

Vamos a instalarle un Bootloader a un Arduino Pro Mini usando un Arduino Uno como ISP.
Utilizaremos MiniCore que nos va a permitir setear los fuses del Atmega328P para poder hacerlo funcionar a 4Mhz con el oscilador interno del microcontrolador y de esa manera poder bajar la tensión del BOD a 1.8v lo que nos va a permitir operarlo con dos pilas AA.
El MiniCore se puede descargar desde: https://github.com/MCUdude/MiniCore y están explicados todos los pasos detallados para poder instalarlo en el IDE de Arduino. De todos modos los pasos son los siguientes:

Instalación del Gestor de Tarjetas (MiniCore)

  • Abrir el IDE de Arduino
  • Abrir Archivo -> Preferencias
  • Ingresar la siguiente url en Gestor de URLs adicionales de tarjetas:
     https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
    (Si ya hay otra url cargada se puede agregar otra separada por , )
  • Abrir el menú Herramientas -> Tarjeta -> Gestor de Tarjetas


  • Una vez que termina de cargar el listado buscar MiniCore clickear sobre el nombre y después en instalar.
Listo, ya tenemos el MiniCore instalado.

Preparar Arduino Uno como ISP

  • Conectar el Uno a la PC
  • Abrir el IDE de Arduino
  • Seleccionar la placa Arduino Uno desde: Herramientas -> Tarjetas -> Arduino Uno
  • Elegir el puerto correspondiente desde: Herramientas -> Puerto
  • Cargar el "sketch" desde: Archivo -> Ejemplos -> Arduino ISP
  • Cargar el "sketch", una vez terminado el proceso el Arduino Uno ya está listo para ser usado como programador ISP

Cableado de Arduino Uno ISP a Pro Mini

Conectar el Arduino Uno, desconectado para mayor seguridad, al Pro Mini de la siguiente manera:

Uno   Pro Mini
5V (vcc) -------- VCC
GND ----------- GND
Pin 10 ---------- RST
Pin 11 ---------- Pin 11
Pin 12 ---------- Pin 12
Pin 13 ---------- Pin 13

Conexiones entre Arduino UNO y Pro Mini

Una vez realizadas las conexiones volver a enchufar el Uno a la PC por USB, y en el IDE de Arduino seleccionar las siguientes opciones dentro del menú de herramientas:
  • Placa -> MiniCore -> Atmega 328
  • Clock: Internal 4Mhz
  • BOD: BOD 1.8v
  • Variant: 328P / 328P A
  • Programador: Arduino as ISP (MiniCore)

Una vez seleccionadas todas las opciones apretar "Quemar Bootloader".
Si todo salió bien, tendremos nuestro Arduino Pro Mini listo para funcionar a 4Mhz y con una tensión mayor a 1.8v.

Cableado de Arduino Uno ISP a Atmega 328P

De la misma manera se puede programar un MCU 328P con un cableado mínimo para después incorporarlo a alguno de nuestros proyectos, el cableado es exactamente el mismo al utilizado en el caso anterior y si el integrado no ha sido programado anteriormente para usar un oscilador externo, lo podemos programar directamente sin la necesidad de ningún componente externo adicional.

Existe un instructivo detallado con diversas opciones en: https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoToBreadboard
Y un detalle de los pines del Atmega328P se puede ver en ATmega 328P Pinout detallado

En resumen:

UNO   ATmega 328P
5V (vcc) -------- VCC (Patas 7 y 20 Avcc)
GND ----------- GND (Patas 8 y 22)
Pin 10 ---------- RST (Pata 1)
Pin 11 ---------- Pin 11 (Pata 17)
Pin 12 ---------- Pin 12 Pata 18)
Pin 13 ---------- Pin 13 (Pata 19)

Opcionalmente se puede agregar un Led en el Pin 13 (Pata 19 del integrado) junto con una resistencia de 330 Ohm para poder visualizar la programación.

Conexión de Arduino UNO a ATmega328P

Y siguiendo los pasos anteriores podremos quemar el Bootloader en el integrado que tenemos conectado al UNO.

Se puede verificar el resultado obtenido con los pasos del siguiente artículo:

Comentarios

Entradas populares de este blog

Leer fuses de Arduino Pro Mini o Atmega 328P con avrdude

Vamos a ver como están seteados los fuses de un ATMega328P o de un Arduino Pro Mini, usando un UNO como ISP y el software de linea de comandos avrdude, el cual viene incluido con el Arduino IDE o se puede descargar una versión desde:  https://github.com/avrdudes/avrdude/ Vamos a conectar el UNO al Pro Mini o ATmega328P siguiendo los pasos del artículo anterior:  Cargar Bootloader usando Arduino Uno como ISP Una vez conectado y el UNO enchufado a la PC por USB vamos a abrir una línea de comandos en Windows. Nos vamos a situar en la ubicación en donde tengamos el avrdude y vamos a ejecutar el siguiente comando: avrdude -P com6 -b 19200 -c stk500v1 -p m328p -v avrdude es el nombre del programa. -P es el parámetro que nos permite especificar el puerto en mi caso com6 , reemplazarlo por el que corresponda. -b es el baudrate que para poder leer los datos del mcu tiene que estar puesto en 19200 , de otro modo no va a funcionar. -c es para indicar el programador en este caso para ...

ATmega 328P Pinout detallado

Pinout detallado del ATmega328P Click sobre la imagen para agrandar