Sei sulla pagina 1di 4

Reinstalando El Bootloader De Tu Arduino

Cmo reprogramar el bootloader en un Arduino Uno?

Lo que necesitas (Opcin 1):

Tu Arduino Uno (para programar)


Un Arduino Funcional.

Algunos cables para el interconectado.

Lo que necesitas (Opcin 2):

Tu Arduino Uno (para programar).


Un Programador AVR como el AVR Pocket Programmer o el AVR-ISP500.

Un Cable para Programar el AVR (el pocket programmer viene con uno).

Lo que necesitas (software):

El Arduino Optiboot Bootloader


WinAVR (Windows) o Crosspack for AVR Development (Mac) - Este software
contiene el avrdude, el cual es necesario! (Nota: podras obtenerlo bajndolo o
usando una copia del avrdude que viene con el Arduino, sin embargo, instalando la
versin con el WinAVR, ste agregar las rutas a Windows Environment Variables lo
cual lo hace mucho ms fcil de usar por medio de comandos (prompt).

Arduino 0018 (o ms nuevo) si es que ests usando la opcin 1.

Programando el Arduino para que funcione como programador


(para la Opcin 1)

Primero debemos tener el Arduino programado para trabajar como programador. Esto es muy
simple, con el Arduino IDE, abrir el ArduinoISP realizando lo siguiente:

File->Examples->ArduinoISP.

Lo anterior har que el Arduino acte como un programador ISP. Selecciona tu tarjeta en men
de herramientas (Tools), y luego asegrate de seleccionar el puerto COM correcto (anota el
puerto seleccionado, porque se volver a usar ms adelante). Luego slo sube el programa al
Arduino.

Por ahora, el Arduino se program para funcionar como un programador ISP, y se encuentra
conectado al computador por medio de un cable USB. Lo siguiente que necesitamos es que este
Arduino se conecte a la tarjeta objetivo (la que queremos reinstalar el Bootloader), para luego
poder cargar los archivos *.HEX a esta tarjeta.

Conexionado de tu Tarjeta

Arduino Programador AVR Arduino al que se le reinstalar el bootloader


VCC / 5V 5V VCC / Pin2
GND GND GND / Pin 6
MOSI / D11 MOSI MOSI / Pin 4
MISO / D12 MISO MISO / Pin 1
SCK / D13 SCK SCK / Pin 3
D10 RESET RESET / Pin 5
Nota: Puedes usar el cable que viene con el programador. El lado que se conecta al Pocket
Programmer slo se puede conectar de una forma. El lado que se conecta al Arduino va con la
muesca de frente al botn Reset.

Programando la Tarjeta a Reinstalar

Lo nico que queda por hacer es enviar el archivo *.hex desde el computador al Arduino
Programador (el que se encuentra conectado al PC) para que ste pueda luego pasarle el
programa al Arduino objetivo (al que se le reinstalar el Bootloader). AVRdude es un programa
incluido con WinAVR (o Crosspack) que puede enviar un archivo *.hex a un programador ISP.
Una vez que tengas el AVRdude instalado (va WinAVR o Crosspack) slo necesitas un comando
para llevar el archivo *.hex a la tarjeta objetivo. Instalar este programa es simple, slo sigue las
indicaciones e instala el programa usando los valores por defecto.

AVRdude en un programa que funciona por lnea de comando, por lo que debes abrir la lnea de
comandos de Windows (Inicio-Ejecutar- "cmd") para poder usarlo. Una vez abierto el "cmd",
escribe "avrdude" y presiona Enter. Si la instalacin est correcta entonces se mostrar una lista
de opciones disponibles. Con esto estamos listos para enviar comandos que programarn la
tarjeta. Comienza por dirigirte hacia el directorio en el cual se encuentra el archivo *.hex.

Primero vamos a configurar los Fuse Bits (bits de memoria que segn su valor, 0 o 1,
permiten configurar a muy bajo nivel un microcontrolador, el cual corresponde en este caso al
chip que controla el Arduino, un ATMega328). Te permiten controlar cosas como si vas a usar
o no un reloj externo, la velocidad del reloj interno, habilitar el Reset externo, y as muchas
otras opciones las cuales aparecen detalladas en la hoja de datos del chip. Como una forma de
asegurarse del correcto funcionamiento del chip, se van a configurar todos los fuse bits de
ste.

Opcin 1: avrdude -P comport -b 19200 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U


hfuse:w:0xD6:m -U lfuse:w:0xFF:m
Opcin 2: avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m
-U lfuse:w:0xFF:m

Ahora ingresa el comando, reemplazando comport (com5 por ejemplo) por el puerto COM al
cual tu Arduino fue conectado (para la opcin 1), y hexfilename por el nombre de tu archivo.
No olvides que el comando es sensible a maysculas y minsculas, por lo que ten cuidado al
escribir o algn error podra ocurrir. El comando utiliza 7 parmetros: -P es el puerto usado, -b
es el baudrate, -c es el tipo de programador, -p es el microprocesador que est siendo
programado, y -v le dice al Avrdude que utilice una salida verbal, es decir, para cada respuesta
de un comando o algn error, entonces se mostrar la descripcin del error en vez de slo el
cdigo, lo cual es til si una persona est viendo la salida y no un programa. El resto indica: -e
le dice al Avrdude que borre el chip antes de programarlo, y -U le dice al Avrdude dnde colocar
el archivo *.hex. Adems escribimos los Lock Bits en tu chip. Estos bits son similares a los Fuse
Bits, con la excepcin de que los Lock Bits controlan la seguridad de acceso en el chip. En este
caso esto es importante, ya que evita que se sobreescriba accidentalmente en el Bootloader al
instalar por ejemplo un programa demasiado grande.

Opcin 1: avrdude -P comport -b 19200 -c avrisp -p m328p -v -e -U flash:w:hexfilename.hex


-U lock:w:0x0F:m
Opcin 2: avrdude -b19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U
lock:w:0x0F:m

Nota: recuerda que Arduino es slo una tarjeta de desarrollo AVR que ejecuta el Arduino
Bootloader. Por lo tanto, puedes usar este mtodo para cargar cualquier archivo *.hex a un chip
ATMega328. Para ms informacin ingresa a este tutorial para usar tu Arduino para programar
un AVR. (http://www.sparkfun.com/tutorials/200)

Nota: tambin puedes saltar la opcin de usar la lnea de comandos de Windows y usar el
Arduino IDE para reprogramar el Bootloader. Asegrate de tener la tarjeta correcta y el puerto
seleccionado, luego dirgete a Tools-Burn Bootloader-(selecciona tu ISP) y selecciona
"w/USBtinyISP" para el Pocket Programmer. La desventaja de usar este mtodo es que no
tienes ningn control sobre cual Bootloader ests cargando en tu tarjeta.

Potrebbero piacerti anche