error: avrdude: stk500_getsync(): no sincronizado: resp=0x00

Soy nuevo en este campo y estoy trabajando con ardupilot APM 1 (atmega1280), y obtuve esto

error: avrdude: stk500_getsync(): no sincronizado: resp=0x00

mientras estaba subiendo. He leído tantos artículos en Internet e intenté todo para que la placa funcionara. Empecé a tener problemas hace tres meses y siempre lo soluciono en un máximo de seis días, pero ahora el problema es más frecuente y ya no puedo solucionarlo.

Estas fueron las cosas que probé:

  • arduino IDE 1.0 configurando la placa y el puerto correctos
  • elemento de la lista
  • arduino IDE1.0.5 configurando la placa y el puerto correctos
  • ventanas de 32 bits
  • ventanas de 64 bits
  • Estudio Atmel 6
  • Restablecimiento de software
  • reinicio conectando el pin GND RST
  • configurando el cable FTDI como en la tercera imagen https://code.google.com/p/ardupilot-mega/wiki/MPInstallation1
  • http://forum.arduino.cc/index.php?PHPSESSID=ajlu19m9jj1kqfekn3mrj7v ... (pero tengo una duda sobre qué pin TX y RX porque el esquema de la placa no tiene pin TX (Digital Pin 1) para el RX pin (Pin digital 0))
  • reiniciando el sistema, quitando todo el cable, reiniciando la placa e intentando de nuevo

¿Alguien tiene alguna idea?

¿Está rota la placa?

¿Es un problema de hardware?

EDITAR: detallado de la carga:

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\arduino-0100-relax\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM20
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: 
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.
¿Qué es 'el tablero correcto' y qué comando exacto se ejecuta que arroja el error? Es posible que deba habilitar la salida detallada en la configuración del IDE de Arduino.
Gracias por ayudarme. El tablero es "Arduino Mega (ATmega1280)" y voy a agregar el detalle a la pregunta.
Tuve exactamente el mismo problema esta mañana al configurar avrdude usando Atmel Studio 6. Al final, descubrí que mi placa Arduino UNO usaba una velocidad de transmisión diferente (115200) a la 57600 que me dijeron que usara. Aunque no estoy seguro si esto es lo mismo para ti ...
También leí que los números de comunicación> 9 pueden causar problemas y que cambiar el puerto puede solucionar las cosas. Nuevamente, esta es solo una de las muchas posibles "soluciones" que existen. 1 error, muchas causas :/
@Psychic Gracias por ayudarme. Cambié 57600 a 115200 pero recibí el mismo error. Probé en Linux con USB0, ahora voy a probar en Windows cambiando el puerto com.
@Psychic Lamentablemente, también al cambiar el puerto com a com2 me dio el mismo error.
Si está tratando con un cable serie USB FTDI, primero desconéctelo de la placa y use el cable solo. Obtenga un pequeño trozo de cable o una resistencia de valor pequeño y conecte el pin de transmisión al pin de recepción. Abra un programa de terminal, deshabilite el control de flujo de hardware y escriba algo. Dependiendo de si el cable está instalado o no, debe obtener una copia más de cada carácter que sin (semidúplex - 2 copias con, 1 sin, dúplex completo 1 copia sin ninguno). Si ni siquiera puede abrir el puerto, tiene un cable defectuoso, un controlador incorrecto o está probando el puerto COM incorrecto.
@ChrisStratton Estoy usando FTDI, pero también el cable mini usb que conecta el cárter de aceite (placa azul) a la computadora como la primera figura aquí: code.google.com/p/ardupilot-mega/wiki/Quick, pero yo Voy a probar lo que me sugeriste. ¡Gracias por ayudarme!
@ChrisStratton Probé con tx y rx pero no obtuve una copia de mis chacarters. ¿Es importante qué tx y rx uso?
El tx y rx del circuito del adaptador FTDI, que normalmente se conectaría a través de los pines seriales dedicados del dispositivo ATMEGA cuando intentara usarlo con el gestor de arranque. Presumiblemente los de su canal principal si tiene algún tipo de versión de doble canal, pero tendría que verificar el cableado del sistema para estar seguro.

Respuestas (2)

Esto no es un error muy explícito, te lo doy. Podrían ser muchas cosas, pero creo recordar que tuve este error en particular hace un tiempo debido a problemas con el cargador de arranque.

El cargador de arranque en la mayoría de los arduinos escucha durante unos segundos en el USART, verifica y copia un código si recibe uno correcto o simplemente se da por vencido, luego llama al programa principal y no se ejecuta en segundo plano. Por lo tanto, cuando el cargador intenta comunicarse con la placa, es posible que ya esté ejecutando el programa principal y no responda, por lo tanto, "no está sincronizado". La solución simple es presionar "cargar", esperar a que el programa se compile y reiniciar la placa justo cuando el programa comienza a cargarse. Debe haber un segundo margen, pero siempre ha resuelto el problema.

Creo recordar que también es posible cargar un código compilado para otra placa, lo que impide la sincronización adecuada una vez que se carga el código incorrecto. No estoy seguro en qué condiciones puede suceder esto (probablemente cuando el cargador de arranque se carga y se ejecuta junto con el programa principal como un solo programa), pero valdría la pena investigarlo si nada de eso funciona.

Como último recurso, compraría un programador (es una buena inversión) y subiría un nuevo programa bootloader+blink.

De cualquier manera, miraría el código del cargador de arranque de su plataforma en línea. No solo puede haber la respuesta a su problema, sino que también encontrará la velocidad en baudios con la que se supone que debe hablar con la placa (parece que 19200 en las versiones más nuevas). Si nunca te has acostumbrado al gestor de arranque, debería ser el original.

Sin componentes externos conectados para forzar cortocircuitos en las salidas, etc., es prácticamente imposible romper una placa por experiencia.

Probé muchas cosas antes de venir aquí. Pero esta solución resolvió mi problema.
Presionar reset justo cuando el flash está a punto de comenzar fue la solución para mí. ¡Gracias!

Tuve exactamente el mismo problema. Intenté instalar el IDE en otra computadora portátil y cargué el programa desde esa computadora portátil. Problema resuelto. Luego volví a mi computadora portátil, desinstalé el IDE y lo reinstalé y luego funcionó.

Sin embargo, no estaba satisfecho porque no podía encontrar el origen del problema, así que intenté ejecutar todo de nuevo exactamente de la misma manera. Encontré el problema, pero no estoy seguro de si esa puede ser la causa real:

En mi proyecto, necesitaba realizar una comunicación serial entre un Arduino y MATLAB (GUI). Para ver/verificar la salida (tipo) de los datos seriales de MATLAB (GUI), utilicé HyperTerminal y también un emulador de puerto serial virtual. Me di cuenta de que cada vez que HyperTerminal se está ejecutando o VSPE se está ejecutando mientras mi monitor serial está encendido, la función de carga del programa se arruina. No estoy seguro si es por VSPE o HyperTerminal, pero me funcionó reinstalar el IDE.