Condivisione SD

Ciao a tutti, è possibile condividere una sola shield SD con due schede Arduino allo scopo di far leggere uno sketch da uno dei due, è programmare l'altro?

Grazie

Per primo non credo esista il Sketch per farlo e anche se esistesse non capisco perché devi condividere la SD. Il .hex dello Sketch deve andare dalla SD tramite SPI al Arduino e quello deve darlo via seriale al Arduino da programmare.

Ciao Uwe

Grazie per la tua risposta. L'idea di utilizzare SD condivisa è perché su quella arriva lo sketch via GPRS, l'obbiettivo sarebbe di programmare l'Arduino dotato di GPRS + SD via remoto, sempre se è possibile farlo.

Ciao

Non so ancora se é fattibile. L' arduino che deleghi come programmatore puó ricevere i dati via GPRS e metterla sulla SD poi prenderli dalla SD e programmare il secondo Arduino.

Mi preoccuperei prima di trovare uno sketch che puoi fare l' upload su un altro Arduino.

Ciao Uwe

Esiste un bootloader che può fare il flash dello sketch ricevuto tramite seriale oppure residente su una SD http://seili.net/weblog/2010/07/14/avr2boots-dual-bootloader-released/ Il codice lo trovi qui: https://github.com/thseiler/embedded/tree/master/avr/2boots/

Però non so che grado di affidabilità e di compatibilità con le ultime schede ha.

Ottimo grazie, è già un buon punto di partenza, non so ancora come risolvere la lettura della SD, perché l'arduino da programmare è proprio quello con il GPRS... :~, per ora inizierò a testare il bootloader.

BigByte: Ottimo grazie, è già un buon punto di partenza, non so ancora come risolvere la lettura della SD, perché l'arduino da programmare è proprio quello con il GPRS... :~, per ora inizierò a testare il bootloader.

come? allora lo sketch arriva sulla scheda da programmare che riprogramma la scheda SD su cui è appoggiato il proprio sistema? XD

la cosa migliore se proprio e usare un transistor e una scheda sd, quando arriva il segnale gprs (sull'arduino programmatore) stacca dalla corrente l'arduino da programmare, prende la sua scheda sd, la modifica e si stacca dalla sd quindi avvia nuovamente l'arduino da programmare.

così puoi usare il bootloader che legge da sd ;)

o almeno se ho capito bene lo sketch risiede semrpe su sd, oppure viene portato su flash? :roll_eyes:

Superlol, da quel bootloader può prendere spunto per il codice per creare il suo sketch :wink:

superlol:

BigByte: o almeno se ho capito bene lo sketch risiede semrpe su sd, oppure viene portato su flash? :roll_eyes:

lo sketch risiede sempre su sd.

Aspetta un attimo. Lo sketch non può essere eseguito da SD, lo sketch deve sempre risiedere su Flash per essere eseguito dal microcontrollore. Questo è un punto che deve essere chiaro.

In alternativa, se i compiti da eseguire sono semplici, puoi pensare a Bitlash: http://bitlash.net/wiki/start

Bitlash è un interprete che risiede su Flash in un 328 o Arduino e può eseguire degli script (lunghi anche centinaia di kB) che risiedono su una SD da cui legge i comandi e li interpreta

leo72:
Aspetta un attimo. Lo sketch non può essere eseguito da SD, lo sketch deve sempre risiedere su Flash per essere eseguito dal microcontrollore.
Questo è un punto che deve essere chiaro.

In alternativa, se i compiti da eseguire sono semplici, puoi pensare a Bitlash:
http://bitlash.net/wiki/start

Bitlash è un interprete che risiede su Flash in un 328 o Arduino e può eseguire degli script (lunghi anche centinaia di kB) che risiedono su una SD da cui legge i comandi e li interpreta

in tal caso basta un solo arduino che salva il programma sulla scheda sd esterna, quindi si autoresetta (bisogna fare un free delle variabili e poi una riga in assembler) e il bootloader si riprogramma XD

Bitlash non è un caricatore di sketch né un bootloader, ma un interprete per un linguaggio di scripting. Non va riprogrammato ma semplicemente va cambiato il file che sta eseguendo sulla SD.

leo72: Esiste un bootloader che può fare il flash dello sketch ricevuto tramite seriale oppure residente su una SD http://seili.net/weblog/2010/07/14/avr2boots-dual-bootloader-released/ Il codice lo trovi qui: https://github.com/thseiler/embedded/tree/master/avr/2boots/

Però non so che grado di affidabilità e di compatibilità con le ultime schede ha.

Con schede sdhc non va, e non va nemmeno son schede > 2gb .... infatti mi sa che per le mie necessità cambio direzione!!

Bitlash potrebbe andare? Cosa deve fare l'Arduino "programmabile"? Deve eseguire un programma complesso oppure no?

leo72: Bitlash non è un caricatore di sketch né un bootloader, ma un interprete per un linguaggio di scripting. Non va riprogrammato ma semplicemente va cambiato il file che sta eseguendo sulla SD.

io intendevo usando il bootloader che si riflahsa usando il firmware su sd ;)

Metti un quote, allora. Nel mezzo c'era un altro mio intervento e pareva ti riferissi a quello ;)

che casino.... mi piace :)

Testato: che casino.... mi piace :)

non è un casino, semplicemente deve scrivere su un file da sd ciò che riceve via gprs, quindi resetta arduino, il bootloader quindi si avvia e legge da sd, prende ciò che c'è scritto e se lo porta nella flash XD

forse il casino sarà la parte del reset software perchè bisognerà liberare la ram..

superlol:
forse il casino sarà la parte del reset software perchè bisognerà liberare la ram…

Meglio un circuito esterno, magari un 555 che metta a low per un mezzo secondo il pin di reset così siamo sicuri che il reset sia hw e non sw.

leo72: Bitlash potrebbe andare? Cosa deve fare l'Arduino "programmabile"? Deve eseguire un programma complesso oppure no?

bello Bitlash :) solo che dovrei riscrivere tutto nel linguaggio di scripting... :(, e forse non è neanche possibile. L'Arduino programmabile ha 2 sensori Temperatura + GPS, il programma è diventato complesso per il semplice fatto che i dati non devo essere persi.