Ciao a tutti. Sto sperimentando con le schede arduino e
mi interessava molto il collegamento SPI per fare un progettino di robotica con tre schede.
Ho fatto un esperimento di collegamento SPI con una scheda Arduino Mega-2560 usata come Master e due schede Arduino-Uno usate come Slave.
Questo è lo schema di collegamento SPI che ho utilizzato per collegare le schede Arduino:
MASTER: Arduino MEGA 2560 16Mhz --> SLAVE(1) Arduino UNO r3 16Mhz
--> SLAVE(2) Arduino UNO r3 16Mhz
//
// schema mappatura dei pin SPI
// MEGA pin ............. UNO pin
// 50 MISO ------------> 12 MISO
// 51 MOSI ------------> 11 MOSI
// 52 SCK ------------> 13 SCK
// 53 SS ------------> 10 SS
//
//
// schema mappatura dei pin SPI
// MEGA pin ............. UNO pin
// 50 MISO ------------> 12 MISO
// 51 MOSI ------------> 11 MOSI
// 52 SCK ------------> 13 SCK
// 47 SS ------------> 10 SS
//
Il problema è il seguente: quando resetto la scheda master con il pulsante di reset, anche le due schede slave vengono resettate!
In questo caso mi sembra comprensibile che succeda questo effetto dovuto sicuramente al reset del processore sulla scheda master..
Però ho fatto anche una prova diversa resettando solo la scheda slave(1) premendo il suo pulsantino di reset e ho notato con mia sorpresa che anche la scheda slave(2) viene resettata!
Io pensavo che le schede Slave erano indipendenti dal segnale di Reset o comunque erano indipendenti.
Come si spiega questo problema?
Il collegamento SPI implica questo effetto di reset su tutte le schede slave??
Esiste una soluzione per ovviare a questo problema di reset?
Buonasera,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiIN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
Cominciamo intanto con il dire che il bus SPI è nato per collegare IC vicini tra loro e NON per portare in giro i segnali su distanze oltre qualche cm. E' un bus molto veloce, in cui contano i fronti di salita e le tempistiche e dove, già più di 10/15 cm. di cavo, possono creare grossi problemi di funzionamneto.
Premesso questo però, NO, il reset NON è normale, salvo che tu, per rapidità e pulizia, non abbia usato il connettore a 6 pin ISP di Arduino dove sono si presenti i segnali del bus SPI, ma ... è presente anche il segnale di reset che, ovviamnete, si trasmette da una scheda all'altra.
La ringrazio per la esauriente risposta sig. Guglielmo. Non ho usato il connettore ISP a 6-pin di arduino. Ho usato i pin digitali che sono abbinati ai segnali spi. Non sapevo che la distanza del collegamento spi era cosi limitata. Comunque mi ha fatto venire un idea siccome mi ha detto che il reset non è normale.. farò una prova con gli stessi collegamenti MA senza caricare nessun sketch sulle tre schede. Perche mi ero dimenticato di spiegare che sulle 3 schede avevo caricato un codice di prova che inizializzava in modo opportuno le tre schede per inviare e ricevere dati via spi utilizzando la ISR dedicata all intr dell spi (sulle due slave) mentre sulla master avevo caricato un sw che inviava dati alle due slave..
Cordiali saluti
Davide