ZUM-bootloader

En esta entrada se explica cómo utilizar una placa ZUM BT-328 como programador ISP para poder cargar el bootloader en el microcontrolador de otra ZUM BT-328.

Componentes necesarios:

  • 2x Placas ZUM BT-328
  • 6x Cables unipolares para conexión entre placas
  • IDE de Arduino
  • Cable USB para conexión placa-ordenador

PASO 0: Forma sencilla de preparar el bootloader.

La placa ZUM BT-328 tiene un bootloader especial, no está incluido entre los básicos que vienen con el programa Arduino. Lo primero que debes hacer es descargar el archivo bootloader en formato .hex siguiente: Bootloader_ZumBT328.hex

Puedes cargar este bootloader mediante comandos avrdude, pero si nunca has utilizado comandos en la consola de tu sistema operativo puedes hacer un pequeño intercambio de archivos para poder cargarlo de forma sencilla. Este “truco” consiste en colocar el bootloader que acabas de descargar en una carpeta en concreto del programa Arduino.

Entra en la carpeta donde está instalado Arduino IDE y accede a la siguiente dirección: hardware/arduino/avr/bootloaders/bt. Verás que hay unos archivos como los siguientes:

captura_carpeta_arduino

Renombra el bootloader de la ZUM BT-328 “bootloader_ZumBT328.hex” por “ATmegaBOOT_168_atmega328_bt.hex” y pegarlo en la carpeta que acabamos de abrir, sobreescribiendo el anterior que tenía ese mismo nombre.

PASO 1: Configurar la placa programadora (A) como programador ISP.

Este paso consiste en cargar un programa base en la placa programadora (A), en concreto el que se llama “ArduinoISP.ino”. Conecta esta primera placa (A) al ordenador con el cable USB y abre Arduino IDE, seleccionando el puerto(Tools/Port: …) y tipo de placa (Tools/Board: Arduino BT y también Processor: ATmega328)

El programa ArduinoISP.ino puedes encontrarlo en la pestaña de Ejemplos de Arduino IDE o bien puedes descargarlo al final de este post.

PASO 2: Conectar ambas placas entre sí

Una vez hayas cargado el programa, conecta ambas placas ZUM BT-328 como indica en el siguiente esquema:

placa_ZUM_2

Placa Programadora (A) Placa a Programar (B)
Pin 10 RESET
Pin 11 Pin 11
Pin 12 Pin 12
Pin 13 Pin 13
5V 5V
GND GND

 

PASO 3: Configura parámetros previos

Vuelve a conectar el cable USB a la placa programadora (A). Y configura los siguientes parámetros en ArduinoIDE:

– Selecciona el puerto en Tools/Port

– Selecciona la Placa en Tools/Board: Arduino BT y Processor: ATmega328. Ésta debe corresponder a la placa que queremos programar (B).

– Selecciona el programador con Tools/Programmer: Arduino as ISP.

PASO 4: Quemar Bootloader

Pulsa sobre Tools/Burn Bootloader


Consejo:
Si se muestran errores al cargar el bootloader, prueba a reiniciar varias veces ArduinoIDE hasta que reconozca nuestro archivo .hex modificado.

Referencias:
http://arduino.cc/es/Tutorial/ArduinoISP

3 comentarios

  1. Bueno dias anita,

    he seguido el tutorial

    pero me da il siguiente error al intentar car el bootloader

    cual puede ser el problema ?

    gracias

     

    Arduino:1.6.6 (Mac OS X), Placa:”Arduino BT, ATmega328″

    /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -P/dev/cu.usbserial-A904DIJ8 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m

    avrdude: Version 6.0.1, compiled on Apr 14 2015 at 16:30:25
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is “/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf”
    User configuration file is “/Users/antoniopeteira/.avrduderc”
    User configuration file does not exist or is not a regular file, skipping

    Using Port : /dev/cu.usbserial-A904DIJ8
    Using Programmer : stk500v1
    Overriding Baud Rate : 19200
    AVR Part : ATmega328P
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
    flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
    lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : STK500
    Description : Atmel STK500 Version 1.x firmware
    Hardware Version: 2
    Firmware Version: 1.16
    Vtarget : 0.0 V
    Varef : 0.0 V
    Oscillator : Off
    SCK period : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.05s

    avrdude: Device signature = 0x1e950f
    avrdude: erasing chip
    avrdude: reading input file “0x3F”
    avrdude: writing lock (1 bytes):

    Writing | ***failed;
    ################################################## | 100% 0.13s

    avrdude: 1 bytes of lock written
    avrdude: verifying lock memory against 0x3F:
    avrdude: load data lock data from input file 0x3F:
    avrdude: input file 0x3F contains 1 bytes
    avrdude: reading on-chip lock data:

    Error quemando bootloader
    Reading | ################################################## | 100% 0.02s

    avrdude: verifying …
    avrdude: verification error, first mismatch at byte 0x0000
    0x00 != 0x3f
    avrdude: verification error; content mismatch

    avrdude done. Thank you.

    Este informe podría tener más información con
    “Mostrar salida detallada durante la compilación”
    activala desde Archivo > Preferencias

  2. Primero quiero felicitaros por vuestra labor y vuestra atención especial al mundo educativo.
    Tenéis buenos tutoriales y los kits que vendéis están bastante bien y a un precio razonable.

    Ahora el motivo de que escriba mi comentario:
    Compré hace un tiempo dos Zum Core. A la hora de usarlos no me funcionaban, tuve que indagar, seguir otros tutoriales de vuestro sitio, … y nada… Rebuscar por la red hasta encontrar las quejas de otro usuario e informando que hay placas que se han distribuido sin bootloader. En fin, no me lo podía imaginar, uno siempre piensa que el fallo lo comete uno. Resultado: he perdido mucho tiempo.
    Di con esta página, así que seguí las instrucciones. Parecía que todo había ido bien pero las placas seguían sin funcionar.
    Sigo rebuscando por la red y llego a un comentario de AParra en un foro en el que comenta que para comprobar si el bootloader está bien instalado, al resetear la placa el led del pin 13 parpadea dos veces. ¿No podríais incluir este “minúsculo” detalle en el artículo?.
    Por lo menos sé gracias a AParra que algo ha fallado.
    Al final he solucionado mi problema reinstalando el entorno de Arduino a una versión más moderna y por lo menos ya puedo usar mis tarjetas.
    3º A pesar de mi cabreo, sigo considerando que hacéis una gran labor y sigo recomendando los kits de BQ a otros profesores.

    Otro comentario que no viene a cuento pero que considero muy importante:
    Para BQ debería ser prioritario que el entorno BitBloq funcione en cualquier entorno, Con la proliferación de tablets y con el uso de linux en muchos centros docentes debería ser así.

    Saludos

    Daniel Sancho
    —–
    Usuario de Linux

    1. I think I needed this information but it is not in English and does not appear elsewhere!!!

Los comentarios están cerrados.