Cómo programar un AVR (arduino) con otro Arduino: 7 pasos
Cómo programar un AVR (arduino) con otro Arduino: 7 pasos

Video: Cómo programar un AVR (arduino) con otro Arduino: 7 pasos

Video: Cómo programar un AVR (arduino) con otro Arduino: 7 pasos
Video: ARDUINO TIPS #10: PROGRAMACIÓN ISP - ICSP - PROGRAMAR UN ARDUINO CON OTRO ARDUINO 2025, Enero
Anonim

Este instructables es útil si:

* tienes tu arduino con atmega168 y compraste un atmega328 en tu tienda de electrónica local. No tiene un gestor de arranque arduino * que desea hacer un proyecto que no use arduino, solo un chip AVR normal (como el USBTinyISP), tiene un attiny2313 / attiny48 limpio, etc., en el que desea grabar firmware. Normalmente, tendría que tener un ISP (Programador en el sistema) como USBTinyISP para programar su nuevo chip. Teniendo el arduino puedes enseñarle a ser programador gracias a un gran trabajo realizado por Randall Bohn. Creó Mega-ISP, un boceto arduino que funciona como un programador.

Paso 1: ¿Qué necesitas?

* un Arduino en funcionamiento (o un clon - estoy usando BBB - BareBonesBoard y un RBBB - RealBareBonesBoard de ModernDevices) * un chip que desea programar (probado con atmega8, atmega168, atmega368, attiny2313, attiny13) * una placa de pruebas o una placa con encabezado ISP * 3 leds + 3 resistencias * cables de placa

Paso 2: hacer el programador Mega-isp en una placa de pruebas

Hay dos formas de conectar tu Arduino para programar un chip.

Puede conectar su chip avr a una placa de prueba y conectar 5v y GND a los pines respectivos (¡verifique la hoja de datos!) + Una resistencia pullup para restablecer y conectar los pines de su arduino al chip. Estas son las líneas en Arduino y su función 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) O puede hacer un encabezado ISP de 2x3 pines que puede conectar a una placa que proporciona una (otra placa arduino). El pinout para el encabezado del ISP está en la tercera imagen. Hay 3 leds para indicar el estado del programador. pin 9 - led azul - es el latido del programador. pin 8 - led rojo - indica un error pin 7 - led verde - indica que la programación se está llevando a cabo (era perezoso, así que no coincidí con los colores en mi configuración) Aquí están los dibujos hechos en Fritzing También puede hacer un Escudo MEGA-isp. Yaroslav Osadchyy diseñó el escudo en águila. Puede obtener los archivos del águila en su sitio:

Paso 3: carga del boceto

Descargue el boceto del código de google mega-isp (avrisp.03.zip en el momento de escribir este artículo). Desempaquete y ejecute arduino ide y abra avrisp.pde. Súbelo a tu placa arduino. El LED de latido debería empezar a latir.

Paso 4: usar con Avrdude

Para usar con avrdude (y todas las GUI que lo usan) debe seleccionar el programador 'avrisp'. la tasa de bits más segura es 19200.

Para probar su nuevo atmega168 desde la línea de comandos, intente: $ avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 / dev / USB0 es el puerto que arduino está conectado a mi caja de Linux (el suyo puede ser com5). Esto se puede verificar en arduino IDE en Herramientas -> Puerto serie. Debería obtener: [kabturek @ hal-9000 ~] # avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 avrdude: dispositivo AVR inicializado y listo para aceptar instrucciones Lectura | ############################################### | 100% 0.13s avrdude: Firma del dispositivo = 0x1e9406 avrdude: safemode: Fusibles OK avrdude hecho. Gracias. Eso significa que todo está bien. Si recibe errores, verifique el último paso.

Paso 5: Grabar el firmware USBtinyISP en un Attiny2313

El USBTinyISP es un gran programador de LadyAda que es realmente barato: 22 $. Tenía un attiny2313 de repuesto y algunas piezas, así que decidí hacer uno yo mismo. Si no tiene ninguna experiencia en la fabricación de PCB, le aconsejo que compre el kit porque es de mayor calidad de la que puede hacer usted mismo:). Al menos compre el PCB si quiere construir uno. Puede obtenerlo de Adafruit. Conecta el ATtiny2313 En la última imagen puedes ver el attiny2313 con los pines usados para ISP en rojo. La imagen es del tutorial avr de LadyAda. Grabación del firmware: desempaquete el firmware USBTinyISP. Vaya al directorio spi y ejecute $ avrdude -p pt2313 -P / dev / ttyUSB0 -c avrisp -b 19200 para verificar si todo está bien con el chip. Ahora configure los fusibles: $ avrdude -P / dev / ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Ahora debe conectar el oscilador externo de 12 mhz al chip. Y grabe el firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P / dev / ttyUSB0 -c avrisp -b 19200 Voila. Su attiny2313 tiene el firmware USBTinyISP.

Paso 6: Grabar el cargador de arranque Arduino

Conectando Hice un poco de trampa porque usé un RBBB para simplificar las conexiones. El esquema está en la imagen n. ° 2. Si usa 2 arduinos, use la imagen n. ° 3 y conecte el pin ISP al ICSP 2x3header en el segundo arduino (esclavo). Solo conecte la alimentación USB a la primera placa. La forma de la GUI Esto es un poco complicado porque no puede simplemente usar Herramientas-> Grabar cargador de arranque -> con AVR ISP porque la velocidad predeterminada es demasiado grande para mega-isp. Encuentre avrdude.conf que viene con arduino IDE (en arduino / hardware / tools / avrdude.conf) y cambie el límite para el programador avrisp de 115200 a 19200 (alrededor de la línea 312) Busque y cambie en avrdude.conf programmer id = "avrisp"; desc = "ISP de Atmel AVR"; velocidad en baudios = 115200; # el valor predeterminado es 115200 type = stk500;; para: id del programador = "avrisp"; desc = "ISP de Atmel AVR"; velocidad en baudios = 19200; # el valor predeterminado es 115200 type = stk500;; Ahora puede usar Tools -> Burn Bootloader -> w / AVR ISP (después de seleccionar la placa adecuada en el menú Tools) Commanline También puede usar la línea de comandos: Editar arduino / hardware / bootloaders / atmega / Makefile y cambiar ISPTOOL / PORT / VELOCIDAD para: # ingresar los parámetros para la herramienta avrdude isp ISPTOOL = avrisp ISPPORT = / dev / ttyUSB0 ISPSPEED = -b 19200 no, puedes escribir $ make diecimila_isp para quemar fusibles y el gestor de arranque. Prueba Ahora conecta tu nuevo arduino a usb y ¡Quema el blinky!

Paso 7: solución de problemas

Errores de avrdude: avrdude: ser_open (): no se puede abrir el dispositivo "/ dev / ttyUSB0": no existe ese archivo o directorio. Tiene el puerto incorrecto (-P) especificado o su arduino no está conectado. compruebe la conexión avrdude: firma del dispositivo = 0x000000 avrdude: ¡Ay! Firma de dispositivo no válida. Verifique las conexiones y vuelva a intentarlo, o use -F para anular esta verificación. Esta es una especie de error general. No se reconoce tu chip. Verifique la conexión en la placa (¿GND / 5V conectado a los pines?) Obtendrá este error cuando su chip esté configurado para usar un oscilador externo y no esté funcionando (no hay uno o no está oscilando correctamente - tapas de 22pf desaparecido ?)