Come posso correggere un errore non sincronizzato di AVRdude durante la programmazione di Arduino tramite cavo da USB a seriale?


9

Sto cercando di costruire questa illuminazione ambientale per PC. Questo ha funzionato perfettamente sul mio Arduino Uno. Il mio prossimo passo è stato farlo usando "Arduino su una breadboard" . Così ho comprato un chip ATmega328 vuoto e ho masterizzato il bootloader Arduino (per la scheda "Arduino Duemilanove w / ATmega328") usando l'IDE Arduino e USBasp; e so che questo è stato caricato correttamente poiché questo chip ATmega funziona perfettamente su Uno.

Quindi ho realizzato il convertitore da USB a seriale usando FT232RL ; ma i suoi driver non sono stati installati sul mio PC (Windows 7 x64). Sospetto di aver surriscaldato il chip FTDI a montaggio superficiale e di averlo ucciso mentre lo saldavo a mano.

Quindi, l'ho tenuto da parte e ho ottenuto questo bridge convertitore da USB a seriale: (Scusate le foto scadenti) Ho usato un ulteriore ST232CN sulla mia breadboard, per convertire i livelli di tensione da RS232 a TTL, come mostrato in questo pagina . E questo funziona bene, come ho verificato da un test di loopback. E ho collegato il pin 9 di ST232 al pin 2 di ATmega e il pin 10 al pin 3.

Quando ho provato a caricare un esempio di lampeggiamento dall'IDE di Arduino, ho visualizzato questo errore:

Binary sketch size: 1026 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00

Quando eseguo il caricamento dettagliato (Shift + Upload), ottengo questo errore / messaggio:

avrdude: usbdev_open(): did not find any USB device "usb"

Inoltre, ho provato ad aggiungere resistori pull-up da 1k ai pin 2 e 3 di ATmega, ma non ho aiutato. Quindi immagino che il problema sia ora nella comunicazione seriale dall'ST232 ad ATmega? E c'è qualche connessione speciale con il pin di reset di ATmega? L'ho portato a 5V con una resistenza da 10k.


Sarebbe di aiuto uno schema o un'immagine della configurazione della breadboard.
sptrks,

3
Hai ripristinato il chip appena prima, contemporaneamente o subito dopo aver comandato il caricamento? Ogni volta che ho ricevuto l'errore "non sincronizzato", era correlato a quel relativo tempismo. Per la mia breadboard, e Eclipse / AVRDude, la messa a terra del pin di ripristino appena prima o proprio mentre faccio clic sul comando di caricamento è il momento giusto. Ma controlla anche che il tuo PC veda davvero l'adattatore quando lo
colleghi

1
@potato_in_my_ear - Il formato corretto per pubblicare una soluzione non è una modifica ma una risposta. Guarda in basso e vedrai una casella intitolata "La tua risposta" in cui inserirlo. Dopo aver inserito, le persone voteranno la tua risposta e puoi "accettarla" premendo il segno di spunta a sinistra della risposta.
Kevin Vermeer,

1
@potato_in_my_ear: sono contento che mi abbia aiutato. Sei un gentiluomo e uno studioso - farò una risposta al mio commento.
JRobert,

2
La soluzione è che le persone smettano di fornire risposte nei commenti!
Kevin Vermeer

Risposte:


6

Ogni volta che ho ricevuto l'errore "non sincronizzato", era correlato alla mia mancanza del tempismo di ripristino (o all'oblio del ripristino!). Per la mia breadboard, e Eclipse / AVRDude, la messa a terra del pin di reset appena prima o contemporaneamente allo scatto del pulsante di caricamento è il momento giusto. Ma controlla anche che il tuo PC veda davvero l'adattatore quando lo colleghi.

Le schede arduino successive sono costruite per reimpostare ogni volta che viene stabilita una connessione seriale e programmaticamente dal bootloader. Questo articolo del blog descrive come funziona e, ancora più interessante, come hackerarlo su schede precedenti. Non dovrebbe essere troppo difficile metterlo su una breadboard se lo desideri. Il chip deve avere un bootloader compatibile, ovviamente (che hai già inserito nel tuo). Per le breadboard, faccio solo il ballo reset-button / mouse-click.


Ho trovato qualcuno che diceva che è possibile ottenere la catena di strumenti avr per eseguire il reset stesso modificando avrdude.conf ; qui (nei commenti). Ma non sono sicuro di come farlo. Puoi aiutare. Odio premere reset tutto il tempo ..
Anubi

Ciò richiederà il supporto hardware sulla scheda Arduino o breadboard che in seguito Aduino ha incorporato; il codice da solo non può farlo. Si basa su un condensatore dal DTR seriale al reset e al pull-up di reset. Se ne hai uno vecchio o una breadboard, dovrai aggiungerlo. Questa domanda StackE di EE e l'articolo del blog che ho citato dovrebbero indirizzarti nella giusta direzione.
JRobert,

2

Come ha detto @JRobert nei commenti, il momento giusto per mettere a terra e sbloccare il pin di reset su ATmega ha funzionato. Continuare a mettere a terra il pin di ripristino di ATmega quando si fa clic su "Carica", e proprio come mostra "Caricamento", non messa a terra.


Ho appena ricevuto un mini arduino e sapevo che dovevo premere il pulsante di reset per caricare il codice, ma non sono riuscito a scoprire quando !!! Questo ha funzionato per me. Grazie.
Sponge Bob

0

Ho avuto gli stessi errori che ho visto pubblicati su diversi siti RE: messaggio Arduino "avrdude: stk500_getsync (): non sincronizzato: resp = 0x00" o simile.

Ho scoperto che se rimuovo tutto ciò che è patchato in D0 ([D0] DIGITAL pin Zero, il più lontano dalle prese USB e Power, legge anche "RX").

Ho provato due computer diversi e ho riscontrato gli stessi errori e ho scoperto che se: 1- rimuovo il filo o apro il circuito su [D0] 2- carico su Arduino 3- ricollego il filo rimosso o chiudo il circuito aperto su [ D0]

Ho riscontrato questo errore solo quando carico e questa è la mia soluzione. per adesso.

Spero che sia d'aiuto.

È bello poter finalmente dare alcune informazioni utili a una community!


1
La risposta è un po 'poco chiara: la frase che inizia "Ho scoperto che se io ..." è incompleta, non sono sicuro di ciò che stai cercando di dire lì. Per favore modifica, grazie.
Anindo Ghosh,

Questa risposta si riferisce alla presenza di circuiti in conflitto collegati ai pin seriali hardware atmega.
Chris Stratton,


-1

Per correggere l'errore "avrdude: stk500_getsync (): not sync: resp = 0x00". Installa il driver FTDI versione 2.8.24.0. Vi sono alcuni problemi con il nuovo driver v2.8.28.0.


-1

Durante l'upload dei codici da Arduino IDE sul tuo computer, estrarre il pin RX 0. della scheda Arduino Avrai il caricamento del codice riuscito. Scollegare il pin RX e provare. Oppure, potresti mettere (forse) l'RX bluetooth sull'RX di Arduino in modo che i TX siano collegati tra loro.

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.