Go Down

Topic: [Risolto]Mancoato upload su Arduino Mega 2560 R3 (Read 2541 times) previous topic - next topic

Vincenzo2888

Oct 09, 2012, 12:29 pm Last Edit: Oct 11, 2012, 02:26 pm by Vincenzo2888 Reason: 1
Salve a tutti,
vi presento un problema che da giorni mi sta logorando.
Ho già cercato sul forum e su qualsiasi altro motore di ricerca una soluzione ma quelle proposte non hanno mai risolto nulla.

Ho una scheda Arduino Mega 2560 R3 nuovissima. La collego al pc ( uno con windows 7, 64bt e un altro a 32 ) tramite la porta USB (utilizzo un cavo Rj45[edit: errore il cavo è quello giusto e non Rj45], quelli usati per le stampanti). La scheda è alimentata correttamente pare.

La prima volta che l'ho collegata al pc, tramite ide 1.0.1, ho caricato il blink e ha funzionato, dopodichè abbiamo giusto modificato i delay e ricaricato (giusto per capire i primi passi) e pure ha funzionato. Dopodiché ha smesso di lavorare. Provando a caricare qualsiasi altra cosa dopo la compilazione non succede nulla, si blocca e non fa niente altro. Il led del pin 13 è sempre acceso mente Tx e Rx sono spenti, solo in rare occasione danno un accenno di vita rapidissimo ma in maniera causuale.
Ho resettato tramite il pulsante, ma nulla. Ho provato a fare un  wdt_reset() ma non caricando lo sketch è inutile.
Ho provato anche:
-cambiare programmatore in strumenti, risultato: nulla
-ristallare driver, risultato: nulla
-usare altro cavo, risultato: nulla
-usare idle 0.22, risulatto: nulla
-scrivere il bootloader, risultato: avrdude: usbdev_open(): did not find any USB device "usb"

A volte dice che la porta è già un uso ma credo sia dovuto al fatto che prova a caricare lo sketch precedente senza fine. Su un pc usa la porta COM15 e sun un altro la COM3, non credo si infulente.

Il problema è stato riscontrato da molti altri utenti sul web ma le risposte sono state tutte fallimentari.

Ringazio anticipatamente per il vostro aiuto, se vi occorrono altri dettagli vi risponderò subito.

PaoloP

Ciao e benvenuto,
il cavo RJ45 è un cavo Ethernet


il cavo corretto è questo

ma credo sia solo un errore di scrittura.  :smiley-mr-green:

Vincenzo2888

Si scusa è stato solo un errore di scrittura. Il cavo è quello della seconda immagine

vic_20

L'ide ti da qualche indiocazione, cosa scrive quando provi a inviare uno sketch ??
????

cyberhs

Possono essere molti i motivi.

Cominciamo dal primo: hai per caso provato a collegare un LED esterno senza il resistore di limitazione della corrente?
Non è che hai provato a "giocare" con il Watchdog?

Prova questa manovra:
1) spegni il MEGA e togli il cavo USB
2) riaccendi il MEGA ed inserisci il cavo USB
3) attendi il beep del PC per l'avvenuto collegamento del cavo USB
4) fai partire l'IDE e controlla che la porta seriale virtuale sia presente e che sia selezionata la MEGA R3
5) carica lo sketch blink
6) fai l'upload e, poco prima che termini la compilazione, premi il reset sulla MEGA e tienilo premuto per due secondi
Quest'ultimo passo devi ripeterlo più volte perchè è difficile farcela al primo tentativo.

astrobeed


Salve a tutti,
vi presento un problema che da giorni mi sta logorando.


Hai scordato di dire quale errore ti ritorna l'IDE dopo il mancato caricamento dello sketch, perché se è vero quello che dici che dopo la compilazione non fa più nulla mi viene il sospetto che stai premendo il pulsante "verifica" e non quello "carica".

Vincenzo2888

#6
Oct 10, 2012, 02:59 pm Last Edit: Oct 10, 2012, 03:01 pm by Vincenzo2888 Reason: 1
sul pc con windows 7 a 64bit seguendo la procedura di cyberhs sembra funzionare
Quote
Prova questa manovra:
1) spegni il MEGA e togli il cavo USB
2) riaccendi il MEGA ed inserisci il cavo USB
3) attendi il beep del PC per l'avvenuto collegamento del cavo USB
4) fai partire l'IDE e controlla che la porta seriale virtuale sia presente e che sia selezionata la MEGA R3
5) carica lo sketch blink
6) fai l'upload e, poco prima che termini la compilazione, premi il reset sulla MEGA e tienilo premuto per due secondi
Quest'ultimo passo devi ripeterlo più volte perchè è difficile farcela al primo tentativo.


sul pc a 32 bit invece continua a non funzionare.Mi serve per forza che funziona su entrambi i pc. Da un errore che non capiamo:
avrdude: stk500v2_command(): unknown status 0xc8
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude: Send: . [1b] . [0d] . [00] . [03] . [0e] . [11] . [01] . [01] . [0a]
avrdude: Recv: . [1b]
avrdude: Recv: . [0d]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [11]
avrdude: Recv: . [01]
avrdude: Recv: . [01]
avrdude: Recv: . [0a]
avrdude: stk500v2_command(): unknown status 0x01
avrdude: stk500v2_disable(): failed to leave programming mode


avrdude done. Thank you.


si ho giocato 1 volta col Watchdog. cosa comporta?



cyberhs

Quote

si ho giocato 1 volta col Watchdog. cosa comporta?


... che è successo esattamente ciò che temevo e che è capitato anche a me.

tushev.org/articles/electronics/48-arduino-and-watchdog-timer

In pratica, il watchdog rimane attivo anche quando resetti il micro, per cui se lo sketch caricato l'ultima volta non contiene l'istruzione wdt_reset(), una volta partito il programma dopo il tempo impostato di watchdog il micro si resetta e così via in loop infinito.

Per ovviare al problema c'è la manovra che ti ho suggerito (sperando che tu non abbia predisposto un tempo di watchdog basso) cioè beccare il momento tra il reset e prima che scatti il watchdog per caricare un nuovo sketch che abbia come prima istruzione la disabilitazione del timer watchdog ()

Quote

To avoid this situation, the application software should always clear the Watchdog System Reset Flag
(WDRF) and the WDE control bit in the initialisation routine, even if the Watchdog is not in use.


leo72

Parlavi al plurale, hai fatto dei test con un amico che ha un'altra Arduino? Allora potresti usare l'altra scheda come programmatore ISP e riprogrammare sulla MEGA il bootloader. In questo modo cancelli il programma che ti blocca la scheda.

Vincenzo2888

Per quanto riguarda il  watchdog  ho risolto, ora su arduino ho caricato un semplice blink.

I test li ho fatti con un mio amico che ha un pc a 32 bit. Ci serve che funzioni su entrambi i pc dovendo svolgere un lavoro di tesi in modo da poter essere pienamente operativi.
Sul mio pc a 64 ora pare funzioni bene, mentre sul 32 restituisce l'errore che ho riportato prima
Quote
avrdude: stk500v2_command(): unknown status 0xc8
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude: Send: . [1b] . [0d] . [00] . [03] . [0e] . [11] . [01] . [01] . [0a]
avrdude: Recv: . [1b]
avrdude: Recv: . [0d]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [0e]
avrdude: Recv: . [11]
avrdude: Recv: . [01]
avrdude: Recv: . [01]
avrdude: Recv: . [0a]
avrdude: stk500v2_command(): unknown status 0x01
avrdude: stk500v2_disable(): failed to leave programming mode


Ora abbiamo pensato di fare un ripristino del pc e ristallare i driver e tutto quel che è connesso.

Tra l'altro stiamo trovando difficoltà anche a usare le librerie di Matlab, ma questa è un'altra storia. Vorrei risolvere prima il problema legato a questo errore.

cyberhs

Credo che il problema sia legato al driver USB.

Vincenzo2888


Credo che il problema sia legato al driver USB.


Quindi che drivers dobbiamo mettere? pc è un acer 5920 con windows 7 32bit
il ripristino non ha funzionato

cyberhs

Quello dato in dotazione con IDE 1.0.1

Vincenzo2888

Non so come non so perchè, ma ora funziona.
Ho smanettato con le configurazioni della porta com senza alcuna logia e ora pare vada. Spero solo che duri

Go Up