"Avrdude: stk500_getsync (): non sincronizzato: resp = 0x00", noto anche come alcuni Dude di nome Avr non mi lasceranno caricare il mio programma


98

L'altro giorno ho realizzato un fantastico programma e volevo caricarlo sul mio Arduino. Dopo aver fatto clic sul pulsante di caricamento, è arrivato un tizio di nome avr e mi ha fermato, dicendo:

avrdude: stk500_getsync (): non sincronizzato: resp = 0x00

Tutto quello che voglio fare è solo caricare il mio programma, ma avr non me lo permette. È persino incomprensibile, quindi qualcuno può dirmi che diamine sta cercando di dire e come sbarazzarsi di lui?


vale a dire:

Ogni volta che provo a caricare un programma sul mio Arduino, ricevo questo messaggio di errore:

avrdude: stk500_getsync (): non sincronizzato: resp = 0x00

Cosa significa questo e come posso ripararlo?


4
Messaggio di errore abbastanza comune, non sempre banale da risolvere: electronics.stackexchange.com/…
jippie

12
Bel titolo! Ho avuto questo errore da solo ...
TheDoctor,

6
+1 per il titolo: D ... Odio davvero questo tizio tanto quanto te!
David Refoua,

Prova a installare il driver (cp2102) per Arduino. Questo mi ha aiutato. Grazie per le risposte precedenti ppl :-)

Questo post di giugno 2018 lo ha risolto per me (prima risposta): arduino.stackexchange.com/questions/51729/…
Michael Sims,

Risposte:


62

Ciò è causato da un errore di connessione generico tra il computer e Arduino e può derivare da molti problemi specifici diversi.

Ecco alcune semplici cose che possono spesso correggere questo errore:

  • Scollegare e ricollegare il cavo USB.
  • Premi il pulsante di reset sulla scheda.
  • Riavvia l'IDE di Arduino.
  • Assicurati di selezionare la scheda giusta in Tools ► Board ►, ad es. Se stai usando Duemilanove 328, selezionalo invece di Duemilanove 128. La scheda dovrebbe dire quale versione è sul microchip.
  • Assicurati di aver selezionato la porta giusta in Tools ► Serial Port ►. Un modo per capire su quale porta si trova è seguendo questi passaggi:
    1. Scollegare il cavo USB.
    2. Vai a Tools ► Serial Port ►e vedi quali porte sono elencate (es. COM4 COM5 COM14).
    3. Ricollegare il cavo USB.
    4. Torna a Tools ► Serial Port ►e vedi quale porta è apparso che prima non c'era.
  • Assicurarsi che i pin digitali 0 e 1 non abbiano parti collegate, compresi gli schermi.

Se nessuno di questi funziona, vorrai provare a isolare il problema sostituendo le cose: prova un altro computer sullo stesso arduino, prova un diverso arduino sullo stesso computer e prova a utilizzare un cavo USB diverso.

Se il problema riguarda il computer:

  • Ricontrolla tutti i problemi relativi al computer nell'elenco "correzioni facili" sopra.
  • Reinstallare l'IDE.
  • Reinstallare i driver.

Se il problema riguarda Arduino:

  • Ricontrolla tutti i problemi relativi alla scheda nell'elenco "correzioni facili" sopra.
  • Assicurarsi che il microcontrollore sia inserito correttamente.
  • Potrebbe essere necessario masterizzare il bootloader .
  • Sostituisci il microcontrollore se ne hai un altro a portata di mano nelle vicinanze.
  • Potresti aver bloccato il tuo Arduino. Scusate :(

3
Ci sono altre possibili cause. Potresti aver danneggiato ATmega, potresti aver danneggiato il bootloader su ATmega, potresti avere problemi di alimentazione o una miriade di altre possibilità. La not in sync: resp=0x00è davvero un generico "ATmega non risponde" messaggio. Tutto ciò che potrebbe causare la mancata risposta di ATmega può causarlo.
Connor Wolf,

Quindi non posso mai avere nulla in 0 o 1?
Tim

2
@Tim Puoi collegare elementi a quei pin, ma devi disconnetterli se vuoi comunicare con il tuo Arduino tramite il cavo USB.
The Guy with The Hat

Ho avuto questo errore sul mio primo Duemillanove anni fa. Era un chip UART morto (o connessione da USB a chip UART). Molto frustrante. Ho comprato un programmatore AVR e ho masterizzato il bootloader. Ho acquistato un'altra CPU con il bootloader precaricato. Fino a quando il venditore non ha inviato un sostituto, sono stato in grado di unirmi al mondo degli appassionati di Arduino (e ora ho due CPU di riserva).
Linhartr22,

"Scollega e ricollega il cavo USB" funziona per me
Grace Shao,

20

Un'altra soluzione:

Cambia Tools->Processor->Atmega 328Pin Atmega 328P (Old Bootloader). Ricorda che l' Processoropzione è disponibile solo quando selezioni alcune schede specifiche in Tools>Board.

Questo ha funzionato per il mio Arduino Nano con CH340, usando Arduino IDE 1.8.5 sotto Linux Ubuntu 17.10. Inoltre, ciò accadrà probabilmente se usi IDE 1.8.9 o versioni successive e ottieni un Nano vecchio o clonato.


3
Questa era la soluzione! Il nuovo bootloader utilizza una velocità di trasmissione doppia (115200 anziché 57600).
Suuuehgi,

1
La tua risposta risolve il mio problema. Grazie!
Vladyslav Savchenko,

12

Sfortunatamente, può anche significare che hai bruciato il tuo microcontrollore. Stavi facendo qualcosa di pericoloso prima di provare a caricare un nuovo schizzo? Il microcontrollore funziona ancora, con il suo schizzo precedentemente caricato?


10

Se nessuno dei passaggi precedenti funziona, prova a reinstallare Avrdude e il compilatore avr-gcc. Ho dovuto farlo dopo che la mia Mega ha iniziato a soffrire di questo.

Se hai installato Avrdude e avr-gcc separatamente, disinstallali semplicemente. in caso contrario, potrebbe essere necessario reinstallare l'IDE di Arduino. Questi passaggi dipenderanno dal tuo sistema operativo.


È altamente improbabile che il problema sia causato a causa dell'utilizzo della toolchain. Questo è troppo estremo, IMO.
asheeshr,

3
È l'unico modo per risolvere il mio problema
TheDoctor,

Di che processo di installazione stai parlando? Lo strumento di editor di arduino è appena decompresso. Non esiste alcun processo di installazione.
Connor Wolf,

9

Ho avuto lo stesso messaggio. Ogni volta che è stato risolto selezionando la porta giusta, ad esempio USB nel menu Strumenti, quindi Porte. È un passo semplice ma dimentico sempre. Scollegherò Arduino per interrompere il programma corrente, ricollegarlo al mio computer per caricare il nuovo programma e ottenere l'errore, il panico, la maledizione e solo allora, ricordare.


1
Penso che questa sia la soluzione più comune.
pulcini,

9

Nel mio caso non avevo collegato il pin RTS del chip FTDI a un condensatore che era andato al pin RST di Arduino Pro Mini. Una volta installata questa connessione, non ho più ricevuto l'errore e sono stato in grado di caricare il codice.

Nick Gammon lo spiega nel suo forum . Ho aggiunto un'immagine di dove / come posizionare il condensatore. inserisci qui la descrizione dell'immagine


+1 per la bella foto del programmatore usb collegato direttamente a un chip atmega.
Raddevus,

Ho anche avuto delle cattive connessioni sulla mia scheda, ho scollegato tutto e caricato uno schizzo di base e ha funzionato. Ora vai a capire quale cavo non è nel posto giusto
Seraf il

5

Ho avuto lo stesso identico problema. Ho provato a installare l'IDE su un altro laptop e ho caricato il programma da quel laptop. Problema risolto. Quindi sono tornato sul mio laptop, ho disinstallato l'IDE e reinstallato .. ha iniziato a funzionare.

Tuttavia, non ero soddisfatto perché non riuscivo a trovare l'origine del problema ... quindi ho provato a eseguire di nuovo tutto nello stesso modo esatto ... Ho trovato il problema ma non sono sicuro che possa essere la causa reale di esso .

Nel mio progetto, dovevo effettuare comunicazioni seriali tra arduino e MATLAB (GUI). Per vedere / verificare l'output (tipo) dei dati seriali MATLAB (GUI), ho usato HYPERTERMINAL e anche VULTUAL SERIAL PORT EMULATOR. Ho notato che ogni volta che quando l'iperterminale è in esecuzione o VSPE è in esecuzione mentre il mio monitor seriale è acceso, si rovina la funzione di caricamento del programma. Non sono sicuro che sia a causa di VSPE o HYPERTERMINAL, ma reinstallare l'IDE ha funzionato per me.


2
Una delle linee di controllo seriale, penso che sia DTR, viene utilizzata per ripristinare Arduino. Quando si tenta di programmare Arduino, il programma terminale potrebbe interferire.
linhartr22,

Questo ha funzionato per me solo quando ho anche eliminato la mia cartella della libreria di Arduino, che contiene tutte le impostazioni e le librerie aggiuntive.
Jethro,

3

Per le persone che usano Linux Mint ho scoperto che selezionando la porta "TTY SO" invece di quella etichettata "Arduino" avrebbe funzionato (non posso dirti esattamente perché non ho quel computer davanti a me in questo momento) .

Quindi la volta successiva che ho usato Arduino ho ricevuto di nuovo lo stesso messaggio, quindi sono tornato alla porta "Arduino" e da allora ha funzionato in questo modo.

Non sono tecnicamente competente come il resto di voi ragazzi quindi non ho idea del perché questo funzioni o quale sia stato il problema, ma ha funzionato che è tutto ciò che mi interessa. Forse questo sarà utile a qualcuno.


3

Ho disinstallato l'IDE, i driver ecc., L'ho installato di nuovo, quindi ho eseguito l'IDE Arduino come amministratore e ho impostato la compatibilità con Windows 7 (attualmente sto usando 10).

Ho anche cambiato il programmatore in AVR ISP (non credo che questo abbia importanza, ma l'ho cambiato comunque).

Tutto funziona di nuovo ... si spera, questo può aiutare anche qualcun altro.


2

Un fatto insolito, ma ho scambiato molto i microcontrollori e ho riscontrato questo errore quando uno non era seduto correttamente .. Sono stato in grado di bruciare alcune volte ma immagino che sia scivolato indietro - una piccola spinta sul retro di ATMega328 risolto!


1

Esiste anche la possibilità che il controller stesso venga posizionato in modo errato nel socket di Arduino. Questo può essere pericoloso per il controller (che potrebbe essere zappato) ma, nel mio caso, mi ha dato solo l'errore di sincronizzazione, impedendomi di caricare il codice.

Quindi controlla solo se la tacca sull'IC è nella giusta direzione (puoi fare un controllo incrociato con le immagini della scheda online). La tacca sul controller di Uno dovrebbe puntare verso il bordo della scheda.


1

Ho avuto anche questo errore. Era la prima volta che utilizzavo una nuova scheda Arduino Nano dopo aver saldato le testate. Solo tirando il Blink Sketch, nulla era collegato alla scheda.

Ho trovato un piccolo pezzo di saldatura tra i pin GROUND e RESET. L'ho scelto e quindi ho potuto caricare ok.

Suppongo che ciò potrebbe accadere se tu avessi lo stesso corto circuito su un circuito da qualche parte.


1

Ho appena avuto lo stesso errore con un nuovissimo Mini Pro. Poiché il programma di lampeggiamento predefinito precaricato con la maggior parte di Arduino è in esecuzione, so che l'unità probabilmente è OK.

Quindi ho ispezionato le intestazioni che ho appena saldato ancora una volta, e ho scoperto che non c'era abbastanza saldatura sui pin TX0. Dopo aver ri-saldato ogni opera.


1

Dopo un sacco di scollegare, controllare le porte, riavviare IDE, ecc. La cosa che sembrava fare la differenza risolvendo questo errore con Arduino Mega 2560 era disinstallare il driver USB Arduino di Windows, quindi reinstallarlo usando il driver qui e selezionare manualmente dall'elenco> com com> arduino http://drivers.softpedia.com/get/Other-DRIVERS-TOOLS/Others/Arduino-Mega-2560-USB-Driver-1110-for-Windows-7-64-bit.shtml Potrei avere testato sul mio Uno, poi di nuovo sul mega, quindi c'è una piccola possibilità di parlare con l'UN, rendendo AVRDUDE felice ma improbabile.


1

Quando ho un problema con il caricamento sulle mie bacheche, carico un programma diverso come nell'esempio del lampeggio. Questo sembra resettare qualcosa e sono quindi in grado di caricare il mio programma (che è abbastanza grande).

Potrebbe valere la pena provare questo per vedere se funziona nel tuo caso, anche se non ho idea del perché funzioni.


quale scheda e bootloader?
Juraj,

Arduino Nano, ATMega328P (non di terze parti). Versione hardware: 2, Versione firmware: 1.16, la firma del dispositivo è 0x1e950f Non ho verificato il bootloader, ma sono pubblicizzati come "bootloader tradizionale"
Jethro,

quindi la tua risposta è specifica per il vecchio bootloader Nano
Juraj,

Grazie! Guarderò i bootloader e proverò ad aggiornarlo. Hai qualche informazione su questo bug?
Jethro,

1

Ho avuto un problema simile con la mia scheda Uno

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

Ho provato molti metodi

  • Premere reset prima di inviare i pacchetti
  • diverse versioni IDE
  • Cambia cavo
  • Cambia controller stesso
  • Test di loopback

ma tutto quanto sopra fallito.

Uso Ubuntu 16.04.4 LTS 4.15.0-33-generic(mentre scrivo questo commento). Il modulo CDC ACM non è stato caricato, pertanto non /dev/ttyACM0è stato creato alcun dispositivo per la selezioneArduino IDE -> Tools -> Port

Pertanto, ottieni il nome del modulo e caricalo

$ 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

Il comando sopra inserirà il modulo richiesto. Ora sono in grado di selezionare la porta giusta e caricare il codice

Tra le varie soluzioni ha funzionato per me, spero che questo aiuti anche qualcuno.


0

L'ho risolto aggiornando le schede (sotto "consiglio di amministrazione")


Hai un Arduino Nano?
per1234

0

Ho riscontrato lo stesso problema per alcuni codici oggi e l'ho risolto come segue:

1- Per prima cosa ho eseguito un codice lampeggiante a LED di base. Ha dato lo stesso errore. Conferma che l'errore è nel caricamento e non ha nulla a che fare con la compilazione. Ho anche controllato che il mio codice fosse compilato correttamente.

2- Ho preso un'altra scheda, ma funzionava bene su questo PC. Ciò significa che il computer e il cavo USB sono OK.

3- Ho collegato la scheda difettosa a un altro PC e, sorprendentemente, non si è verificato alcun errore nel caricamento. Questo mi ha dato indicazioni sui problemi del driver nel primo PC.

4- Quindi ho disinstallato il driver e reinstallato sul primo PC scaricando da qui

(assicurati che durante l'installazione del driver da questo link, mantieni la tua scheda collegata al PC)

Ora ha funzionato bene :-)


0

Ho riscontrato questo errore nel mio laptop Linux Mint 17.3 con Arduino Nano avrdude: stk500_getsync (): non sincronizzato: resp = 0x00

risolto:

  • rimosso tutto ciò che aveva "arduino" o "avr" nel suo nome
  • directory rimosse .arduino e .arduino15 (notare il punto nel nome)
  • rimossa la versione 1.8.7 con la disinstallazione del pacchetto
  • apt-get install arduino (ver 1.1.0)
  • testato con un semplice schizzo (tutto OK)
  • installato la versione 1.8.7 con l'installazione del pacchetto
  • compilato.
  • selezionato ATmega328p (vecchio bootloader) per processore, Arduino Nano per scheda e / dev / ttyUSB0 per porta => FUNZIONA!

Sembra che il "vecchio bootloader" sia stato il trucco in questo caso. Ora ho sia la versione 1.1.0 che la 1.8.7, a chi importa.


dovresti prima leggere la risposta di aguadopd
Juraj,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.