Forum: Mikrocontroller und Digitale Elektronik Probleme mit TFT von SainSmart (Arduino, UTFT)


von Florian N. (florian_n)


Lesenswert?

Hallo Mikrocontroller.net Communtiy,
ich bin seit einigen Stunden am versuchen (vergeblich) meinen TFT (1) 
mit meinem Arduino Mega 2560 R3 anzusteuern. Ich habe meiner Meinung 
nach alle Möglichkeiten ausgeschöpft. Ich finde die Dokumentation des 
Display etwas... magelhaft. Ich habe hauptsächlich versuch mit der 
UTFT-Lib zu arbeiten, aber das Bild bleibt weiß. Das Shield (wenn es 
überhupt nötig ist, da bin ich mit immernoch nicht sooo sicher) hat nur 
36 Anschlüsse und ich habe keine Pin-Belegung dazu gefunden. Das Display 
direkt mit Kabeln anzusteuern funktioniert leider auch nicht. Ich bin 
berits einigen Anleitungen gefolgt. Ich bin davon ausgegenagen ich müsse 
das disp. einfach auf den Mega stecken, und mit der Lib ein kleines Prog 
schreiben damit es geht. Ich habe schon auf Google und überall gesucht, 
aber nichts scheinet das Ding wirklich anzusprechen. Mal ganz davon 
abgesehen, dass das Ding nichtmal eine einheitlich Art. bezeichnung hat. 
Habe dann halt nach dem IC (ILI9325) gesucht.
Ich bin noch ein wenig ein Anfänger im bereich der uC, also nehmts mir 
bitte nicht übel ;)

Schonmal danke im Vorraus,
Florian

Edit: Um ein paar Vergleiche zu schaffen: WEnn man sich in der UTFT-Lib 
das Beispiel "UTFT_Demo_320x240.ino" ansieht und eine Zeile nach
1
UTFT myGLCD(ILI9325C,38,39,40,41);
ändert dann habe ich immernoch einen weißen Bildschirm.



1: 
http://www.amazon.de/gp/product/B00JA5ZZHO/ref=ox_sc_act_title_3?ie=UTF8&psc=1&smid=A34XFDH679RDEX

: Bearbeitet durch User
von google (Gast)


Lesenswert?

> Ich bin noch ein wenig ein Anfänger im bereich der uC, also nehmts
> mir bitte nicht übel ;)

Vielleicht legst Du es erstmal beiseite und versuchst Dich an 
einfacheren Projekten ...

von Florian N. (florian_n)


Lesenswert?

google schrieb:
> Vielleicht legst Du es erstmal beiseite und versuchst Dich an
> einfacheren Projekten ...

Bich bin vllt noch ein Einsteiger im verlgeich zu anderen, aber ganz 
unerfahren nun auch wieder nicht. LAN-Server, LCD-Disp, SD-Karte, AD/DA, 
433MHz Funk, IR und noch ein paar andere Sachen hab ich bereits 
geschrieben. Und nein, damit meine ich nicht Copy & Paste ausm Netz

von google (Gast)


Lesenswert?

Nach dem hier: "SainSmart 5" TFT/SD Shield Für Arduino Mega2560(R3):This 
is Sainsmart TFT LCD Extend shield for Mega2560(R3). The shield is 100% 
compatible with Mega2560(R3) and fit for tow kind of TFT LCD module:* 
40pin version LCD which is commonly used in previous version of TFT 
shield for Mega2560(R3)(like 3.2/5 inch LCD Display)* 32pin version LCD 
which is commonly used in STM32 development 
board.(unsoldered)Lieferumfang:1 x SainSmart 2.4" TFT LCD Touch Screen 
Display1 x SainSmart 5" TFT/SD Shield for Arduino Mega2560(R3)" hast Du 
alles, was Du hardwaretechnisch brauchst. War die Lieferung vollständig 
und richtig.

Hier liegen die Originalinfos dazu:
http://www.sainsmart.com/sainsmart-due-5-lcd-touch-panel-sd-card-slot-tft-lcd-shield-kit-for-arduino.html

von google (Gast)


Lesenswert?

Sorry, vergiß den letzten link.

von Florian N. (florian_n)


Lesenswert?

Das ist Toll. Hilft mit aber trotzdem nicht weiter. Dass es "100%" 
kompatibel ist, das kannte ich schon von amazon und das Problem ist, 
dass ist es nicht. Ich habs draufgesteckt, UTFT mit den oben genannten 
Werten geuploadet und es ist weiß. Ich hab auch viele andere Sachen 
versucht, mit dem entsprechenden Libs soll es auch an einem Uno Laufen, 
aber immernoch weiß. Ich bekomme langsam das Gefühl, das Ding ist 
einfach kaputt. Ich hab schon mehrere Einträge gelesen, wo ähnlich 
Probleme wie meines geschildert wurden und eindach das Disp kaputt 
war...

von Joschua C. (Gast)


Lesenswert?

http://www.sainsmart.com/featured-products/sainsmart-mega2560-board-3-5-tft-lcd-module-display-shield-kit-for-atmel-atmega-avr-16au-atmega8u2.html#customer-reviews

Registerkarte Tutorial. Da ist schon mal die Pinbelegung.
NC: Not connected
REST: Board Reset
F_blablabla wird zu den Pads für einen Flashbaustein weitergeführt, wenn 
man einen reinlöten will
SD_blablabla ist für die SD-Kartenfassung
D_blablabla geht zum Touch-Controller ADS7843
Die anderen Pins gehen zum Displaytreiber SSD1289

Deren Datenblätter gibts im Netz. Es gibt auch ein .rar von Sainsmart 
mit Dokus, Bibliotheken und Beispielen.


Und hast du zu einem Objekt der Klasse UTFT auch die Methode InitLCD() 
auch ganz sicher aufgerufen? Ich wühle mich gerade durch den Code der 
Library und sorry meine Cpp Kenntnisse sind alt und ich weiß nicht mal, 
ob du überhaupt auch Cpp nutzt, aber ich sehe nirgends, dass die das im 
Konstruktor aufrufen...

von google (Gast)


Lesenswert?

Auf der zuletzt verlinkten Seite gibt es links zum Schaltplan, manual 
u.a.

von Joschua C. (Gast)


Lesenswert?

http://www.sainsmart.com/sainsmart-3-2-tft-lcd-display-touch-panel-pcb-adapter-sd-slot-for-arduino-2560.html

Da ist das LCD Modul auch verlinkt. Ich könnt schwören, es ist das 
gleiche wie das, was du auf das Shield steckst. Da steht, es hat den 
SSD1289 Controller. Auf dem Shield kann keiner sein, dann müsste es so 
viele Kontakte wie das Display Pixel haben. Ruf mal

UTFT myGLCD(SSD1289,38,39,40,41);
myGLCD.InitLCD(LANDSCAPE);

als Initialisierung auf

von Florian N. (florian_n)


Lesenswert?

1. Ja, InitLCD habe ich gemacht.
2. Wieso SSD1289, im der Amazon Produktbeschreibung ist von einem 
ILI9325 die Rede
3. Ich habe mir die Links mal angesehen, sie sind halt alle auf einen 
anderen Chip bezogen, nichts desto trotz hat keiner der Codes eine 
veränderung am Disp gezeigt.
4. Ich benutze die Arduino-IDE im Moment, also C/C++
5. Deine Initialisierung habe ich versucht, aber auch keinen Erfolg

Langsam glaube ich dass ich einen kleinen Fehlgriff gelandet habe und 
doch besser zum 10€ teureren Modell mit guten Rezensionen hätte greifen 
sollen...

Vielen dank dass ihr euch Zeit für mein Problem nehmt

Grüße,
Florian

von grundschüler (Gast)


Lesenswert?

bei 16bit-modus(?) den ersten Initialisierungscode Schritt für Schritt 
austesten
1
void LCD_WriteIndex(uint16_t index)
2
{
3
  LCD_CS(0);
4
  LCD_RS(0);
5
  LCD_RD(1);
6
  LCD_Send( index );
7
  LCD_WR(0);
8
  LCD_WR(1);
9
  LCD_CS(1);
10
}
nach jedem Funktionsaufruf "while(1);" einbauen und mit dem Multimeter 
messen, was passiert.

geht cs/rs/rd auf low/high? liegen nach lcd_send die richtigen Pegel an 
den richtigen Pins?

etc.

von Guggug (Gast)


Lesenswert?

Florian N. schrieb:
> UTFT myGLCD(ILI9325C,38,39,40,41);

Hast Du mal in die UTFT.h geschaut? Dort gibt es mehrere Varianten des 
Displays. Vielleicht einfach mal durchprobieren.
Unter anderem auch das CTE28 als alternative.
dann also

UTFT myGLCD(CTE28,25,26,27,28);

Das CTE hat auch eine andere Pin Belegung.

Grüße aus dem Süden

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Florian,

versuche doch einfach

UTFT myGLCD(ILI9325D_16,38,39,40,41);  //* für 16 Bit Ansteuerung

genaueres steht in der Tabelle Seite 3

UTFT_Supported_display_modules_&_controllers.pdf

UTouch myTouch(6,5,4,3,2); //* für SPI XPT2046 touch controller 
(SainSmart shield)

Anbei noch die Schemata vom DUE & Mega shield.

MfG

von Dirk Uffmann (Gast)


Lesenswert?

Da Du das Display anscheinend auch schon ohne Shield am ATMEGA2560 
betrieben hast, dürfte es hinüber sein, da es keine 5V Pegel verträgt, 
sondern nur 3V.

von Alf (Gast)


Lesenswert?

Hallo Florian,

ich habe mir die Kombination
SainSmart MEGA2560 R3+5" LCD Touch Panel SD Card Slot + Shield Kit For 
Arduino
gekauft.
Eindach in der *.ino die TFT Initialisierung
UTFT myGLCD(ITDB50,38,39,40,41);
eintragen, schon funktioniert's :-)
Mir fehlt noch die UTouch Funktion .... aber das wird bestimmt noch.
Da die UTouch_Calibration funktioniert, bin ich bestimmt auf einem guten 
Weg.

Wenn das jemand schon hinbekommen hat, bin ich dankbar für den 
entscheidenden Tip :-)

Gruß
Alf

von GrothCrafter (Gast)


Lesenswert?

Ich habe das selbe Problem und keiner der hier genanten Möglichkeiten 
funktioniert. Das ist ziemlich frustrierend. Das Display bleibt immer 
nur weiß.

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.