Go Down

Topic: caricare sketch con un altro arduino (Read 4543 times) previous topic - next topic

leo72

Legge male il file, pare che interpreti la riga del bootloader e quella di un fuse nel file boards.txt come un'unica riga.
Se sei su Windows ed hai editato il file con Notepad, forse il problema è questo. Prova aprendolo con un editor di testo "serio", su Windows c'è Notepad++.

nico0610

ok grazie  problema risolto e bootloader caricato... ma il destino non vuole proprio che carichi uno sketch da usb e mi ha dato un altro problema ... il bootloader l'ho caricato su un atmega  della  scheda 2009 che dato che ha lo stesso micro della uno  e con il bootloader normale  della uno  sulla 2009 andava pensavo che la seriale andasse anche con questo, invece no mi da l'errore avrdude: stk500_getsync(): not in sync: resp=0x00 ..... provando anche a metterlo in standalone niente nemmno da SD

leo72

Premetto che non ho capito se col chip standalone stai cercando di parlarci via seriale, dando per buono questo ti ricordo che il bootloader Optiboot differisce da quello della 2009 perché sono compilati per lavorare a velocità differenti.
L'Optiboot a 115200, quello della 2009 a 57600. Se vuoi caricare uno sketch via seriale su un chip esterno devi impostare la corrispondente velocità nella voce del file boards.txt.

PaoloP

Qui hanno realizzato la stessa cosa ma con la programmazione ISP --> http://www.gammon.com.au/forum/?id=11638
Quindi non serve il bootloader.

nico0610

oook ma ho provato a cambiare i valori della velocità e ancora niente non me lo carica... sul chip stand alone sto cercando di caricarci lo sketch via SD  ... paolop se non riesco a farlo andare con il bootloader provo con la soluzione suggerita da te :)

leo72

Quella di Paolo deve andare, programmano il chip via ISP.

nico0610

  come programmatore uso il duemilanove e come ricevitore uso il mega ... i due arduini sembrano essere collegati correttamente e anche la sd infatti mi dice il tipo di processore lo spazio nella memoria e pure il file su SD , ma quando faccio "write to flash esce " choose disk file"
inserisco il nome del file BLINK1.HEX  ma si blocca li a choose disk file.

nico0610

dimenticavo, dopo esce

Could not open file.
***********************************

leo72

Due pensieri in libertà: hai dei problemi di collegamenti; il micro che stai cercando di programmare non è vergine, per cui non è preimpostato di fabbrica a lavorare con l'oscillatore interno ma richiede un quarzo esterno.

nico0610

sto usando una duemilanove come programmatore e un mega come target (siccome l' atmega dove c'è installato il bootloader 2boot  non riesco più a caricagli altri bootloader credo si sia bruciato) i collegamenti credo siano giusti te li descrivo :

(duemilanove)    (mega)
D4                --> 52
D5                --> reset
D6                --> 50
D7                --> 51

Gnd              --> gnd
3,3v             --> 5v

la sd è collegata alla duemilanove come in questo schema




leo72


l' atmega dove c'è installato il bootloader 2boot  non riesco più a caricagli altri bootloader credo si sia bruciato

Non puoi averlo bruciato semplicemente caricandogli sopra un bootloader. Forse, più probabilmente, l'hai bloccato sbagliando i fuse. Ti servirebbe un programmatore H/V (12V) per poter rimetterlo a posto con la programmazione SPI. Michele Menniti ha realizzato un progetto molto completo pubblicato qualche mese fa su alcuni numeri di Elettronica In. Dovresti cercare nei vecchi post per ritrovare il thread in cui lo presentava.

Quote

) i collegamenti credo siano giusti te li descrivo :

(duemilanove)    (mega)
D4                --> 52
D5                --> reset
D6                --> 50
D7                --> 51

Gnd              --> gnd
3,3v             --> 5v

Ma perché quei pin? Li scegli con lo sketch di Nick Gammon?
E perché colleghi i 3,3V ai 5V dell'altra scheda? Non capisco.

nico0610

i pin li scelgo dall' immagine dove collega un arduino uno al mega  http://www.gammon.com.au/forum/?id=11638
3,3 v li uso per alimentare l'altro arduino al posto di collegare i pin dei 5v con il medesimo dell'altro arduino, siccome la sd va alimentata a 3,3 v volevo usare la stessa alimentazione . 

leo72


i pin li scelgo dall' immagine dove collega un arduino uno al mega  http://www.gammon.com.au/forum/?id=11638

OK.
Quindi è lo sketch che li imposta.

Quote

3,3 v li uso per alimentare l'altro arduino al posto di collegare i pin dei 5v con il medesimo dell'altro arduino, siccome la sd va alimentata a 3,3 v volevo usare la stessa alimentazione . 

L'Arduino vuole 5V. 3,3V sono troppo pochi per 16 MHz. Inoltre come li dai alla scheda?
Hai poi pensato che se fai lavorare la scheda a 3,3V gli spedisci comunque 5V sui pin ISP?
Devi dare giustamente i 3,3V alla SD ma all'altro Arduino prova dandogli i 5V.

nico0610

ho provato dandogli i 5v ma non cambia nulla , stessa identica situazione
Quote
Hai poi pensato che se fai lavorare la scheda a 3,3V gli spedisci comunque 5V sui pin ISP?


si infatti come dall' immagine che ho pubblicato nel messaggio precedente con un partitore la tensione in uscita sui pin spi viene ridotta a circa 3.3v

leo72

L'immagine che avevi messo era relativa al collegamento Arduino/lettore SD.
Io mi riferivo al fatto che se la seconda Arduino la alimenti a 3,3V ma la colleghi ad una scheda che lavora a 5V. Però ora mi dici che hai messo dei partitori sulle linee ISP....

Però non capisco.... di tutti i test che hai fatto, com'è possibile che tu non sia riuscito a far funzionare un metodo?
Non è che c'è qualcosa che disturba il processo? Ad esempio, se usi una breadboard sei sicuro che sia "sana"? Che non abbia contatti sciupati, ecc?

Non potremmo ripartire da un test come la programmazione di un semplice chip in standalone tramite lo sketch ArduinoISP, seguendo la guida di Menniti? Se questa operazione non funziona, c'è qualcosa che non funziona, e va capito se è la tua scheda, la breadboard o i collegamenti. Perché la programmazione ISP deve funzionare per forza.

Go Up