domingo, 1 de abril de 2018

Usar AVRDUDE para cargar archivo .HEX en Arduino

CONFIGURACION DEL IDE ARDUINO


Existen ocasiones en las que no queremos usar el IDE oficial de Arduino, o queremos aprender a programar en otro lenguaje ya sea Ensamblador o Basic. Con lo cual podremos entender mas a fondo cómo funciona un microcontrolador internamente o queramos en un futuro usar otras referencias de microcontroladores que no sean soportadas por la plataforma de Arduino como el PIC de Microchip.
Lo que primero debemos aprender es como usar el AVRDUDE para cargar cualquier archivo .HEX en nuestro Arduino usando simplemente linea de comandos (CMD).

PASO 1. CONFIGURAR IDE ARDUINO


Lo primero que tenemos que configurar es el IDE de Arduino para ver todos los mensajes mientras compilamos y cargamos un programa en el microcontrolador. Esto lo hacemos en el menu de preferencias, donde seleccionaremos las dos casillas para mostrar salida detallada al compilar y subir.

PASO 3. COMPILAR


Procedemos a compilar  nuestro programa. En este caso yo estoy utilizando el Arduino Leonardo, conectado al COM7.

PASO 4. SUBIR EL PROGRAMA


Procedemos a subir el programa a nuestra tarjeta Arduino Leonardo. Como se puede observar en el administrador de dispositivos, nuestra tarjeta aparece conectada al COM7, pero durante el proceso de cargue de programa el puerto COM7 cambia al COM8. Este es el puerto que el bootloader del Arduino usa para su programación. Si presionamos el boton de reset mirando el administrador de dispositvos tambien veremos este cambio de puerto COM7 a COM8.

PASO 5. COPIAR COMANDO AVRDUDE


Copiar la linea de comando que usa el AVRDUDE para subir el archivo .HEX generado durante la compilación.

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM8 -b57600 -D -Uflash:w:C:\Users\USER\AppData\Local\Temp\arduino_build_642117/Blink_Test.ino.hex:i 
Como se puede ver, el IDE de arduino hace uso de otro software AVRDUDE para cargar el programa en el microcontrolador que ya tiene previamente cargado el bootloader. Pero el archivo .HEX no se guarda en la carpeta del proyecto sino que se guarda en una carpeta temporal.

PASO 6. GENERAR ARCHIVO .HEX




Para generar el archivo .HEX mediante el IDE de Arduino, lo hacemos en el menu Programa/Exportar Binarios compilados, el cual genera dos archivos con extensiones .HEX, uno con bootloader y otro sin el bootloader como indica el nombre del archivo. Nosotros usaremos el .HEX sin el bootloader.

PASO 7. CARGAR ARCHIVO .HEX MEDIANTE LINEA DE COMANDOS (CMD)


Para cargar nuestro .hex mediante lina de comandos simplemente debemos copiar el comando del AVRDUDE que previamente copiamos pero agregando las comillas a las rutas de ubicación:

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" -C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega32u4 -cavr109 -PCOM8 -b57600 -D -Uflash:w:"C:\Users\USER\Downloads\Arduino\Blink_Test\Blink_Test.ino.leonardo.hex":i
Antes de ejecutar este comando debemos entrar en el modo de programación, para hacer esto, simplemente presionamos el botón reset de nuestra tarjeta para que inicie la rutina de bootloader y una ves este en modo bootloader ejecutamos el comando para programar nuestro microcontrolador.

Como se puede ver es muy sencillo cargar cualquier archivo .hex mediante linea de comandos. Ahora si podremos generar nuestro código con cualquier otro lenguaje o IDE diferente al Arduino IDE.








3 comentarios:

  1. hola tengo un problemilla no se si me podrias ayudar

    ResponderEliminar
  2. estoy buscando la opcion de subir un archivo hex a mi placa uno como si ejecutase un programa es decir como si abriese un programa.
    no se si me entiendes doble click en un icono y ya me podrias ayudar

    ResponderEliminar
  3. Me salvaste el día. Saludos, abrozo desde Carabobo, Venezuela.

    ResponderEliminar