“Avrdude: stk500_getsync (): não está sincronizado: resp = 0x00”, também conhecido como Algum cara chamado Avr não permite que eu faça upload do meu programa


98

Eu fiz um programa incrível no outro dia e queria enviá-lo para o meu Arduino. Depois de clicar no botão de upload, um cara malvado chamado avr apareceu e me parou, dizendo:

avrdude: stk500_getsync (): não está sincronizado: resp = 0x00

Tudo o que eu quero fazer é apenas fazer upload do meu programa, mas o avr não me permite. Ele é até ininteligível, então alguém pode me dizer o que diabos ele está tentando dizer e como se livrar dele?


ou seja:

Sempre que tento carregar um programa no meu Arduino, recebo esta mensagem de erro:

avrdude: stk500_getsync (): não está sincronizado: resp = 0x00

O que isso significa e como posso corrigi-lo?


4
Mensagem de erro bastante comum, nem sempre é trivial para resolver: electronics.stackexchange.com/…
— jippie

12
Bom título! Eu mesmo tive esse erro ...
— TheDoctor 12/02

6
+1 para o título: D ... Eu realmente odeio esse cara tanto quanto você!
— David Refoua

Tente instalar o driver (cp2102) para o arduino. Isso me ajudou. Obrigado pelas respostas anteriores pessoas :-)

Esta 2018 pós junho resolvido para mim (1º resposta): arduino.stackexchange.com/questions/51729/...
— Michael Sims

Respostas:


62

Isso é causado por um erro genérico de conexão entre o computador e o Arduino e pode resultar de muitos problemas específicos diferentes.

Aqui estão algumas coisas fáceis que geralmente podem corrigir esse erro:

  • Desconecte e reconecte o cabo USB.
  • Pressione o botão de reset no quadro.
  • Reinicie o IDE do Arduino.
  • Certifique-se de selecionar a placa correta Tools ► Board ►, por exemplo, se você estiver usando o Duemilanove 328, selecione-o em vez do Duemilanove 128. A placa deve dizer qual versão está no microchip.
  • Verifique se você selecionou a porta correta Tools ► Serial Port ►. Uma maneira de descobrir em qual porta ela está é seguindo estas etapas:
    1. Desconecte o cabo USB.
    2. Vá para Tools ► Serial Port ►e veja quais portas estão listadas (por exemplo, COM4 COM5 COM14).
    3. Reconecte o cabo USB.
    4. Volte para Tools ► Serial Port ►e veja qual porta apareceu que não existia antes.
  • Verifique se os pinos digitais 0 e 1 não possuem nenhuma peça conectada, incluindo blindagens.

Se nenhuma dessas opções funcionar, tente isolar o problema substituindo as coisas: tente um computador diferente no mesmo arduino, tente um arduino diferente no mesmo computador e tente usar um cabo USB diferente.

Se o problema estiver no computador:

  • Verifique novamente todos os problemas relacionados ao computador na lista "correções fáceis" acima.
  • Reinstale o IDE.
  • Reinstale os drivers.

Se o problema for com o Arduino:

  • Verifique novamente todos os problemas relacionados à placa na lista "correções fáceis" acima.
  • Verifique se o microcontrolador está encaixado corretamente.
  • Pode ser necessário gravar o gerenciador de inicialização .
  • Substitua o microcontrolador se você tiver outro por perto.
  • Você pode ter emparelhado seu Arduino. Desculpa :(

3
Existem outras causas possíveis. Você pode ter danificado o ATmega, o carregador de inicialização do ATmega, problemas de energia ou uma infinidade de outras possibilidades. A not in sync: resp=0x00é realmente um genérico "ATmega não está respondendo" mensagem. Qualquer coisa que possa fazer com que o ATmega não responda pode causar isso.
— Connor Lobo

Então, eu não posso ter nada em 0 ou 1?
— Tim

2
@ Tim Você pode conectar itens a esses pinos, mas precisará desconectá-los se quiser se comunicar com o seu Arduino através do cabo USB.
— O cara com o chapéu

Eu recebi esse erro no meu primeiro Duemillanove anos atrás. Era um chip UART morto (ou conexão do USB ao chip UART). Muito frustrante. Comprei um programador AVR e queimei o gerenciador de inicialização. Adquiriu outra CPU com o carregador de inicialização pré-carregado. Não foi até o fornecedor enviar um substituto que eu pude ingressar no mundo dos aficionados do Arduino (e agora tenho duas CPUs sobressalentes).
— linhartr22

"Desconecte e reconecte o cabo USB" funciona para mim
— Graça Shao

20

Outra correção:

Mude Tools->Processor->Atmega 328Ppara Atmega 328P (Old Bootloader). Lembre que a Processoropção está disponível apenas quando você seleciona algumas placas específicas em Tools>Board.

Isso funcionou para o meu Arduino Nano com CH340, usando o Arduino IDE 1.8.5 no Linux Ubuntu 17.10. Além disso, isso provavelmente acontecerá se você usar o IDE 1.8.9 ou mais recente e obter um Nano antigo ou clonado.


3
Essa foi a solução! O novo carregador de inicialização usa o dobro da taxa de transmissão (115200 em vez de 57600).
— Suuuehgi 2/01

1
Sua resposta corrige meu problema. Obrigado!
— Vladyslav Savchenko

12

Infelizmente, também pode significar que você queimou seu microcontrolador. Você estava fazendo algo perigoso antes de tentar fazer upload de um novo esboço? O microcontrolador ainda está funcionando, com seu esboço carregado anteriormente?


10

Se nenhuma das etapas acima funcionar, tente reinstalar o Avrdude e o compilador avr-gcc. Eu tive que fazer isso depois que meu Mega começou a sofrer com isso.

Se você instalou o Avrdude e o avr-gcc separadamente, basta desinstalá-los. caso contrário, talvez seja necessário reinstalar o IDE do Arduino. Essas etapas dependerão do seu sistema operacional.


É altamente improvável que o problema seja causado por causa do uso da cadeia de ferramentas. Isso é muito extremo, IMO.
— asheeshr

3
É a única maneira que eu poderia resolver o meu problema
— TheDoctor

Do que você está falando neste processo de instalação? A ferramenta de edição do arduino é apenas descompactada. Não há processo de instalação.
— Connor Wolf

9

Eu tive a mesma mensagem. Sempre que tiver sido resolvido, selecione a porta correta, ou seja, USB, no menu Ferramentas e Portas. É um passo simples, mas eu sempre esqueço. Vou desconectar o Arduino para interromper o programa atual, conectá-lo novamente ao meu computador para carregar o novo programa e obter o erro, pânico, maldição e só então, lembre-se.


1
Eu acho que essa é a solução mais comum.
— chicks

9

No meu caso, eu não tinha conectado o pino RTS do chip FTDI a um capacitor que foi ao pino RST do Arduino Pro Mini. Depois de instalar esta conexão, não recebi mais o erro e consegui fazer o upload do código.

Nick Gammon explica isso em seu fórum . Adicionei uma imagem de onde / como o capacitor deve ser colocado. insira a descrição da imagem aqui


+1 para a bela imagem da conexão do programador usb diretamente a um chip atmega.
— raddevus

Eu também tinha algumas conexões ruins na minha placa, desconectei tudo e enviei um esboço básico e funcionou. Agora vá descobrir o cabo que não está no lugar certo
— Seraf

5

Eu tive o mesmo problema. Tentei instalar o IDE em outro laptop e carreguei o programa desse laptop. Problema resolvido. Então voltei para o meu laptop, desinstalei o IDE e reinstale-o .. ele começou a funcionar.

No entanto, não fiquei satisfeito porque não consegui encontrar a fonte do problema ... então tentei executar tudo novamente da mesma maneira exata ... Encontrei o problema, mas não tinha certeza se essa poderia ser a causa real dele. .

No meu projeto, eu precisava realizar uma comunicação serial entre o arduino e o MATLAB (GUI). Para ver / verificar a saída (tipo) dos dados seriais do MATLAB (GUI), usei HYPERTERMINAL e também EMULADOR DE PORTA SERIAL VIRTUAL. Percebi que toda vez que o hiperterminal está sendo executado ou o VSPE está sendo executado enquanto o meu monitor serial está nele, estraga o recurso de upload do programa. Não tenho certeza se é por causa do VSPE ou HYPERTERMINAL, mas a reinstalação do IDE funcionou para mim.


2
Uma das linhas de controle serial, acho que é o DTR, é usada para redefinir o Arduino. Quando você tenta programar o seu Arduino, o programa do seu terminal pode estar interferindo.
— Linhartr22

Isso funcionou para mim apenas quando eu também excluí minha pasta da Biblioteca do Arduino, que contém todas as configurações e bibliotecas extras.
— Jethro

3

Para as pessoas que usam o Linux Mint, descobri que, ao selecionar a porta "TTY SO" em vez da porta "Arduino", ela funcionaria (não posso lhe dizer exatamente porque não tenho esse computador na minha frente agora) .

Então, na próxima vez em que usei o Arduino, recebi novamente a mesma mensagem. Voltei à porta "Arduino" e funcionou dessa maneira desde então.

Eu não sou tão tecnicamente experiente quanto o resto de vocês, então não tenho idéia do por que isso funciona ou qual foi o problema, mas funcionou, e é isso que me interessa. Talvez isso seja útil para alguém.


3

Desinstalei o IDE e os drivers, etc, instalei tudo novamente, executei o IDE do Arduino como administrador e configurei a compatibilidade com o Windows 7 (atualmente estou usando o 10).

Também mudei o programador para AVR ISP (acho que isso não importa, mas mudei mesmo assim).

Tudo está funcionando de novo ... espero que isso possa ajudar outra pessoa também.


2

Um incomum, mas eu tenho trocado muito os microcontroladores e recebi esse erro quando um não estava encaixado corretamente. Consegui gravar algumas vezes, mas acho que ele escapou - um pequeno empurrão nas costas do ATMega328 consertou!


1

Também existe a possibilidade de o próprio controlador ser colocado de maneira errada no soquete do Arduino. Isso pode ser perigoso para o controlador (que pode sofrer um zapping), mas, no meu caso, só deu o erro de falta de sincronização, impedindo-me de fazer o upload de código.

Portanto, basta verificar se o entalhe no IC está na direção certa (você pode verificar com imagens da placa on-line). O entalhe no controlador do Uno deve apontar para a borda da placa.


1

Eu também tive esse erro. Foi a primeira vez que usei uma nova placa Arduino Nano depois de soldar nos cabeçalhos. Apenas rodando o Blink Sketch, nada estava conectado ao quadro.

Encontrei um pouco de solda entre os pinos GROUND e RESET. Eu peguei e pude fazer o upload ok.

Suponho que isso possa acontecer se você tiver o mesmo curto em um circuito em algum lugar.


1

Só tive esse mesmo erro com um novo Mini Pro. Como o programa padrão de intermitência que foi pré-carregado com a maioria dos Arduino está em execução, eu sei que a unidade provavelmente está OK.

Por isso, inspecionei os cabeçalhos que acabei de soldar mais uma vez e constatei que não havia solda suficiente nos pinos TX0. Depois de re-soldar todos os trabalhos.


1

Após muitos desconectamentos, verificação de portas, reinicialização do IDE etc. O problema que parecia fazer a diferença na correção dessa falha com o Arduino Mega 2560 era desinstalar o driver do arduino USB do Windows e reinstalá-lo usando o driver aqui e selecione manualmente na lista> portas com> arduino http://drivers.softpedia.com/get/Other-DRIVERS-TOOLS/Others/Arduino-Mega-2560-USB-Driver-1110-for-Windows-7-64-bit.shtml Talvez eu tenha testei no meu uno e depois voltei ao mega, então há uma pequena chance de conversar com o uno fez AVRDUDE feliz, mas improvável.


1

Quando encontro um problema ao carregar em meus quadros, carrego um programa diferente, como o exemplo do blink. Isso parece redefinir algo e, em seguida, sou capaz de fazer upload de meu próprio programa (que é bastante grande).

Pode valer a pena tentar fazer isso para ver se funciona no seu caso, embora eu não tenha idéia do por que funciona.


qual placa e bootloader?
— Juraj

Arduino Nano, ATMega328P (não de terceiros). Hardware Versão: 2, Firmware Versão: 1.16, assinatura de dispositivo é 0x1e950f Eu não tenho verificado o bootloader, mas eles são anunciados como o "bootloader tradicional"
— Jethro

para que a sua resposta é específica para o velho bootloader Nano
— Juraj

Obrigado! Vou olhar para os gerenciadores de inicialização e tentar atualizá-lo. Você tem alguma informação sobre esse bug?
— Jethro #

1

Eu tive um problema semelhante com minha placa Uno

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x90

Tentei muitos métodos

  • Pressione reset antes de enviar pacotes
  • diferentes versões do IDE
  • Troque o cabo
  • Alterar o próprio controlador
  • Teste de loopback

mas todas as opções acima falharam.

Eu uso o Ubuntu 16.04.4 LTS 4.15.0-33-generic(ao escrever este comentário). O módulo CDC ACM não foi carregado, portanto, nenhum /dev/ttyACM0dispositivo foi criado para selecionarArduino IDE -> Tools -> Port

Portanto, obtenha o nome do módulo e carregue-o

$ lsusb 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


$ sudo modprobe cdc-acm

O comando acima irá inserir o módulo necessário. Agora consigo selecionar a porta correta e fazer o upload do código

Das várias soluções que funcionaram para mim, espero que isso ajude alguém também.


0

Eu o resolvi atualizando os conselhos (em "gerente do conselho")


Você tem um Arduino Nano?
— per1234

0

Eu enfrentei o mesmo problema para alguns códigos hoje e resolvi-o da seguinte forma:

1- Primeiro, executei um código básico de LED piscando. Deu o mesmo erro. Ele confirma que o erro está no upload e não tem nada a ver com a compilação. Também verifiquei se meu código estava compilando bem.

2- Peguei outra placa, mas estava funcionando bem neste PC. Isso significa que o computador e o fio USB estão OK.

3- Conectei a placa defeituosa a outro PC e, surpreendentemente, não houve esse erro no upload. Isso me deu uma dica sobre problemas no driver no primeiro PC.

4- Desinstalei o driver e o reinstalei no primeiro PC baixando aqui

(certifique-se de que ao instalar o driver a partir deste link, você mantenha sua placa conectada ao PC)

Funcionou bem agora :-)


0

Eu tive esse erro no meu laptop Linux Mint 17.3 com o Arduino Nano avrdude: stk500_getsync (): não está sincronizado: resp = 0x00

Resolvido:

  • removeu tudo o que tinha 'arduino' ou 'avr' em seu nome
  • diretórios removidos .arduino e .arduino15 (Observe o ponto no nome)
  • versão 1.8.7 removida com desinstalação do pacote
  • apt-get install arduino (versão 1.1.0)
  • testado com um esboço simples (tudo OK)
  • versão 1.8.7 instalada com a instalação do pacote
  • compilado.
  • selecionou ATmega328p (carregador de inicialização antigo) para processador, Arduino Nano para placa e / dev / ttyUSB0 para porta => FUNCIONA!

Parece que o 'Old bootloader' foi o truque neste caso. Agora eu tenho ambos ver 1.1.0 e 1.8.7, quem se importa.


você deve primeiro ler a resposta de aguadopd
— Juraj
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.