Pages: [1]   Go Down
Author Topic: No puedo subir el sketch blink (proyecto propio basado en Arduino Mega 2560 R3)  (Read 285 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Me he lanzado a la aventura de crear un prototipo para un sistema que me han encargado usando Arduino Mega 2560 R3. Una vez que comprobé que todo funcionaba bien con la placa estándar decidí crear mi placa personalizada incluyendo en ella todo los componentes necesarios.

Hace unos días recibí del fabricante las placas montadas y me dispuse a instalar el software necesario:
  • Primer paso, cargar el firmware del ATMega 16U2 tal como cuentan en http://pucomi.blogspot.com.es/2013/08/arduino-dfu-tutorial-device-firmware.html.
  • Prueba de que funciona bien con el Monitor Serie poniendo RESET  a GND y puenteando TX0 - RX0. Correcto.
  • Proceder a subir el bootloader. No pude desde el IDE de Arduino usando el cable USB y la opción "Herramientas-Grabar Secuencia de Inicio". Decidí probar con un Arduino UNO usandolo como ISP y con un grabador USBasp, y tampoco.  Seguí estos pasos http://www.gammon.com.au/forum/?id=11635 y no me dio errores. Hago las comprobaciones de verificación y  todo correcto.
  • Antes de nada, voy a hacer una prueba con Blinker y cual es mi sorpresa cuando me dice que no puedo cargar el programa. Me dice:
    avrdude: ser_recv(): programmer is not responding
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_getsync(): timeout communicating with programmer


  • Intento subir el sketch usando Arduino UNO como ISP y con el grabador USBasp, obteniendo resultados similares.
  • He comprobado todo el circuíto y he quitado los componentes externos en la placa hasta dejar solo los de Arduino, sin éxito.
  • He intentado subir el sketch con avrdude directamente y se corrompe el bootloader.
  • Una vez restaurado el bootloader he comprobado con un dump de avrdude que está en la memoria flash.
  • Sospecho que por alguna razón el micro no ejecuta el bootloader. He probado incluso con este http://avr-developers.com/bootloaderdocs/, sin conseguir que se ejecute.

Son 4 placas iguales, y con las 4 pasa lo mismo. He comprobado conexiones eléctricas, fuses, posición de componentes.....

No se que más hacer, sin osciloscopio a mano, para comprobar si el cuarzo de 16 Mhz está funcionando, ya que puede ser que al no oscilar el pic no arranque, aunque sería mucha casualidad que las 4 placas viniesen con el cuarzo malo.

Aunque no me ha pasado en otros montajes, me queda la duda de si al ATMega 2560 hay que decirle que empiece a funcionar de alguna manera. En el datasheet no he visto nada de eso.

Arduino IDE 1.0.5.
SO. Linux.
Grabador USBasp.
Avrdude 5.11.1.


¿Alguien puede ayudarme?

Muchas gracias.

NOTA: Todos los pasos descritos han sido también realizados con un Arduino Mega 2560 R3 sin que me reportase fallo alguno.
« Last Edit: March 09, 2014, 05:19:24 pm by jalfonsosuarez » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sigo haciendo comprobaciones y usando este programa http://www.gammon.com.au/forum/?id=11633 en el arduino mega 2560 r3 original recibo estos parámetros:
ORIGINAL
MI CLON
Atmega fuse calculator.
Written by Nick Gammon.
Entered programming mode OK.
Signature = 0x1E 0x98 0x01
Processor = ATmega2560
Flash memory size = 262144
LFuse = 0xFF
HFuse = 0xD8
EFuse = 0xFD
Lock byte = 0xCF
Clock calibration = 0x85
OCD Enable.............................. [ ]
JTAG Enable............................. [ ]
Enable Serial (ICSP) Programming........ [X]
Watchdog Timer Always On................ [ ]
Preserve EEPROM through chip erase...... [ ]
Boot into bootloader.................... [X]
Divide clock by 8....................... [ ]
Clock output............................ [ ]
Bootloader size: 8192 bytes.
Start-up time: SUT0: [ ]  SUT1: [ ] (see datasheet)
Clock source: low-power crystal.
Brownout detection at: 2.7V.

Atmega fuse calculator.
Written by Nick Gammon.
Entered programming mode OK.
Signature = 0x1E 0x98 0x01
Processor = ATmega2560
Flash memory size = 262144
LFuse = 0xFF
HFuse = 0xD8
EFuse = 0xFD
Lock byte = 0xEF
Clock calibration = 0x96
OCD Enable.............................. [ ]
JTAG Enable............................. [ ]
Enable Serial (ICSP) Programming........ [X]
Watchdog Timer Always On................ [ ]
Preserve EEPROM through chip erase...... [ ]
Boot into bootloader.................... [X]
Divide clock by 8....................... [ ]
Clock output............................ [ ]
Bootloader size: 8192 bytes.
Start-up time: SUT0: [ ]  SUT1: [ ] (see datasheet)
Clock source: low-power crystal.
Brownout detection at: 2.7V.


Las diferencias que encuentro son estas:
ORIGINAL
MI CLON

Lock byte = 0xCF
Clock calibration = 0x85


Lock byte = 0xEF
Clock calibration = 0x96


Cuando intento modificar los parámetros de Lock byte y de Clock calibration en el clon, se me cambian, si o sí, los valores de los otros fuses.

¿Alguna idea?

Gracias y un saludo.

« Last Edit: March 10, 2014, 05:52:24 am by jalfonsosuarez » Logged

Pages: [1]   Go Up
Jump to: