Learning Examples | Foundations | Hacking | Links
Por Gian Pablo Vilamil
Este documento explica como cargar un bootloader o gestor de arranque en una Arduino Mini.
Si ya sabes que es un gestor de arranque , por qué quieres cargarlo y estás buscando instrucciones detalladas salta directamente a la sección "Carga el gestor de arranque de la Arduino Mini".
El gestor de arranque es un pequeño programa que se ejecuta al encender la placa Arduino o apretar el botón de reset. Su principal función es esperar a que el entorno de desarrollo de Arduino instalado en tu ordenador envíe un nuevo programa a la placa Arduino. Esto es importante por que, normalmente, necesitas un dispositivo especial para programar la Arduino. El gestor de arranque es lo que te permite programar la Arduino usando, simplemente, un cable USB.
Cuando hablamos de cargar el gestor de arranque en la Arduino, nos referimos a usar un dispositivo especial llamado Programador In-System, o ISP, para reemplazar el programa de gestión de arranque.
Existen cuatro razones fundamentales para ello:
Las Arduinos de tamaño normal tienen un conector de 6 pines para el conexionado con el ISP. La Arduino Mini no dispone de estos pines, en lugar de ello hay que fabricar un cable de conexión. Al margen de esto el procedimiento es el mismo. Con pequeñas diferencias en el procedimiento puedes cargar diferentes configuraciones de proyectos basados en ATmel.
El programa 8 AVR Studio (de Atmel, descarga gratuita).
Necesitas conectar los 6 pines del Arduino Mini (llamados MISO, MOSI, SCK, RESET, POWER y GND) a los 6 pines del ISP. 3 de ellos corresponden a pines E/S digitales, numerados como 11, 12 y 13, los otros 3 son los pines de reseteo, +5v y GND, que probablemente ya hayas utilizado (ten en cuenta que el pin de +5v no es el mismo que el de +9v, este último se utiliza para suministrar voltaje al ISP).
Estos pines en la Arduino son los que hay que conectar con los correspondientes pines del conector de 6 pines del ISP, mostrado a continuación
Ten presente que esta es una vista trasera del conector. Si sujetas el conector mirando hacia afuera de ti y el cable rojo hacia arriba es lo que verás.
Una forma simple de empezar con el conexionado del cable es con 6 trozos de cable fino (de la misma longitud), una pieza de tira de pines macho con 12 pines y dos piezas de tira de pines de 3 pines. Quita el segundo y el quinto pin de la tira larga con unos alicates de punta fina, quita también el noveno y el onceavo. Quita todos lo pines de las 2 secciones pequeñas.
Inserta los cables correspondientes a GND, RESET y POWER (en este orden) en los agujeros dejados por el segundo y el quinto pines. Inserta los cables correspondientes a SCK, MISO y MOSI (en este orden) en los agujeros dejados por los pines 9, 10 y 11. Después toma el otro extremo de los cables y pon MISO, SCK y RESET en una de las piezas de 3 pines. POWER, MOSI y GROUND en la otra pieza de 3 pines. Ten en cuenta que MOSI y RESET se intercambian, por así decirlo.
(Nota del Traductor: en el artículo original en ingles el procedimiento se describe tal cual lo he traducido al Español, también puede verse en las fotos cual es el resultado. Personalmente no entiendo como el autor puede cortar los pines para posteriormente introducir en ellos el cable fino, me parece mas sencillo soldar los cables a los pines y el montaje debe funcionar exactamente igual).
Es buena idea utilizar cola caliente (la que se aplica con pistola) para asegurar todo en su sitio. Es muy fácil hacerlo pinchando los dos segmentos de 3 pines en el cable del ISP (asegúrese de que cada uno está en su sitio) y añadiendo unas gotas de pegamento (cuidado de no pegar el cable del ISP). Te debe quedar un cable parecido a este:
Nótese que los pines de los extremos no tienen conexión, lo he hecho así para que el conector tenga, exactamente, la misma longitud que la Arduino Mini, siendo así más fácil de alinear. Ten en cuenta el orden de los cables relativo al filamento rojo en el cable del programador. Cuando el filamento rojo está en la parte superior y el cable esta en la parte mas alejada del conector, las correspondencias de los colores son blanco (MISO), verde (SCK) y amarillo (RESET). En la imagen siguiente, con el filamento rojo en la parte inferior, los colores de los cables son: negro (GND), azul (MOSI) y rojo (+5v).

Monta tu Arduino Mini sobre una placa entrenadora, como se muestra a continuación (ten en cuenta que tendrás que quitar el LED del pin 13 durante la programación).

Alinea el conector macho de 12 pines con el lateral de la Arduino Mini. Los cables de POWER, RESET y GND deben coincidir con los correspondientes pines en la placa. Debe verse así (el LED se ha quitado):

Visto desde arriba:

Si estás usando un adaptador USB con tu Arduino Mini conéctalo a tu ordenador ahora. Si no lo estas usando conecta la fuente de alimentación que uses. La Arduino debe estar alimentada eléctricamente para que el ISP pueda trabajar.
Conecta el cable USB desde el ISP a tu ordenador. Verás dos LEDs verdes encendidos en el programador. Nota: no debe haber nada conectado a los pines 11, 12 y 13 de la Arduino, esto puede interferir en el trabajo del programador.
A partir de este punto las instrucciones son, exactamente, las mismas que para grabar el gestor de arranque de cualquier otro microcontrolador ATmel168. Puedes usar las instrucciones de esta página o continuar leyendo.
Ahora puedes cargar el gestor de arranque de Arduino utilizando el entorno de desarrollo instalado en tu ordenador. Abre el IDE Arduino en tu ordenador, establece el tipo de placa que estás usando (Arduino Mini), abre el menú "Burn Bootloader" y selecciona tu programador (en este ejemplo el AVRISP MkII).
A diferencia de la programación no es necesario apretar el botón de reseteo. El programador resetea la Arduino por ti. Esto instalará (o restablecerá) el gestor de arranque original. Sin embargo, esto es de poca utilidad a menos que estés intentando reparar el gestor de arranque o que tu Arduino Mini, de alguna manera, te llegara sin uno.
Para instalar un gestor de arranque alternativo necesitas un programa llamado AVR Studio. Puedes descargarlo aquí. Desafortunadamente AVR Studio solo existe para el sistema operativo Windows. Sin embargo puedes utilizar las instrucciones para cargar el gestor de arranque del micro ATmel168 en Mac OS/X.
Ejecutar AVR Studio. Apretar el botón "cancel" para salir de la ventana de entrada.

Pinchar en el botón "con", es un pequeño botón que parece un pequeño chip. Después seleccionar el tipo de ISP que estás utilizando (en este ejemplo AVR ISP MkII).

Aparecerá una nueva ventana como la que se muestra a continuación. Marca los parámetros tal como se muestran en la imagen. En el campo "input HEX file" introduce el fichero que quieres cargar. Este puede ser:

Pulsar el botón "Program". A continuación deberías ver algo de actividad en la ventada de estado. Pulsa "Verify" si quieres asegurarte de que todo ha ido bien. Desconecta el ISP quitando el cable USB del ordenador. Si quieres actuar con seguridad quita la alimentación de tu Arduino. Por último, desconecta el conector del ISP de tu placa entrenadora.
Tu Arduino Mini ya tiene cargado el gestor de arranque!