Arduino MEGA 2560 "morto"?

oniric:
Non vorrei aver cercato troppo superficialmente ma ho trovato solo questo:

Arduino Forum

Pare che serva un programmatore AVRISP mkII, che non costa proprio pochissimo.. :sweat_smile: Ti riferivi a questo?

Guarda, più di qualcuno l'ha scritta anche in Italiano qui sul Forum, la procedura, lo ricordo benissimo, ma non ricordo chi...
Siccome di tratta di caricare un firmware in un chip, io credo che tu lo possa fare benissimo usando un'Arduino UNO o Duemilanove come programmatore ISP, caricando il firmware (in forma di file hex) da linea di comando, con AVRDUDE.
Cerca sul Forum italiano...

Ho provato a collegare insieme un cavo convertitore da USB a Seriale RS232 e poi successivamente un altro convertitore che ho usato altre volte per programmare router tramite seriale (è un cavo di un vecchio telefonino praticamente). Supponendo che questa attrezzatura possa andare bene al mio scopo ho provato a fare questo

collegare TX dell'Arduino con RX del cavo e viceversa, collegare assieme le due masse e poi tentare dalla GUI l'Upload. L'arduino è connesso via USB da cui prende solo l'alimentazione. Appena clicco su upload effettuo il reset ma questo è l'output che ottengo:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: p [70] 
avrdude: Recv: . [ee] 
avrdude: Recv: . [de] 
avrdude: Recv: . [9e] 
avrdude: Recv: ~ [7e] 
avrdude: Recv: . [fe] 
avrdude: Recv: . [fe] 
avrdude: Recv: . [fe] 
avrdude: Recv: . [fe] 
avrdude: Recv: 
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: Send: . [1b] . [01] . [00] . [02] . [0e] . [03] . [90] . [85]

Ho provato con tutte le combinazioni di fili a dire la verità ma solo in una ottengo qualcosa che non sia un timeout ed è questa qui. Mi sapete consigliare qualcosa?

Premesso che mi pare una cosa un po' strana quella che hai fatto, comunque devi pilotare il segnale di RESET, altrimenit non riuscirai mai a inviare uno sketch. Per la verità potresti tentare di gestirlo manualmente, premendolo appena finisce la compilazione sull'IDE, però la vedo incasinata io questa cosa. Se possibile procurati un VERO convertitore USB-Seriale, con i segnali: +5V, GND, TX, RX, DTR (o RTS) e vai sul sicuro.

Ah ma quindi non basta premerlo all'inizio dell'upload? Deve essere continuamente sincronizzata la comunicazione?

oniric:
Ah ma quindi non basta premerlo all'inizio dell'upload? Deve essere continuamente sincronizzata la comunicazione?

Sì che basta, ma non è semplicissimo trovare il punto esatto, dovrebbe essere appena finisce la fase di compilazione e prima che inizi l'upload vero e proprio, ma ci vuole "esercizio" e nel tuo caso non sei nemmeno sicuro che il resto vada bene, ecco perché temo che tu ci perderai solo tempo lì

Boh, io ci ho provato un sacco tenendo sempre sott'occhio l'output di avrdude e il massimo che sono riuscito ad ottenere è quell'output che ho postato poco fa, quello che riceve avrdude sono sempre quei byte poi va in timeout...Non mi sembra un buon segno ma non so bene come interpretare la cosa. C'è qualche test che posso fare per vedere se la comunicazione seriale funziona correttamente?

oniric:
Boh, io ci ho provato un sacco tenendo sempre sott'occhio l'output di avrdude e il massimo che sono riuscito ad ottenere è quell'output che ho postato poco fa, quello che riceve avrdude sono sempre quei byte poi va in timeout...Non mi sembra un buon segno ma non so bene come interpretare la cosa. C'è qualche test che posso fare per vedere se la comunicazione seriale funziona correttamente?

Potresti mettere un micro in stand-alone con il bootloader a bordo, fare il collegamento seriale incrociato e provare a mandargli uno sketch, purtroppo l'autoreset è fondamentale, in questo caso sullo stand-alone devi montare il pulsante per il reset ed agire lì, magari la cosa è meno critica, ma io vedo male quella doppia conversione.
Guarda un buon convertitore costa tra 12 e 15 euro e ti servirà in moltissime occasioni, quindi ammesso che comprandono non risolvi il problema, ti tornerà utile con il nuovo Arduino che andrai a comprare; al tuo posto farei così, per me rischi di perdere un sacco di tempo inutilmente. magari una volta che impari la tecnica del reset manuale, usando il convertitore senza il pin reset, ti puoi togliere lo sfizio di vedere se il tuo attuale sistema funziona o meno, ma così ci sono troppe incognite in gioco.

Io un convertitore da USB a Seriale RS232 lo ho. Tu intendi questo tipo di convertitore?

EDIT: sono riuscito a riordinare un po' le idee, la Seriale Arduino richiede segnali TTL quindi non RS232 (+- 12 V) ma 0-5 V (lo scrivo qua perchè così me lo ricordo :cold_sweat:). Ho notato col multimetro che è più basso il segnale che esce dal TX del mio connettore, circa 4V, può essere che dia problemi questo?

oniric:
Io un convertitore da USB a Seriale RS232 lo ho. Tu intendi questo tipo di convertitore?

EDIT: sono riuscito a riordinare un po' le idee, la Seriale Arduino richiede segnali TTL quindi non RS232 (+- 12 V) ma 0-5 V (lo scrivo qua perchè così me lo ricordo :cold_sweat:). Ho notato col multimetro che è più basso il segnale che esce dal TX del mio connettore, circa 4V, può essere che dia problemi questo?

Il problema è proprio quello, Arduino opera con segnali seriali non compatibili con l'RS232, potresti usare un ulteriore convertitore tipo il MAX232, ma ripeto, è una inutile complicazione, almeno questo è il mio parere, e le tue prove per ora non mi danno torto...

Ho ordinato un convertitore USB-TTL dalla baia, con chip CP2102, dall'estero quindi ci vorrà un po' perchè arrivi, comunque come dici tu farà comodo averne uno per tante altre cose :wink: Intanto grazie del supporto, adesso attendo che arrivi e poi continuerà la mie epopea XD

oniric:
Ho ordinato un convertitore USB-TTL dalla baia, con chip CP2102, dall'estero quindi ci vorrà un po' perchè arrivi, comunque come dici tu farà comodo averne uno per tante altre cose :wink: Intanto grazie del supporto, adesso attendo che arrivi e poi continuerà la mie epopea XD

vedrai che finirà in due minuti :wink:

hallo.
Un convertitore USB-Seriale fa' sempre comodo, ma forse sarebbe piu' appropriato un Programmatore ISP-
Come questo ad esempio http://www.ebay.it/itm/280839395476?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649.
Lo usi direttamente da riga di comando o dall'IDE 1.0, ci programmi i fuse e non hai nemmeno bisogno di usare un Bootloader quando prepari degli Stand alone

brunello:
hallo.
Lo usi direttamente da riga di comando o dall'IDE 1.0, ci programmi i fuse e non hai nemmeno bisogno di usare un Bootloader quando prepari degli Stand alone

Fuse? Stand-alone? Scusa ma non so bene di cosa stai parlando XD Non sono esattamente un esperto..

scusa non ho letto tutto il post, ma collegando la board normalmente al pc, stacchi tutte la altre USB, e da terminale dai il comando "lsusb" che succede? mi posti il risultato?

lesto:
scusa non ho letto tutto il post, ma collegando la board normalmente al pc, stacchi tutte la altre USB, e da terminale dai il comando "lsusb" che succede? mi posti il risultato?

E' stata una delle prime cose che ho provato. Ho riavviato il PC con Linux e ho provato quel comando notando però che non cambiava niente nell'output se l'Arduino era collegato o meno...

Ragazzi con il connettore descritto qui

http://blog.tarn-vedra.de/2011/09/using-cp2102-on-arduino.html

ce l'ho fatta :slight_smile: L'unica difficoltà è stata collegare il pin reset dell'arduino al pin (meglio chiamarlo solder pad) DTR dell'adattatore. Quindi tutto è bene quel che finisce bene, ovviamente è un po' più complesso che con USB diretto ma meglio che buttare 50 euro XD

oniric:
Ragazzi con il connettore descritto qui

http://blog.tarn-vedra.de/2011/09/using-cp2102-on-arduino.html

ce l'ho fatta :slight_smile: L'unica difficoltà è stata collegare il pin reset dell'arduino al pin (meglio chiamarlo solder pad) DTR dell'adattatore. Quindi tutto è bene quel che finisce bene, ovviamente è un po' più complesso che con USB diretto ma meglio che buttare 50 euro XD

Te l'avevo detto, no? :wink:
Complimenti!!! :slight_smile:

Ragazzi, per caso leggendo altre cose prima mentre cercavo due tre info sull'adattatore mi sono imbattutto nel reset del chip 16u2 e ho cominciato a cercare con le parole chiave "16u2 DFU mode". Beh alla fine ho trovato una procedura e cortocircuitando dei pin ho resettato il chip che poi è stato riconosciuto da Windows. A quel punto con Flip, un software atmel l'ho riprogrammato e ora funziona di nuovo anche da USB. Fico! XD

Per chi si imbattesse in queste peripezie

http://www.wayneandlayne.com/blog/2011/02/16/fixing-linux-firmware-issues-on-arduino-mega-2560/

Però lo stesso comportamento dicevi di averlo anche con Windows. Quindi il firmware aggiornato ha sistemato anche i problemi con questo SO.

Buono a sapersi, per il prossimo.....
Mi interessa però questo "Flip", puoi dircene di più? Magari un link....