TFT 3.2

Salve, l’immagine riporta la posizione dei pin sul banco del TFT…
Il mio problema è cambiare la posizione dei pin su Arduino AtMega 2560…
Ho necessida di modificare i pin perchè gli stessi pin del TFT sono gia usati da Ramps 1.4 (3D Printing)
I pin del TFT sono 19 dal 22 al 41 più il Touch e SD ma per quest’ultimi la libreria da modo di cambiare…
E possibile la modifica? Se si quale file va modificato?

Grazie in anticipo

3.2TFT_pin.jpg

Quale libreria usi?

UTFT

Dovresti dirci che lib stai usando, la palla di vetro ce l'hanno solo Uwe e Astro (UweBox and AstroBox . All rights reserved ]:D )

Prima usavo ITDB02_Graph poi ho aggiornato l’IDE e non leggeva più il TFT ho dovuto scaricare questa … (allegato)

UTFT.h (7.88 KB)

Hai il link da dove l'hai scaricata? Quel file è solo uno di quelli che compongono la libreria.

Li non cè la dichiarazione dei pin usati, hai solo quel file ?

nid mi hai preceduto...

http://henningkarlsen.com/electronics/library.php?id=52

E' molto semplice.

Nel file UTFT.cpp trovi il costruttore di Classe:

UTFT::UTFT(byte model, int RS, int WR,int CS, int RST, int SER) { }

mentre nel tuo file (schetch) avrai la dichiarazione dell'Istanza, completa dei pin. Qualcosa del genere:

UTFT myGLCD(SSD1963_800ALT,38,39,40,41);

Tu avrai un altro driver pilota del TFT e forse anche pin diversi.

Analizzando il costruttore puoi vedere che i pin corrispondono ai vari segnali del display. Il primo pin è il segnale RS del Display, il secondo il segnale WR, il terzo il CS e così via (l'ultimo, SER, non viene utilizzato).

Sostituendo i numeri 38,39,40,41, o quelli che hai tu ADESSO nella dichiarazione, con altri cmq liberi da altre periferiche, avrai ottenuto quello che cerchi.

Ho gia analizzato sia il datasheet che le piste della scheda.. sul programma posso solo cambiare i quattro che hai menzionato.. ma devo lasciare invariati i pin che vanno dal 22 al 37 su arduino.. e sono proprio questi 15 che devo cambiare, dando altri 15 pin tramite arduino...

Secondo la il file della libreria UTFT.cpp , se usi una mega e su AVR (no pic32 o arm) allora carica il file
hardware/avr/HW_ATmega1280.h

Presumo sia li dentro che vengano stabiliti gli altri pin.

Vado a dare un'occhiata ai file di libreria per vedere se si possono rimappare i 16 Pin dei dati (DB15-0). Probabilmente è anche possibile pilotare il Display in modalità 8 Bit (anzichè 16 Bit) con una riduzione delel prestazioni (che di per sè non sono già esaltanti).

i bit relativi all'accoppiamento Pin-DB (linee dati del TFT) purtroppo sono mascherati (nel senso che hanno una maschera, non che sono nascosti) quindi è molto difficile ricostruire tutte le maschere nel caso di modifica pin.

Prova a mandare una mail allo sviluppatore della libreria, che risponde sempre molto gentilmente.

Scusa, dove la trovo l'email dello sviluppatore?

Questo è il sito: http://www.henningkarlsen.com/electronics/

Ci sono le librerie grafiche, per la SD e per il TouchScreen.

Questo è il link per il contatto: http://www.henningkarlsen.com/electronics/contact.php

Tra l'altro vedo che proprio ieri è uscita l'ultimissa release della libreria e ne approfitto per aggiornare anchio. :)

Scusate ma non sono questi i pin??

case SSD1289: case SSD1289_8: case SSD1289LATCHED: LCD_Write_COM_DATA(0x00,0x0001); LCD_Write_COM_DATA(0x03,0xA8A4); LCD_Write_COM_DATA(0x0C,0x0000); LCD_Write_COM_DATA(0x0D,0x080C); LCD_Write_COM_DATA(0x0E,0x2B00); LCD_Write_COM_DATA(0x1E,0x00B7); LCD_Write_COM_DATA(0x01,0x2B3F); LCD_Write_COM_DATA(0x02,0x0600); LCD_Write_COM_DATA(0x10,0x0000); LCD_Write_COM_DATA(0x11,0x6070); LCD_Write_COM_DATA(0x05,0x0000); LCD_Write_COM_DATA(0x06,0x0000); LCD_Write_COM_DATA(0x16,0xEF1C); LCD_Write_COM_DATA(0x17,0x0003); LCD_Write_COM_DATA(0x07,0x0233); LCD_Write_COM_DATA(0x0B,0x0000); LCD_Write_COM_DATA(0x0F,0x0000); LCD_Write_COM_DATA(0x41,0x0000); LCD_Write_COM_DATA(0x42,0x0000); LCD_Write_COM_DATA(0x48,0x0000); LCD_Write_COM_DATA(0x49,0x013F); LCD_Write_COM_DATA(0x4A,0x0000); LCD_Write_COM_DATA(0x4B,0x0000); LCD_Write_COM_DATA(0x44,0xEF00); LCD_Write_COM_DATA(0x45,0x0000); LCD_Write_COM_DATA(0x46,0x013F); LCD_Write_COM_DATA(0x30,0x0707); LCD_Write_COM_DATA(0x31,0x0204); LCD_Write_COM_DATA(0x32,0x0204); LCD_Write_COM_DATA(0x33,0x0502); LCD_Write_COM_DATA(0x34,0x0507); LCD_Write_COM_DATA(0x35,0x0204); LCD_Write_COM_DATA(0x36,0x0204); LCD_Write_COM_DATA(0x37,0x0502); LCD_Write_COM_DATA(0x3A,0x0302); LCD_Write_COM_DATA(0x3B,0x0302); LCD_Write_COM_DATA(0x23,0x0000); LCD_Write_COM_DATA(0x24,0x0000); LCD_Write_COM_DATA(0x25,0x8000); LCD_Write_COM_DATA(0x4f,0x0000); LCD_Write_COM_DATA(0x4e,0x0000); LCD_Write_COM(0x22); break;

Si Sono i pin almeno penso.. per il semplice motivo che codificando (0x00) in decimale è un numero naturale

Per esempio (0C) = 12 il dubbio mi sorge spontaneo.. lo 0 che cosè? (0x)

0x è la notifica per indicare in alcuni linguaggi, come il C, i numeri esadecimali.

quindi sono questi??

Non torna.

I Pin dati sono 16, da DB0 a DB15, poi ci sono i segnali di controllo, ma quelli sono nella dichiarazione dell'Istanza.

Quell'elenco è lungo un kilometro, non 16 voci.