ATMega328 standalone not in sync

Ciao, come già accennato in un post precedente ho appena acquistato un ATMega328 (con bootloader dell’Arduino Uno precaricato) da usare in standalone.

Per caricare lo sketch utilizzo un convertitore Seriale <-> USB con controllore FT232, ma quando tento di caricare qualsiasi programma (anche vuoto) ottengo l’errore:
avrdude.exe: stk500_getsync(): not in sync: resp=0x00

Questo errore sembra ricorrente nel web, ma non sono riuscito a trovare una soluzione!!
Vi allego una foto della board, magari vedete qualche collegamento errato (anche se l’ho controllato un sacco di volte).

-Se premo il tasto di reset l’ATMega si resetta e si vede il LED sul PIN 13 che lampeggia…
-Se collego/scollego il cavo USB del convertitore si sente in Windows (Win 8.1 x64bit) il classico suono di collegamento/scollegamento hardware
-Quando inizia l’upload il LED sul PIN 13 lampeggia, segno che l’ATMega si auto-resetta (come giusto che sia) e il LED TX del convertitore fa qualche lampeggio e poi basta…tutto buio :smiley: il LED RX non lampeggia…come se l’ATMega non comunicasse…
-Controllato che il collegamento tra:
ATMega Convertitore
TX RX
RX TX

Non capisco se è il convertitore a non funzionare, o l’ATMega…o questione di driver (ma mi pare siano installati correttamente)…o qualche errore nel circuito…

E’ tutto il pomeriggio che non ne vengo a capo…

intanto io vedo che nelle strisce di alimentazione in alto manca il collegamento al 5V

alex16: intanto io vedo che nelle strisce di alimentazione in alto manca il collegamento al 5V

Nella foto non è presente....a destra ci sono i due cavi di alimentazione che portano l'alimentazione sia sopra che sotto. Mentre se intendi il collegamento 5V in orizzontale, sulla mia breadboard non occorre....Le linee orizzontali sono collegate dall'inizio alla fine, senza alcun jumper!

Per farti capire meglio, i 5V vengono presi dal convertitore seriale-usb, e inseriti nelle linee in basso (colonna 15)

Ps: c'è modo di verificare se l'ATMega ha veramente il bootloader pre-caricato (non sono in possesso di una scheda Arduino completa)?

Credo che il problema sia di quei convertitori , ho avuto problemi anch'io programmando dei Mini Pro.

Prova questo trucco, con me ha funzionato: Appena dopo aver premuto"Carica" sull'IDE, premi sulla breadboard il pulsante di reset e tienilo premuto per tutta la fase di compilazione dello sketch. Appena sull'IDE esce " Caricando" , molla il reset. Attendi la fine, e se tutto è andato per il verso giusto , dovresti essere riuscito a caricare il tuo sketch. N.B fai qualche tentativo, all'inizio ci ho messo un po per trovare il timing perfetto :)

Perdi ore o giorni per niente, e ne perderai ancora molte in futuro se non compri un economico programmatore ISP per atmel, costano 5 euro o meno, e carichi tutti i BL di cui hai bisogno su qualsiasi MC vergine o bloccato

Mi riservo di guardare la foto ma intanto hai previsto un c da 100nF in serie tra dtr e reset del micro??

[quote author=Michele Menniti link=topic=259311.msg1831804#msg1831804 date=1407287970] Mi riservo di guardare la foto ma intanto hai previsto un c da 100nF in serie tra dtr e reset del micro?? [/quote]

Si, il condensatore c'è....è quello bianco con la scritta ".1J100"

nicostak: Prova questo trucco, con me ha funzionato

Con questo metodo, quando non ottengo l'errore proposto ad inizio post, questo:

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x41

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x41
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x42
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

icio: Perdi ore o giorni per niente, e ne perderai ancora molte in futuro se non compri un economico programmatore ISP per atmel, costano 5 euro o meno, e carichi tutti i BL di cui hai bisogno su qualsiasi MC vergine o bloccato

Preferivo utilizzare un convertitore usb-seriale perchè così poi avrei potuto utilizzare funzioni dedicate alla Seriale (giusto per il debug)....

Ciao, a occhio e croce devi shiftare a sinistra di un pin il cavo bianco del dtr. Cosi come è adesso il condensatore è collegato solo al pin di reset del micro :D

pighixxx:
Ciao,
a occhio e croce devi shiftare a sinistra di un pin il cavo bianco del dtr. Cosi come è adesso il condensatore è collegato solo al pin di reset del micro :smiley:

No, il collegamento c’è… :frowning:
Ripropongo altre foto un po’ meno incasinate e con la vista laterale.
Il condensatore l’ho alzato leggermente per far vedere il contatto…

Secondo me i casi sono potrebbero essere due…

  1. l’ATMega non è stato caricato con il bootloader;
  2. Il convertitore seriale ha qualche problema.

Dal convertitore dovrebbero uscire: TX, RX, RST, 5V e GND. Giusto? Hai collegato tutti i segnali compreso il reset e il GND?

Sei sicuro di collegare TX-RX e RX-TX e non TX-TX e RX-RX, a volte quei convertitori fanno brutti scherzi. :(

PaoloP: Dal convertitore dovrebbero uscire: TX, RX, RST, 5V e GND. Giusto? Hai collegato tutti i segnali compreso il reset e il GND?

Si, sono collegati tutti, anche perchè l'ATMega viene alimentato direttamente dalla tensione di uscita del convertitore, e in fatti il LED di "accensione" montato sulla breadboard si accende ;)

PaoloP: Sei sicuro di collegare TX-RX e RX-TX e non TX-TX e RX-RX, a volte quei convertitori fanno brutti scherzi. :(

Si, i collegamenti mi paiono giusti, ma ora provo ad invertirli....Non si sa mai!

EDIT: invertendo non è cambiato nulla....riporto come prima seguendo le indicazioni TX-RX e RX-TX

In che senso non è cambiato nulla. Ti da gli errori identici?

PaoloP: In che senso non è cambiato nulla. Ti da gli errori identici?

Si esatto.... Sia mettendo TX-TX, RX-RX che mettendo TX-RX, RX-TX ricevo lo stesso errore....

avrdude: stk500_getsync(): not in sync: resp=0x00

Ne avrei dovuto ricevere un altro?

DidyMond:

nicostak: Prova questo trucco, con me ha funzionato

Con questo metodo, quando non ottengo l'errore proposto ad inizio post, questo:

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x41

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x41 avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x42 avrdude: initialization failed, rc=-1         Double check connections and try again, or use -F to override         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

Comunque questo mi fa pensare ad un problema sulla linea di Reset.

Si. Invertendo i cavetti avresti dovuto avere errori diversi. Ma credo che il problema principale sia il reset che non va.

L'errore 0x51 indica la linea di reset bloccata su HIGH o su LOW, in modo molto più "violento" di come non faccia la normale resistenza di pull-up, quindi non penso sia un problema di bootloader, ma piuttosto di un ponticello in eccesso sulla bread o effettivamente di un problema del convertitore, servirebbe un DSO per osservare la linea e capirne il comportamento, ma forse anche un buon tester potrebbe "accorgersi" del problema.

PaoloP: Comunque questo mi fa pensare ad un problema sulla linea di Reset.

Che non resetta al momento giusti? Perchè se lascio fare tutto in automatico, quando tenta di caricare lo sketch il reset avviene (il LED sul PIN 13 lampeggia...)

Anzi, facciamo così....vi propongo un video che ho fatto, che è meglio di 100 parole! Ho fatto partire il video, poi ho premuto su carica sull'IDE....quando è uscito l'errore ho stoppato il filmato ;)! http://uploadmirrors.com/download/B0UEVX1X/Errore_arduino.rar

[quote author=Michele Menniti link=topic=259311.msg1832177#msg1832177 date=1407317347] ma piuttosto di un ponticello in eccesso sulla bread o effettivamente di un problema del convertitore, servirebbe un DSO per osservare la linea e capirne il comportamento, ma forse anche un buon tester potrebbe "accorgersi" del problema. [/quote] Se riesci a dirmi che misura fare con il tester magari vi posso essere d'aiuto

mi rifaccio a quanto detto da PaoloP.. Ma sul convertitore hai il RST o RTS ?

Brunello: mi rifaccio a quanto detto da PaoloP.. Ma sul convertitore hai il RST o RTS ?

Ammetto che sul seriale mancano le diciture bianche (già avvisato il venditore), i simboli si vedono in controluce e sono questi (a partire da sinistra tenendo la porta USB in basso): DTR - RX - TX - 5V - CTS - GND

Il reset va connesso al segnale DTS. Mi pare che l'ordine dei segnali sia quello dello standard FTDI.

Per curiosità: cosa hai selezionato come board nell'IDE: Uno o Duemilanove?

PaoloP: Il reset va connesso al segnale DTS.

Si esatto... ed è proprio come adesso, con in serie il condensatore da 100 nF

Sull'IDE, come si vede nella foto in allegato al video, ho selezionato Arduino UNO, essendoci il bootloader dell'Arduino UNO. Ma anche provando con l'"Arduino Duemilanove w/ATmega328" o "Arduino Pro mini 5V ATmega 328" solito errore di sincronizzazione...