Problemi con SPI arduino Mega

Ciao Ragazzi
Ho inserito in un arduino mega una ethernet shield 5500 con sd card
Il tutto funziona regolaremente e senza alcun problema
Ho provato a collegare un TFT ST 7735S display 128 x 160 alla SPI arduino dei pin 50>>53 ma non funziona
Ho provato con la libreria adafruit e UCG ma niente ..
Il tutto funsiona in questi pin solo se uso i file esempi del TFT ma senza usare le libreie della ethernet shield.

Per far funzionare il tutto con il software completo del mio mega , incluso quello della ethernet shield, devo invece collegare il display alla SPII dei pin 11>>13 che urtoppo i non posso usare in quanto già impegganti nel mio programma.
Sembra di fatto che con la ethernet shield l'arduino riconosta la SPI solo nei pin 11>>13 e non nei 50>>53....??

In soatanza non so come fare a far funzionare il tutto con ethernet shield collegata mio mega con il conettore a pettin e il TFT invece collegato ai PIN 50>>53.
Ho fatto divese prove anche cambiando il CS ma il problema rimane sembra che la SPI funzioni solo con i Pin 11>>13

Grazie in anticipo del suppoto

Fabio

Hai postato nel forum inglese e usiamo l'inglese lei. Forse vuoi richiedere al moderatore di spostare il post nella sezione Italien?

Si grazie
Per cortesia mi dai inficazioni per accedere a quello italiano
Grazie mille

" inficazioni" does not translate in Google translate. Ask moderator to move Your post, or write in English here.

@rubehome: Buongiorno ...
... vedo che sei recidivo ... e noi stiamo ancora aspettando quanto ti avevo chiesto a suo tempo ...

Guglielmo

Buongiorno
Guglielmo mi scuso ma francame non ho capito come accedere a quello in italiano
Ero in italian linguge e pensavo di essere in quello italiano .
Grazie

Se hai letto bene il messaggio vecchio, c'è esattamente il link che ti porta alla sezione Italiana del forum ... un conto è la lingua con cui il browser ti mostra i menu ed i messaggi, un conto sono le varie sezioni del forum (ed evita di usare la traduzione automatica delle pagine con Google che non ti permette di renderti conto di dove ti trovi).

Per cui, rileggi con attenzione quanto ti avevo scritto in precedenza, fai quanto richiesto e poi ci si sente qui :wink:

Guglielmo

Inoltre considera che, se ti perdi sistematicamente parti di parole, si fa fatica a interpretare quanto scrivi ed è anche impossibile, da parte del traduttore, tradurlo in inglese. Eppure, dopo la rilettura alla fine della scrittura, che almeno ai miei tempi a scuola era di regola, non dovrebbero rimanere errori...

Grazie Guglielmo ...
Di solito entro nel forum con il mio account di google e penso di fatto di essere nel forum italiano ...
Ora ho provato a pubblicarlo in inglese.

Grazie ancora e scusatemi ...

NO, non hai capito ... SEI NELLA SEZIONE ITALIANA e inoltre, se hai due account (dici di avere un account google con cui entri sul forum) sei passibile di BAN.

Quindi:

  1. il tuo post in alto, dato che sei nella sezione Italiana del forum, è stato rimesso in Italiano.
  2. NON hai ancora fatto quanto ti è stato richiesto, ovvero la tua presentazione.
  3. Sembra tu stia violando il regolamento avendo più di un account.

Ti chiedo pertanto ancora una volta:

  1. 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.

  2. Decidi con quale account vuoi fare login nel forum perché, per evitare il BAN, uno dei tuoi account va eliminato.

Attendo notizie, grazie,

Guglielmo

Mi presento
37 anni fa mi sono diplomato in elettronica e a 16 anni avevo interfacciato il mio commodore Vic 20 con la porta parallela per fare il mio primo "embrione " di plc , utilizzando la porta come input e output .
Con gli adesivi e trasferibili avevo fatto il mio primo circuito di rame , come si faceva una volta scioglindo poi la basetta nell'acido.
La passionemmi è sempre rimasta ma oggi con arduino e kikad ho ritrovato la voglia di coltivare ancora questa passione nonostante i 55 anni di età.

Ora per gli account provo a verificare e capire come uscirne una volta per tutte
Scusatemi ancora e grazie per la pazienza
Fabio

Perdona, ma ... hai letto attentamente quanto ho scritto?

La presentazione va fatta NELL'APPOSITA DISCUSSIONE ... qui, in breve tempo, scompare sommersa dai vari post mentre nell'apposito thread è dove tutti la cercano prima di rispondere, quindi, cortesemente, copia/incolla dove indicato, grazie :slight_smile:

Guglielmo

Fatto ,
Ho copiato la presentazione
Grazie ancora per il supporto Guglielmo
Fabio

NO, su arduino MEGA è chiaramente specificato che la Ethernet shield lavora sfruttando il bus SPI che è riportato sul connetore ICSP a 6 pin inoltre faiattenzione perché ... normalmente le Ethernet Shield usando anche altri pin per il CS sia della parte Ethernet che della SD.

Quale Ethernet Shield possiedi (link)?

Guglielmo

Se carico il file esempio tft :slight_smile:
#define cs 53 // CS
#define dc 50 // DC
#define mosi 51 // MOSI
#define sclk 52 // SCLK
#define rst 48 // RST can use any pin

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, mosi, sclk, rst);

con questi funziona solo con il file esempio del TFT
Con il mio programma invece funziona solo parzialemnte se cambio la sequenza dei setup facendo prima caricare il codice del TFT e poi quello della ethernet. In nquesto caso il TFT sembra comunicare e pulisce lo schermo , ma poi si arresta.

Per la ethernet uso pin 10 metre per la SD uso Pin 4 e per il TFT display uso il 53 ma ninete da fare

Il tutto funziona solo se collego il display ai pin 11,12,13 ...

Se guardi come è fatta la MEGA vedi che il bus SPI NON arriva sui pin 11,12 e 13 come sulla UNO, ma sui pin 50, 51 e 52 che sono sul pettine in fondo e ripetuti, ovviamente, sul connetore a 6 pin ICSP. Gli shield standard NON sono in grado di connettersi con i pin del connettore lungo in fondo alla scheda e quindi sono predisposti per utilizzare il connettore a 6 pin ...

Nota bene che:

On both boards, pin 10 is used to select the W5500 and pin 4 for the SD card. These pins cannot be used for general I/O. On the Mega, the hardware SS pin, 53, is not used to select either the W5500 or the SD card, but it must be kept as an output or the SPI interface won't work.

Quindi, il pin 53 NON va usato, ma va definito come output.

Guglielmo

Grazie mille Guglielmo
Quindi in sistanza lascio libero il 53 come output e collego quindi il mio TFT con un latro pin di CS esempio 49 ..
Corretto ?

Ho provato inserendo la configugurazione sotto riportata ma ninete , non funziona ,

#define TFTcs 44 // CS
#define dc 50 // DC
#define mosi 51 // MOSI
#define sclk 52 // SCLK
#define rst 48 // RST can use any pin

Adafruit_ST7735 tft = Adafruit_ST7735(TFTcs , dc, mosi, sclk, rst);

Scusa, ma come lo hai collegato a quei pin ??? Il bus SPI è un bus molto veloce (viaggia sull'ordine dei MHz) e non ama fili volanti troppo lunghi ...

Però poi dici:

... ma allora funziona su quei pin o no ?

Guglielmo

provo a riepilogare:

Se uso il mio sketch in cui ci sono le librerie ethernet e altre librerie collegando il TFT alle uscite:
#define TFTcs 6 // CS
#define dc 12 // DC
#define mosi 11 // MOSI
#define sclk 13 // SCLK
#define rst 48 // RST can use any pin
Il TFT funziona

Se invece uso :
#define TFTcs 44 // CS
#define dc 50 // DC/MISO
#define mosi 51 // MOSI
#define sclk 52 // SCLK
#define rst 48 // RST can use any pin

Il TFT con questa configurazione non funziona .
Per essere certo con questa configurazione ho caricato lo sketch dei gli esempi che si trovano nella libreria e con i questi funziona correttamente

In sostanza c'è qualcosa che con la mio sketch lo fa funzionare solo nei pin 11>>13 e non con i Pin 51>>53.
Ho l'impressione che sia la libreia ethernet ...