Arduino desde la línea de comando de Linux y USBasp

Instrucciones

1.- ARDUINO-MK

Se usa para compilar en la línea de comandos.

Instalarlo junto con arduino-core y avr-dude con apt-get, o instalarlos todos desde la tienda de Linux Mint.

2.- Makefile

Crear un Makefile en el directorio raíz del proyecto:

ARDUINO_DIR = /usr/share/arduino
BOARD_TAG = uno
ARDUINO_PORT = /dev/ttyACM*
ARDUINO_LIBS =
include /usr/share/arduino/Arduino.mk

3.- Código fuente

Escribir un código de prueba; nombrarlo, por ejemplo, prueba.cpp:

#include <Arduino.h>

const int LED_PIN = 13;

int main(void)
{
 init();

  pinMode(LED_PIN, OUTPUT);

  while (1)
  {

    digitalWrite(LED_PIN, HIGH);
    delay(100);
    digitalWrite(LED_PIN, LOW);
    delay(900);
    }

    return 0;
}

4.- Construir la solución

En la consola ejecutar:

make

Con esto se creará un directorio con el nombre build-uno, y dentro de este habrán varios archivos.

ATENCIÓN: el archivo que se subirá al chip es el que tiene extensión .hex, pero por alguna razón en la construcción se le cambia el nombre a algo como:

prueba_atmega328.hex

5.- USBasp

Para subir el .hex al chip se debe conectar el USBasp al chip y a la compu, alimentar con 5V al chip, hacer un reset por si acaso, y ejecutar el siguiente comando:

avrdude -p m328p -P usb -c USBasp -e -U flash:w:./build-uno/prueba_atmega328.hex -Ulock:w:0x3F:m -Uefuse:w:0xfd:m -Uhfuse:w:0xde:m -Ulfuse:w:0xff:m -C/usr/share/arduino/hardware/tools/avrdude.conf

ATENCIÓN: En el caso del “efuse” hay una situación extraña, por lo que si se usa 0x05 se obtendrá un error. Sin embargo, 0xfd es lo mismo que 0x05 por que solamente se usan los 3 bits menos significativos del registro de dicho fusible.

NOTA: Los drivers de USBasp ya vienen con Linux.

Infografía

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s