Conflitto tra Ethernet Shield W5100 e Touch TFT SPI XPT2046 con Arduino UNO

Buonasera,
Scrivo per richiedere supporto riguardo un problema che sto riscontrando con la Ethernet Shield W5100 installata su un Arduino UNO al quale ho successivamente installato un display touch SPI XPT2046 240x320.
Il problema è che con il display la scheda ethernet non funziona più, cercando su internet ho capito che il problema è un pin in comune ma essendo neofita neofita non mi è ancora chiaro.

Se collego direttamente il display funziona, se collego solo la shield riesco ad assegnare un indirizzo IP e mettere l'Arduino in rete, ma se collego i 3 elementi insieme funziona solo il display.

Cosa posso fare per utilizzare "a panino" l'Arduino UNO, l'Ethernet Shield e il display touch? Avete consigli?

Grazie mille.

Hai capito quale sia ilnpin in comune?

Credo il 10 :thinking: ma non c'è una logica in questo, credo solo di averlo letto

Buonasera e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento, fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

@Standardoil: ... ti prego di prestare più attenzione, prima di rispondere, alla presenza o meno della presentazione. Grazie.

Potrebbe essere

Devi controllare tra gli esempi per uno e per l'altro shield quale sia il pin di chip select

Se sono uguali (e potrebbero essere il 10) devi fare alcune cose

Scegli a quale shield piegare il pin (10) per evitare che faccia contatto
Io userei lo shield messo sopra

Scegli un "nuovo" pin di chip select per quello shield ( che non sia utilizzato)
Cambi quindi la sua inizializzazione nel programma
Poi con un cavetto fai un ponte tra il "nuovo" chip select e il pin 10 sconnesso dello shield superiore

Se le librerie sono scritte bene va tutto
Se sono scritte coi piedi e lasciano attivi dei pin del bus SPI niente da fare

Ma vale la pena provare
So di gente che ha avuto fortuna

Ostia...
Chiedo scusa...

Chiedo scusa :slight_smile:
Ho provveduto subito!

Conosci come funziona il bus SPI? ... QUI un tutorial e QUI un'altro.

In pratica alcuni pin sono in comune tra tutti i devices (MISO, MOSI e SCK) mentre UN pin, che serve ad indentificare il device con cui si vuole parlare, DEVE essere univoco per ciascuna scheda.

Guglielmo

Grazie mille, consiglio preziosissimo! Domani ci provo immediatamente e comunico l'esito. Grazie ancora :slight_smile:

Questa nozione mi ha già chiarito molto, grazie mille non lo sapevo che funzionasse in questo modo.

Buongiorno,
volevo condividere con voi le ultime info circa l'installazione "a panino", permettetemi il termine, delle shields Ethernet e TFT display.

Oggi miracolosamente mi è venuta la malsana idea di rimuovere la SD installata nella Ethernet shield... et voilà!
Display ed Ethernet shield funzionanti, indirizzo IP acquisito in automatico e visualizzato a display!

Ora risolto un problema se ne pone un' altro.
Proverò a risolvere e a comunicare l'esito e la procedura seguita.

image

Allora, come ti ho detto, ogni device usa un pin di CS/SS sul bus SPI ...
... uno la Ethernet, uno la SD, uno il Touch, ecc. ... e DEVONO essere tutti diversi o hai conflitti.

Quando monti shield, che usano il bus SPI, a sandwich, DEVI sempre accertare questa cosa.

Guglielmo

Buonasera,
Volevo informarvi che finalmente sono riuscito a risolvere il problema. Guardando un pò di info da voi suggerite, la procedura che hobseguito è stata quella di disabilitare i pin della SD per inizializzare la scheda Ethernet. Successivamente ho inserito il codice per andare ad effettuare la chiamata http del webserver presnete nella SD. Grazie per il supporto!