Pages: [1] 2 3 ... 5   Go Down
Author Topic: caricare sketch con un altro arduino  (Read 4105 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

salve smiley

ma sarebbe possibile inviare uno sketch da un arduino ad un altro? ad esempio su un arduino ho  file hex con il relativo sketch che me lo trasmette e tramite i pin tx e rx  collegati al secondo arduino esso viene flashato con il programma inviato ... non so se mi sono spiegato smiley
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22924
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si può fare.
Puoi memorizzare il file hex su una scheda SD e da lì leggerlo e flasharlo sull'altro Arduino. In questo modo puoi aggiornare il firmware sulla SD. Se il 1° Arduino è collegato ad un PC allora basta installargli sopra lo sketch ArduinoISP e poi puoi usare l'Arduino come programmatore ecc...
Sono tutte cose fattibili, ma non è detto che per tutti i casi ci sia il programma già pronto.

Spiega casomai meglio la condizione di lavoro dei 2 Arduino
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io ho provato ad utilizzare questo circuito di collegamento senza però l'optional FTDI debugging

http://baldwisdom.com/bootdrive/

caricando sull'arduino collegato alla sd (la quale riesce a leggere un file.txt correttamente caricando l esempio dumpfile) il file bootdrive.ino contenuto nella cartella zip che si puo scaricare dal sito, sulla sd ho caricato il file blink.cpp.hex rinominandolo program.hex
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22924
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa, non capisco.
Hai provato a realizzarlo e non ti ha funzionato oppure lo hai solo studiato?
Anch'io l'ho guardato quel progetto, tempo fa, ma non l'ho ancora provato. Però dovrebbe funzionare se le cose sono state fatte correttamente.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho provato a realizzarlo ma non funziona ho utilizzato un arduino duemilanove (con bootloader dell'uno) e un arduino uno , all'arduino duemilanove e collegata la sd (non il modulo sd ma proprio un adattatore sd dove inserisco dentro le micro e provando a caricare i file txt con l'esempio dumpfile arduino li legge benissimo quindi non credo che il problema si nell'SD) ...
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22924
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho esaminato il firmware, bisognerebbe capire come funziona.
Vedo però che è stato scritto sulla Uno, non so se usando la 2009 cambia qualcosa. C'era una nota a piè di pagina in cui accenna al fatto che se la scheda target non è una Uno va cambiata la velocità di upload. POtrebbe valere anche sulla scheda programmatrice?
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

potrebbe essere tanto vale tentare, proverò ad invertire i due arduini usando la uno come programmatore e la duemilanove come target e cambiando la velocità nel programma , appena ho fatto ti dico  smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

niente nessun segno di vita  smiley-cry ... mi serve un aiuto  smiley-red
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22924
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai collegato il pin SS correttamente? La comunicazione all'SD avviene tramite SPI e quel pin è necessario per dialogare con la schedina.

PS:
se la tua necessità è quella di poter aggiornare il firmware di una Arduino da una schedina SD, potresti provare anche il progetto 2boot:
https://github.com/thseiler/embedded/tree/master/avr/2boots

E' un bootloader modificato che "dovrebbe" permettere l'upload di uno sketch memorizzato su SD direttamente sul chip, senza usare schede terze. Potresti provarlo. E' un progetto vecchiotto, ha 2 annetti.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

l ss è collegato correttamente al pin 10, infatti con il dumpfile funziona ....si avevo gia pensato di utilizzare 2boot ma non riesco proprio a capire come andava installato il bootloader avrdude ecc non so come usarli mi sarebbe servita una spiegazione dettagliata, questo mi sembrava più facile  smiley
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22924
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Metti un chip in standalone, lo colleghi come per la programmazione ISP (vedi guida del Menniti) poi apri un terminale e carichi il firmware con avrdude.
Un'altra via è quella di mettere il firmware in una cartella sotto /hardware/arduino/bootloaders/ e poi creare una board virtuale nel file /hardware/arduino/boards.txt, magari replicando quella della UNO e cambiando solo le voci interessate.

mettiamo ad esempio che crei la cartella /hardware/arduino/bootloaders/2boot e dentro ci copi il file .hex che rinomini come bootloader_2boot.hex.
Una board potrebbe essere questa:

Code:
2boot.name=Arduino 2boot
2boot.upload.protocol=arduino
2boot.upload.maximum_size=32256
2boot.upload.speed=115200
2boot.bootloader.low_fuses=0xff
2boot.bootloader.high_fuses=0xde
2boot.bootloader.extended_fuses=0x05
2boot.bootloader.path=2boot
2boot.bootloader.file=bootloader_2boot.hex
2boot.bootloader.unlock_bits=0x3F
2boot.bootloader.lock_bits=0x0F
2boot.build.mcu=atmega328p
2boot.build.f_cpu=16000000L
2boot.build.core=arduino
2boot.build.variant=standard

Avviando l'IDE, carichi lo sketch ArduinoISP sulla UNO usata come programmatore, poi selezioni da Strumenti/Tipo di board la scheda "Arduino 2boot" e clicchi su "Scrivi bootloader".
In questo modo prepari il chip con i fuse ed il bootloader
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ook grazie per l'aiuto provo a fare il secondo metodo con l'arduino isp  , ma quale sarebbe il file del 2boot? che dal sito non capisco quale sia e non vorrei sbagliare smiley
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22924
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I file precompilati sono nella cartella build:
https://github.com/thseiler/embedded/tree/master/avr/2boots/build
 
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io copio in il contenuto della pagina 2boots-arduino-atmega328p-16000000L-nommc.hex (cioè copio tutte le scritte in esadecimale ) e creo un file .hex lo rinomino bootloader_2boot e lo inserisco nella cartella /hardware/arduino/bootloaders/2boot, creo la boards e poi eseguo il bootloader normalmente, no?  smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il programma mi da questo errore

Logged

Pages: [1] 2 3 ... 5   Go Up
Jump to: