top of page
Buscar
  • Foto del escritorMiguel Angel López

¿Cómo instalar el Arduino Bootloader?

En algunas ocasiones es posible encontrarnos con placas de desarrollo basadas en la placa Arduino UNO diseñadas por otros fabricantes de hardware, como lo son la tarjeta Metro 328 de Adafruit; la RedBoard de Sparkfun, el Fiuino UNO de Áster, o bien, alguna tarjeta genérica en el mercado, es posible que la tarjeta no pueda ser reconocida correctamente por el Arduino IDE, debido en la mayoría de los casos, a que el Arduino Bootloader no se encuentra correctamente instalado en el microcontrolador ATmega328P, o bien, simplemente el fabricante cometió el error de no instalarlo o simplemente este paso fue omitido durante su construcción.


Recordemos que para el uso del Arduino Bootloader es necesario invertir un pequeño espacio de memoria dedicado al uso del programa, en caso de querer usar toda la memoria flash del microcontrolador, se tendrá que omitir el uso del Bootloader y usar un programador paralelo ISP.



Figura 1.

Mapa de memoria del ATmega328P. Por Arduino.cc


Para la instalación del Arduino Bootlader necesitaremos los siguientes componentes electrónicos:


Figura 2. Lista de componentes necesarios.


Tambien necesitaremos una tarjeta compatible con el Arduino IDE, el modelo no es estrictamente necesario ya que únicamente se necesitan los pines de programación ICSP, para este tutorial nosotros usaremos la tarjeta de desarrollo Fiuino UNO.

Figura 3. Tarjeta de desarrollo Fiuino UNO.


Conectamos nuestra tarjeta Fiuino UNO a nuestra computadora y abrimos nuestro Arduino IDE, una vez en el entorno de desarrollo abrimos el ejemplo llamado 'Arduino ISP'


Figura 4. Ejemplo Arduino ISP.

Archivo > Ejemplos > 11.ArduinoISP > ArduinoISP.


Una vez abierto el sketch en el entorno de desarrollo procedemos a seleccionar nuestra placa como 'Arduino UNO'.


Figura 5. Seleccionamos nuestra tarjeta de desarrollo.

Herramientas > Placa > Arduino AVR Boards > Arduino UNO.


Antes de cargar el programa 'Arduino ISP' vamos a verificar el programador que se usará para cargar el programa, ya que este programa será cargado en nuestra tarjeta Fiuino UNO.


Figura 6. Verificamos que el programador sea el 'AVRISP mkII'.

Herramientas > Progrmador > AVRIPS mkII.


Siendo los pasos anteriores realizados y verificados cargamos el programa 'Arduino ISP' en nuestra tarjeta de desarrollo Fiuino UNO mediante el botón de 'Subir', verifica que el puerto 'COM' sea el mismo al que se encuentra conectada tu tarjeta Fiuino UNO, una vez que nuestro programa esté cargado desconectaremos nuestra tarjeta de la computadora.


Construye tu porgramador paralelo ISP


A continuación construiremos el siguiente circuito para poder utilizar nuestra tarjeta Fiuino UNO como programador ISP compatible con el Arduino IDE.



Figura 7. Diagrama de conexión.


Quemar el Arduino Bootloader mediante el cableado en protoboard puede ser práctico y barato, aunque toma algo de tiempo la construcción de este y en algunos casos debemos verificar que las conexiones estén correctas para evitar fallos en la carga del Bootloader, por otro lado si deseamos cargar más de un microcontrolador ATmega328P, puede resultar muy poco práctico estar quitando y poniendo diferentes microcontroladores en los pines de la protoboard ya que muchas veces es posible dañar los pines del circuito integrado o accidentalmente desconectar algún cable del circuito.


Para este tutorial, nosotros usaremos nuestra Bootloader Shield que es el circuito mínimo de funcionamiento de un microcontrolador ATmega328P o ATmega168P descrito en la Figura 7, al contar con un zócalo ZIF de 28 pines nos facilita el intercambio entre los microcontroladores que se encuentran listos y los que aún no se les ha cargado el Bootloader, de esta manera agilizamos nuestros procesos de manufactura en placas de desarrollo. Las tarjetas Bootloader Shield y Bootloader Plus son completamente compatibles con la mayorías de las tarjetas UNO disponibles en el mercado, siempre y cuando tengan la distribución de pines estándar recomendada por Arduino.

Figura 8, 9 y 10. Conexión entre tarjeta


Una vez construido el circuito como lo muestra la Figura 7 ó usando el Bootloader Shield (también es posible cargar el bootloader mediante el Bootloader Plus), conectamos nuestra tarjeta Fiuino UNO a nuestra PC. Recordemos que para este punto tenemos que tener listos los pasos anteriores:


  • Tener cargado el sketch 'Arduino ISP' en nuestro Fiuino UNO.

  • Construir el circuito de programador ISP en nuestra protoboard ó bien colocar nuestro Bootloader Shield o Bootloader Plus.

  • Tener a la mano nuestro microcontrolador ATmega328P ó ATmega168P para quemarlo con el Bootloader de Arduino.

  • Conectar nuestro Fiuino UNO a nuestra PC.


Una vez revisando los pasos anteriores colocamos nuestro microcontrolador ATmega328P en el espacio indicado por la Figura 7 o bien, en el zócalo ZIF de 28 pines en el sentido que indica la serigrafía de la placa.


A continuación vamos a cambiar nuestro programador, al momento de cargar el scketch de 'Arduino ISP' estábamos usando el programador 'AVRISP mkII', ahora lo cambiaremos por el programador llamado 'Arduino as ISP', de esta manera nuestro microcontrolador ATmega328P embebido en nuestra tarjeta de desarrollo Fiuino UNO actuará como programador ISP, envíando datos de manera paralela a nuestro micrcontrolador objetivo en nuestra protoboard ó en nuestra Bootloader Shield, los datos que manda es un pequeño programa que habilita la programación por medio de comunicación serial UART, esto es el Arduino Bootloader.



Figura 11. Cambio de programador.

Herramientas > Programador > Arduino as ISP.


El siguiente paso es de los más importantes, definir qué tipo de Bootloader quemaremos en el microcontrolador, ya que este paso definirá cómo nuestro Arduino IDE va a programar el microcontrolador ATmega328, es decir, si yo quemo el Bootloader como el Bootloader de un Arduino UNO esto significará que al momento de programar la placa vía serial yo tendré que indicarle al Arduino IDE que yo me encuentro programando una placa UNO, de la misma manera, si mi intención es construir tarjetas tipo NANO, yo tendré que quemar en mis microcontroladores ATmega328 el bootloader del Arduino NANO y así sucesivamente, esto evitará confusiones y fallos a la hora de programar tus tarjetas personalizadas y sobre todo evitá confuciones a la hora de hacerlo.


Un ejemplo palpable y de experiencia personal es que alguna vez llegó a mi un lote de tarjeta genéricas Pro Mini de origen chino y estas no podían ser programadas de ninguna manera, hasta que caímos en cuenta de que todas estaban quemadas con el Bootloader del Arduino Duemilanove, esto causa confusión y sobre todo el tener que volver a cargar el Bootloader correspondiente.


Para nuestro caso usaremos nuestro ATmega328 como un Arduino UNO, por lo tanto seleccionaremos la tarjeta 'Arduino UNO'.



Figura 12. Seleccionamos el bootloader

correspondiente a cómo queremos trabajar nuestro microcontrolador.


Por último procedemos a quemar el bootloader abriendo las Herramientas y seleccionando la opción 'Quemar Bootloader'.



Figura 13. Seleccionamos la opción 'Quemar Bootloader'

cada vez que queramos quemar un microcontrolador nuevo.


En el caso del Bootloader Shield, el led de carga parpadeará cuando se realice la transmisión de datos.

En el caso de haber utilizado una protoboard, podemos visualizar el estado del proceso en el Arduino IDE, en la parte inferior izquierda el IDE nos mostrará los siguientes mensajes.

Figura 13 y 14. Mensajes enviados por


Ahora nuestro microcontrolador ATmega328P tiene el Arduino Bootloader cargado, esto quiere decir que podemos programarlo de manera serial colocándolo en alguna placa de desarrollo como lo es la Fiuino UNO, o con un convertidor USB-UART como es el caso del Programador USB-UART de Áster, con este método podemos construir nuestros propios circuitos en PCB que requieran un microcontrolador programado con el Arduino IDE para poder funcionar sin necesidad de incluir toda la placa de desarrollo, esto es útil para ahorrar espacio y disminuir los costos de un proyecto.


Un dato curioso es que el bootloader del Arduino UNO, Arduino NANO y Arduino Pro Mini son casi similares y casi compatibles, esto se debe a que los tres usan el mismo tipo de microcontrolador ATmega328, simplemente cambia el encapsulado, ambos tienen casi la misma nomenclatura entre los pines del microcontrolador y la PCB, aunque es una excelente práctica quemar el bootloader correspondiente a la tarjeta que se piensa trabajar.


Importante


Una vez que hayas terminado de quemar cuantos microcontroladores desees, es importante volver a cambiar el programador del Arduino IDE, volviendo a seleccionar 'AVRISP mkII', esto nos va a permitir volver a utilizar nuestra tarjeta Fiuino UNO de la manera habitual.


Figura 15. Volvemos a configurar el programador predeterminado.

Herramientas > Programador > AVRISP mkII



Errores comúnes:


  • Mal cableado en el circuito si se usa protoboard

  • Tratar de quemar microcontroladores con terminación 'PB' como 'ATmega328PB'

  • No seleccionar 'Arduino ISP' como programador antes de quemarlo

  • No seleccionar el puerto 'COM' al que estamos conectados

  • No haber cargado previamente el sketch 'ArduinoISP'


Fuentes:


1273 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comments


bottom of page