Forum: Mikrocontroller und Digitale Elektronik TFT ansteuern?


von Leonard H. (Gast)



Lesenswert?

Hallo zusammen,
ich habe mir vor kurzem diesen TFT-Touch-Screen gekauft:
( 
http://www.ebay.de/itm/SainSmart-2-8-TFT-LCD-Display-Touch-Panel-TFT-LCD-Shield-For-Arduino-UNO-R3-/351045567646 
) ein Bild ist im Anhang.
kann aber leider nur den Display ansteuern, da ich die Einstellungen 
nicht weis. Ich verwende das Shield mit einem Arduino UNO R3 SMD, der 
TFT Controller ist ein ILI9325D. Im B.s. Sourccode habe ich den 
ILI9325D_16 eingestellt, den nur so wird Sinnvolles am TFT ausgegeben. 
Der TFT läuft also im 16 Bit Betrieb und es sind eigentlich keine Pins 
für den Touchscreen und die SD-Karte mehr über! Kann ich den Controller 
im Seriellen betrieb laufen lassen, und wen, mit welchen 
Einstellungen??? Vielleicht muss man die Jumper umstecken, oder immer 
zwischen TFT, Touch und SD-Karte hin und her schalten???
Hat jemand eine Idee oder sogar das selbe Problem gehabt???
Ich freue mich für jede gute Antwort!
leonard

von Leonard H. (Gast)


Lesenswert?

Hat wirklich niemand eine Idee???
LH

von Rambazamba (Gast)


Lesenswert?

Tut uns wirklich leid, dass wir dir nicht in 45 Minuten helfen können...

Aber das ist wohl der Zeitgeist der Arduino Nutzer. Bloß nicht denken 
und andere die Arbeit machen lassen.

X. H. schrieb:
> kann aber leider nur den Display ansteuern, da ich die Einstellungen
> nicht weis.

Sollte etwa da das Problem liegen? Kaum vorstellbar...

Nimm doch mal das DATENBLATT zur Hand und lese die Sachen nach. Dort 
steht alles drin was du brauchst. Wenn es dazu keinen Datenblatt gibt, 
les dir halt durch wie solche Displays im Allgemeinen angesteuert 
werden.

Sorry für den Ton, aber ich kann so ein Verhalten einfach nicht 
nachvollziehen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Beitrag "Re: Ansteuerung LCD ILI9341"
da hatten wir den ILI9341, mit Datenblatt. Darin sollte auch die URL des 
Herstellers stehen.

von nico (Gast)


Lesenswert?

Hello,
Maybe you have to move the blue jumpers on the side with inscription 
"SD/TOUCH" and then use the 8-bit driver for ILI9325

von Leonard H. (Gast)


Lesenswert?

Direkte Datenblätter dazu gibt es nicht, und aus dem Datenblatt vom 
Controller wird man auch nicht schlau, da steht zwar drin das es eine 
Serielle-Schnittstelle gibt aber ich habe keine Ahnung wie ich diese in 
der UTFT-Libary konfiguriere unter den unterstützten Controller habe ich 
auch schon geschaut.
Vielleicht hat jemand das Problem ja schon mal gelöst gehabt?
Oder kan mir irgendwelche Hinweise auf ein Datenblatt oder eine bessere 
Libary, als die UTFT, geben.
Leonard

von Leonard H. (Gast)


Lesenswert?

Thanks nico !!!

von grundschüler (Gast)


Lesenswert?

X. H. schrieb:
> Serielle-Schnittstelle

die Umstellung der verschiedenen Schnittstellen erfolgt bei den ilis 
durch jumper, die möglicherweise nicht herausgeführt sind. Da kannst du 
dann im Prinzip nichts machen. Kauf dir dieses display:
http://www.hotmcu.com/28-touch-screen-tft-lcd-with-spi-interface-p-42.html?cPath=6_16

von Leonard H. (Gast)


Lesenswert?

Doch! Die Jumper sind wie oben im Bild rausgeführt. Ich werde den Tipp 
von Nico ausprobieren.
LH

von Joachim B. (jar)


Lesenswert?

X. H. schrieb:
> der
> TFT Controller ist ein ILI9325D. Im B.s. Sourccode habe ich den
> ILI9325D_16 eingestellt, den nur so wird Sinnvolles am TFT ausgegeben.

also hast du doch kein Problem mit der TFT Ausgabe!

du willst den Touch Controler nutzen, also ist doch ILI9325D_16 nicht 
dein Problem!

mein Touch läuft auf
http://www.adafruit.com/product/1651

mit dem Controller
https://learn.adafruit.com/adafruit-2-8-tft-touch-shield-v2/touchscreen-paint-demo

STMPE610 driver chip und der braucht:
https://github.com/adafruit/Adafruit_STMPE610/archive/master.zip
1
#include <Adafruit_STMPE610.h>

mehr eingebunden
1
#include <SPI.h>
2
#include <Adafruit_GFX.h>    // Core graphics library
3
#include <Adafruit_ILI9341.h>
4
#include <Adafruit_STMPE610.h>
5
#include <Wire.h>      // this is needed even tho we aren't using it

wäre die Frage worauf deiner läuft?

von nico (Gast)


Lesenswert?

Hello Leonard,
Check this also: http://forum.arduino.cc/index.php?topic=268521.0. 
Explanations are in english. Hope to be helpful.
Best regards,
Nico

von Joachim B. (jar)


Lesenswert?

@Leonard,

mir fällt auf das du Fragen nicht richtig stellen kannst.

Warum ist die Überschrift: "TFT ansteuern?" wenn du schreibst:

X. H. schrieb:
> Ich verwende das Shield mit einem Arduino UNO R3 SMD, der
> TFT Controller ist ein ILI9325D. Im B.s. Sourccode habe ich den
> ILI9325D_16 eingestellt, den nur so wird Sinnvolles am TFT ausgegeben.

also TFT läuft!

aber:

X. H. schrieb:
> und es sind eigentlich keine Pins
> für den Touchscreen und die SD-Karte mehr über!

wo ist dein Problem,

Touch läuft nicht?
SD läuft nicht?

erst mal deine Frage richtig stellen, wie du selber sagst TFT läuft.

was läuft nicht?
hast du die Treiber installiert?
die Hardware richtig konfiguriert (Jumper, Lötstellen)?

von grundschüler (Gast)


Lesenswert?

X. H. schrieb:
> Doch! Die Jumper sind wie oben im Bild rausgeführt.

Deine Frage lautete
>Kann ich den Controller
>im Seriellen betrieb laufen lassen, und wen, mit welchen
>Einstellungen???:

Die jumper sind für die Umstellung 8bit/16bit, nicht für seriellen 
Betrieb.

von leonard (Gast)


Lesenswert?

>Check this also: http://forum.arduino.cc/index.php?topic=268521.0.
>Explanations are in english. Hope to be helpful.
Danke, aber der Sketch ist glaube ich für den Arduino Mega, da die 
Pinnummern bis über 40 gehen, und der Controller läuft hier auch im 16 
Bit Betrieb.

Wenn ich die Jumper auf die rechte Seite umstecke, für den 8 Bit 
Betrieb, und den Controller ILI9325D_8 auswähle, sieht man nur 
Schlieren. Nur im 16 Bit Modus funktioniert der Display, aber im 16 Bit 
Modus kann man halt nicht die SD-Karte und den Touch benutzen.

LH

von Joachim B. (jar)


Lesenswert?

leonard schrieb:
> Wenn ich die Jumper auf die rechte Seite umstecke, für den 8 Bit
> Betrieb, und den Controller ILI9325D_8 auswähle, sieht man nur
> Schlieren.

klar wenn der Treiber von 16 Bit ausgeht

leonard schrieb:
> aber im 16 Bit
> Modus kann man halt nicht die SD-Karte und den Touch benutzen.

du kannst anscheined immer noch nicht verstehen das der Jumper nur auf 
die Farbdarstellung 8 Bit oder 16 Bit des TFT wirkt, jedenfalls bei 
denen die ich kenne.

Ich musste auch erst hier lernen das SPI immer 8-bittig ist, also deine 
16Bit Wahl gilt nur für die Farbtiefe des TFT und dazu gehört auch das 
man 1 Byte oder 2 Byte pro Pixel überträgt, im Treiber richtig 
eingestellt.

SD und Touch ist ne völlig andere Baustelle, aber du beantwortest ja 
keinerlei Fragen,

Touch Treiber/Libs installiert?
SD Treiber/Libs installiert?

und richtig konfiguriert?

: Bearbeitet durch User
von Jojo S. (Gast)


Lesenswert?

die Doku zu dem Board bekommt man wohl nur auf Anforderung:
Documents:

    Please contact us via support@sainsmart.com after your purchase.

Hast du diese schon? Da sollte ja drin stehen wie Jumper+SW zu 
konfigurieren sind.

von grundschüler (Gast)


Lesenswert?

Joachim B. schrieb:
> das der Jumper nur auf die Farbdarstellung 8 Bit oder 16 Bit des TFT wirkt


das halte ich für eine Mindermeinung. Zumindest das ili9320 kann man 
nicht auf 8bit-Farbtiefe einstellen. Die 16bit-Farben werden bei spi und 
bei 8bit-Anschluss durch jeweils 2 Takte übertragen:
1
void  lcd_write_data_only(u16 dat){
2
spi_write(dat>>8);
3
spi_write(dat&0xff);
4
}

von leonard (Gast)


Lesenswert?

Die Jumper sind dazu da um den Display im 8 Bit oder 16 Bit Betrieb 
ansteuern, hat aber nichts mit der Farbtiefe zu tun. An den Support habe 
ich mich auch schon gewendet, geben aber keine Auskunft über die 
Programmeinstellungen, nur über Pinbelegung, und die stimmt dem Code 
überein.
LH

von Joachim B. (jar)


Lesenswert?

grundschüler schrieb:
> Die 16bit-Farben werden bei spi und
> bei 8bit-Anschluss durch jeweils 2 Takte übertragen:

das weiss ich auch und bestätigt was ich schrieb, 2x 8Bit gibt immer 
noch 16 Bit

Es gab TFT die mit 18 Bit angesteuert wurden, 3 Byte für flüssige Video 
Darstellung am PI zu lahm, mit dem "Trick" nur 65k Farben 2^16 zu 
übertragen was ein Byte weniger bedeutet war es 33% schneller, wenn der 
Treiber mitspielt und die Farben von 18 Bit auf 16 Bit runterrechnet.

grundschüler schrieb:
> das halte ich für eine Mindermeinung.

das bleibt dir unbenommen, aber schon in den Anfängen der Compispielzeit 
musste man sich für Farbtiefe oder FPS entscheiden, schnell oder bunt 
;-) wobei damals sogar auf 256 Farben -> 1 Byte runtergerechnet wurde um 
einigermaßen FPS zu erzielen.

Es bleibt bei meinen Aussagen, er beantwortet keinerlei Fragen zu touch 
und SD Treiber und was soll das nun?

@grundschüler, meinst du wirklich mit ILI9325D Treiber fürs Display kann 
er SD und Touch nutzen?

von leonard (Gast)


Lesenswert?

Habe ich noch vergessen zu sagen:
Wenn man den Display im 8 Bit mode betreibt, sind 8 Pins über, 4 für 
SD-Karten Ansteuerung und 4 für Touch.

von Joachim B. (jar)


Lesenswert?

grundschüler schrieb:
> das halte ich für eine Mindermeinung.

lies mal hier:
http://www.watterott.com/de/28-TFT-LCD-with-Touchscreen-Breakout-Board-w/MicroSD-Socket


Zitat:
2.8" diagonal LCD TFT display
240x320 resolution, 18-bit (262,000) color capable - our code uses only 
16-bits since its faster.
ILI9341 (datasheet)

von leonard (Gast)


Lesenswert?

Die UTFT und UTouch Libary habe ich installiert!

von Joachim B. (jar)


Lesenswert?

leonard schrieb:
> Die UTFT Libary habe ich installiert!

das wundert mich nicht, da ich nicht total blöd bin habe ich deine 
Funktionsmeldung vom TFT immer noch im Kopf, zur Erinnerung

X. H. schrieb:
> Der TFT läuft also im 16 Bit Betrieb

leonard schrieb:
> Die UTouch Libary habe ich installiert!

also klemmt noch an der Touch Lib und SD Lib und da solltest du schauen

Wildwuchs bei Shields und Libs ist kein guter Rat, nicht jede LIB 
arbeitet mit jedem Shield ohne Anpassung wenn überhaupt möglich.

von Jojo S. (Gast)


Lesenswert?

beim UTFT ist ja eine Liste der unterstützten Shields/Controller dabei, 
SainSmart taucht da nicht auf. Dabei ist schon wichtig wie die 
Daten/Steuersignale mit dem Controller verbunden werden.
Dein TFT ist schwer zu interpretieren, wenn die 8 Jumper in Richtung DBx 
stehen, sollen dann die DB0-7 mit SD-Card/Touch verbunden sein? Oder ist 
die Stellung dann der 16-Bit Mode? Der ILI9325 kann jedenfalls 8 oder 16 
Bit parallel, dazu müssen aber noch die Steuersignal IM0..IM2 richtig 
eingestellt werden, sind das evtl. Lötjumper neben der 40 pol. 
Steckleiste?
SPI kann der ILI auch, aber das macht keinen Spass, viel zu langsam. Der 
8 Bit Mode ist also sinnvoll wenn auch SD/Touch benutzt werden sollen, 
sonst hat der der kleine Arduino zu wenig IOs.

von grundschüler (Gast)


Lesenswert?

Joachim B. schrieb:
> aber schon in den Anfängen der Compispielzeit
> musste man sich für Farbtiefe oder FPS entscheiden
das waren die Anfänge. lange her. zeig mir mal, wie du beim ili9325 
8bit-Farbtiefe einstellen willst. Wäre ja schön wenn es ginge.


Jojo S. schrieb:
> SPI kann der ILI auch, aber das macht keinen Spass, viel zu langsam
Das finde ich nicht. Zur Anzeige von text und Grafik ist spi völlig 
ausreichend. Selbst Fotos kann man noch gut darstellen.


leonard schrieb:
> sieht man nur Schlieren.
Schlieren sind ja auch Pixel. Also wird etwas angezeigt. Mach doch mal 
ein Foto von den Schlieren und stell den code für die write-lcd-Funktion 
ein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.