10.11.10

Quemar Bootloader de Atmega168 de Arduino

Hoy revisaremos como cargar nuevamente el Bootloader a nuestro Atmega168 de Arduino. Este problema puede darse debido a que el bootloader que viene de fabrica se haya dañado (no cargan los programas con el IDE) o por que hemos adquirido un nuevo chip para nuestro Arduino

Primero debemos crear el conexionado para llegar desde el USB hasta el conector ICSP. Debemos primero soldar un conector de 4 pines al espacio al lado de X3 escrito FT232RL en el PCB Diecimila. (Estas almohadillas están conectados a las clavijas de control de FT232RL.)
Removemos la soldadura para insertar el conector y lo soldamos por debajo

 
Descargamos los siguientes archivos a nuestro PC (Windows):

 Instalación 

avrdude-serjtag
 
Extrae serjtag-03.zip.
Copia "avrdude-serjtag" dentro de la carpeta "C:\Archivos de Programa" .

 Eliminar la carpeta "src" en la carpeta "avrdude-serjtag".

avrdude.conf avrdude.conf

Sobre escribe el archivo "avrdude.conf" en la carpeta "C: \ Archivos de programa \ avrdude-serjtag \ binario”. Con el que se obtiene al presionar el link anterior
Esta modificación "avrdude.conf" tienen ya creadas las secuencias de comandos de creación de "FTDI BitBang AVR-Writer" para Diecimila .

#arduino diecimila
programmer
  id="diecimila";
  desc = "FT232R Synchronous BitBang";
  type = ft245r;
  miso = 3;  # CTS X3(1)
  sck = 5;  # DSR X3(2)
  mosi = 6;  # DCD X3(3)
  reset = 7;  # RI X3(4)
;


avrdude-GUI (yuki-lab.jp Version)

Extrae avrdude-GUI-1.0.5.zip.
Copia la carpeta "avrdude-GUI-1.0.5" en la carpeta "C: \ Archivos de programa" .
Recuerda que avrdude-GUI requiere Microsoft .NET Framework 2.0.

Configuración
Abre la carpeta "C: \ Archivos de programa \ avrdude-GUI-1.0.5". y haz doble clic en el "avrdude-GUI.exe" para ejecutarlo.


La configuracion del  "GUI avrdude-" es la siguiente del I al IV.



(i) avrdude.exe
Haz clic en el icono . . .
Abrir la carpeta "C: \ Archivos de programa \ avrdude-serjtag \ binario".
Selecciona "avrdude.exe", y haz clic en el boton Abrir.

(ii)Programmer area.
Abrir y seleccionar "FT232R Synchronous BitBang (diecimila)".

(iii)Device
Haz clic en el icono. . .
Selecciona "ATMega168 (M168)".

(iv)Command line Option area
Haz clic en el cuadro de texto y escribe a continuación.

-P ft0 -B 4800

"-P ft0" es la configuración de puertos Bitbang y "B-4800" es el modo de configuración lenta del reloj.

Atención!
Debes dejar la zona de Puerto en blanco.


Cableado
Conecte los terminales del X3 con los pines ICSP por medio de cables como muestra la imagen siguiente



Conecta Diecimila al PC mediante un cable USB.
Ejecuta el avrdude-GUI.

Leer el bits del fusible.

Haz clic en el botón [Leer] de la zona de fusibles.  



Si el fusible bits se leen, se está trabajando.
Cuando se muestra un error, no funciona confirma el cableado y la puesta del avrdude-GUI.

Ejecutar por el modo de reloj rápido.
Eliminar "B-4800" de la zona de la línea de comandos opción. 
  Leer el fusible bits otra vez.
Si los bits del fusible se leen, se está trabajando en modo de reloj rápido.

Quemar el Bootloader.

Establecer el nuevo chip ATMega168. (en caso de querer quemar un nuevo chip, en caso de querer volver a cargar el bootloader saltar este paso)

  • Desconecta el cable USB de la Diecimila.
  • Retira el ATMega168 chip de la Deicimila-PCB.
  • Establecer el nuevo chip en el Decimila-PCB.
  •  Conecte el cable USB a la Diecimila nuevo.

Escribir el fusible-Bits.
Ajuste el modo de reloj lento.
Escribe "B-4800" al texto de Command line Option area
.
Atención! Un chip virgen no se puede ejecutar por el modo de reloj rápido.

Borrar
(1) Haz clic en el botón [Chip Erase].
(2) Haz clic en el botón [Read] de la zona de bits de bloqueo. El valor de bit de bloqueo que se debe mostrar es 3F.


Escribir el fusible-Bits.
(1) Coloca el bits del fusible de la siguiente manera. (Estos valores son sólo para ATMega168.)
hfuse = DD
lfuse = FF
efuse = 00
(2) Haz clic en el boton [Write] de la zona de fusibles.

Cambiar a modo de reloj rápido.
Eliminar "B-4800", la línea de comandos área opción y leer el fusible-Bits.
Cuando no lee los bits de fusibles, probablemente, había un error al establecer el fusible-Bits. Volver al modo de reloj lento. Y escribir el fusible-Bits como corresponde.
Preparación del Bootloader con el archivo hex.
Haga clic en el icono ... del área de Flash.
Abre la carpeta "C:\Program Files\arduino-0013\hardware\bootloaders\atmega168"
Seleccione "ATmegaBOOT_168_diecimila.hex", y haga clic en el boton Abrir

Quemado

Haz clic en el boton [Erase Write Verify] de la zona de Flash.
Espera hasta que el trabajo estará terminado.

Escribir el bit de bloqueo.
(1) Ajusta el bloqueo de bits de la siguiente manera.

Lock = 0F Bloqueo = 0F

(2) Writing
Haz clic en el [Write] botón de bloqueo de la zona de bits.

Con esto tenemos quemado el bootloader en nuestro Atmega168
Download avrdude.conf ( Update: it's included chip-parameter of ATmega328P) Descargar avrdude.conf (Actualización: que es incluido chip parámetro de ATmega328P)
Use these fuse-bits,lock-bit and .hex file as follows. Utilice estos fusibles bits, bits y bloqueo. Hex de la siguiente manera. (according to arduino-0013\hardware\board.txt) (De acuerdo con arduino-0013 \ hardware \ board.txt)
hfuse = DA hfuse = DA
lfuse = FF lfuse = FF
efuse = 05 eFUSE = 05
unlock = 3F desbloquear = 3F
lock = 0F bloqueo = 0F
bootloader .hex file gestor de arranque. hex
arduino-0013(or 0014)\hardware\bootloaders\atmega168\ATmegaBOOT_168_atmega328.hex arduino-0013 (o 0014) \ hardware \ gestores de arranque \ ATMega168 \ ATmegaBOOT_168_atmega328.hex

Confirmación.
Desconecta el cable USB del arduino Diecimila.
Retira los cables de ICSP y X3.
Conecta el cable USB para Diecimila nuevamente.
Pulse el botón de reinicio de Diecimila.
Ejecuta el Arudino-IDE
Carga el ejemplo "Blink". Y se llevará a cabo.