Forum: Mikrocontroller und Digitale Elektronik TFT mit ILI9341


von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

die Arduino-Shields mit dem ILI9341 sind ja mittlerweile sehr 
verbreitet. Hat jemand von euch das Pinout für den SPI-Betrieb parat?

Das Netz ist diesbezüglich voll von toten Links.

Momentan bin ich mir noch nicht einmal mehr sicher, ob überhaupt genug 
Pins herausgeführt sind, um dieses Display im SPI-Modus zu betreiben.

Viele Grüße
W.T.

von Horst (Gast)


Lesenswert?

Schau doch da nach, wo Du das Display gekauft hast oder gib zumindest 
eine Bezeichnung an.

Walter T. schrieb:
> ob überhaupt genug Pins herausgeführt sind

SPI währen 3/4/5/6 + Beleuchtung + Spannungsversorgung, sieht ausreichen 
aus.

Walter T. schrieb:
> die Arduino-Shields mit dem ILI9341

Ich wüste grad keins, was am Arduino nicht mit SPI angesteuert wird. Für 
8/16Bit oder RGB reichen die Pins nicht und I2C können die nicht.

von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

Der Händler schweigt sich - so wie es bei diesen Billig-Angeboten üblich 
ist - über Details aus.

Also Vorgehensweise bislang: TFT-Arduino-Beispiele im Netz gesucht und 
ausprobiert. Eines brachte das LCD ans Laufen: Momentan wird der 
"Shield" auf einem normalen Arduino mit einer Library von Ladyada 
parallel angesteuert. Damit weiß ich zumindest schon einmal, daß das LCD 
in Ordnung und daß der Controller wirklich ein ILI9341 ist.

Die Frage ist, ob dieses LCD mit den herausgeführten Pins auch im SPI 
betrieben werden kann, oder ob dafür ein anderes Pinout erforderlich 
wäre.

Wie man auf der Rückseite erkennt, sind nicht alle Pins angeschlossen. 
Das Pinout des FPCs hat aber natürlich auch nichts mit dem des 
Controllers ILI9341 zu tun. Letzteren konnte ich bislang noch nicht 
einmal finden.

Es bleibt die Frage: Läßt sich das bestehende LCD seriell ansteuern, 
oder habe ich einfach das falsche gekauft.

Viele Grüße
W.T.

: Bearbeitet durch User
von Christopher J. (christopher_j23)


Lesenswert?

Walter T. schrieb:
> Es bleibt die Frage: Läßt sich das bestehende LCD seriell ansteuern,
> oder habe ich einfach das falsche gekauft.

Schau mal auf die Rückseite des Shields. Da sollte es einen Pin mit der 
Bezeichnung LCD_CS geben. Das ist dann der Slave-Select für das LCD.

Schau mal hier:
http://misc.ws/2015/01/24/lcd-touch-screen-information/

Da gibt es einen Link zu einem "ID-Reader". Damit kannst du dann eher 
sagen, was da drauf verbaut ist. Die LCD-Controller sind sich zum Teil 
so ähnlich, dass du nicht sicher sagen kannst, dass es ein ILI9341 ist, 
wenn das Teil per 8-Bit parallel funktioniert. Könnte auch ein 
artverwandter Chip darauf sein.

von Walter T. (nicolas)


Lesenswert?

Christopher J. schrieb:
> a gibt es einen Link zu einem "ID-Reader". Damit kannst du dann eher
> sagen, was da drauf verbaut ist

Habe ich schon gemacht.

von Arduinoquäler (Gast)


Lesenswert?

Walter T. schrieb:
> Wie man auf der Rückseite erkennt, sind nicht alle Pins angeschlossen.

Richtig.

Walter T. schrieb:
> Das Pinout des FPCs hat aber natürlich auch nichts mit dem des
> Controllers ILI9341 zu tun.

Auch richtig.

Walter T. schrieb:
> Letzteren konnte ich bislang noch nicht einmal finden.

Der ist der kleinste Teil der Fläche, das Glas des Displays.

Walter T. schrieb:
> Es bleibt die Frage: Läßt sich das bestehende LCD seriell ansteuern,

Ja, wenn du dich vom PCB trennst und dich an die flexible Verbindung
zu Display herantraust, dort sind alle Anchlüsse zugänglich.

Walter T. schrieb:
> Die Frage ist, ob dieses LCD mit den herausgeführten Pins auch im SPI
> betrieben werden kann

Nein.

von Arduinoquäler (Gast)


Lesenswert?

Christopher J. schrieb:
> Da gibt es einen Link zu einem "ID-Reader". Damit kannst du dann eher
> sagen, was da drauf verbaut ist.

Wenn es die Schaltung auf dem PCB zum Display zulässt.
Da sind meist zwei Buffer drauf deren Richtung (R/W) nicht
umschaltbar ist (bei dieser Ausführung des Displays).

von Arduinoquäler (Gast)


Lesenswert?

Hier war auch so ein Versuch:

Beitrag "ILI9341: 4 Fragen zum ansteuern"

von Markus (Gast)


Lesenswert?

Ich habe ein ziemlich gleich aussehendes Display und habe, wenn ich mich 
recht erinnere, das ganze mit einem Arduino Uno zum laufen gebracht.
1
#ifndef _TFT_ADAPTER_
2
#define _TFT_ADAPTER_
3
4
#include <stdint.h>
5
#include <SPFD5408_Adafruit_GFX.h>    // Core graphics library
6
#include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library
7
8
#define LCD_CS A3 // Chip Select goes to Analog 3
9
#define LCD_CD A2 // Command/Data goes to Analog 2
10
#define LCD_WR A1 // LCD Write goes to Analog 1
11
#define LCD_RD A0 // LCD Read goes to Analog 0
12
13
class TFT_Adapter : public Adafruit_TFTLCD 
14
{
15
  public:
16
    TFT_Adapter():Adafruit_TFTLCD(LCD_CS, LCD_CD, LCD_WR, LCD_RD, A4){};
17
    void begin()
18
    {
19
      Adafruit_TFTLCD::begin((uint16_t)0x9341); // SDFP5408
20
      Adafruit_TFTLCD::setRotation(1); 
21
    };
22
23
};

Deine Nucleo-Board hat nur 3.3V im Gegensatz zum Uno. Ich vermute aber 
mal, dass es trotzdem geht.

Welches Arduino-Framework willst Du dafür verwenden?
Ich empfehle

https://github.com/danieleff/STM32GENERIC

aber würde auf jeden Fall mal auf die SPI-Signale mit dem Oszi schauen, 
um zu sehen, dass sich da was tut.

Beitrag #5152938 wurde von einem Moderator gelöscht.
von Walter T. (nicolas)


Lesenswert?

> Welches Arduino-Framework willst Du dafür verwenden?

Gar keins. Der Arduino hatte lediglich den Zweck, das noch unbekannte 
Display auf Funktion zu prüfen.


Markus schrieb:
> Deine Nucleo-Board hat nur 3.3V im Gegensatz zum Uno. Ich vermute aber
> mal, dass es trotzdem geht.
>

Das LCD hat Pegelwandler, um überhaupt mit den 5V klarzukommen. Für die 
sind die 3,3V vom STM32 auch kein Problem.



Markus schrieb:
> ch habe ein ziemlich gleich aussehendes Display und habe, wenn ich mich
> recht erinnere, das ganze mit einem Arduino Uno zum laufen gebracht.

Hmm, stimmt, wenn man nach SPFD5408 sucht, ergeben sich viele Bilder 
eines exakt gleich aussehenden LCDs, auch wenn der Verkäufer ILI9341 
angegeben hat und die ILI-Ansteuerung auch funktioniert. Da muß ich doch 
mal probieren, ob die SPFD-Ansteuerung auch funktioniert.

von Walter T. (nicolas)


Lesenswert?

Tatsache! Die SPFD5408-Ansteuerung von Adafruit funktioniert auch. Ist 
ebenfalls parallel 8 Bit. Dann ist das Board vermutlich falsch 
ausgezeichnet.

von Rudolph R. (rudolph)


Lesenswert?

Genau wegen sowas gehen mir die Chinesen auf den Keks.
Mit der Suche nach "FPC24T093-A1" bin ich über Umwege drauf gekommen, 
dass die Dinger wohl von ChangHong hergestellt werden könnten.
Und bei der "Erkenntnis" bleibt es dann auch.

von Kurt (kurtcontroller)


Angehängte Dateien:

Lesenswert?

Hier ein funktionierendes Beispiel.

STM32 PIN R an TFT PIN RESET - so geht es.

Viel Spaß

von Walter T. (nicolas)


Lesenswert?

Bin noch nicht ganz fertig (das Wochenende war mal wieder viel zu kurz), 
aber zumindest die ID kann ich auslesen. Sie lautet 0x9341. Es ist also 
tatsächlich der ILI9341 darauf, aber der bessere Suchbegriff für Google 
ist "SPFD5408".

von grundschüler (Gast)


Lesenswert?

Walter T. schrieb:
> Die Frage ist, ob dieses LCD mit den herausgeführten Pins auch im SPI
> betrieben werden kann, oder ob dafür ein anderes Pinout erforderlich
> wäre.

Warum auf spi wechseln? Du hast ein board und ein tft mit einem 
bestimmten pinout, die zueinander passen. Wenn dir die pins nicht 
reichen, kauf dir ein größeres board. Wenn du unbedingt spi willst, kauf 
dir ein spi-tft.  Es gibt tolle 2,8"  spi-tfts für um die 10€. Wenn auf 
deinem tft die pins für spi nicht herausgeführt sind, ist der umbau auf 
spi äußerst schwierig und lohnt sich nicht wirklich.

von Arduinoquäler (Gast)


Lesenswert?

Walter T. schrieb:
> Bin noch nicht ganz fertig (das Wochenende war mal wieder viel zu kurz),
> aber zumindest die ID kann ich auslesen. Sie lautet 0x9341.

Wenn du dazu eine Arduino Lib benutzt hast dann ist das
wahrscheinlich ein Fake, denn die Schreiber dieser Libs
wissen um die Nicht-Lesbarkeit der (vieler) Diplays und
vergeben dann von sich aus eine ID.

Muss nicht generell stimmen aber in vielen Fällen ist es so.

von Walter T. (nicolas)


Lesenswert?

Arduinoquäler schrieb:
> Wenn du dazu eine Arduino Lib benutzt hast dann ist das
> wahrscheinlich ein Fake,

Nein, ich habe meinen eigenen Treiber jetzt so weit, daß er die ID 
auslesen und Pixel darstellen kann.

von conquistador (Gast)


Lesenswert?

Ich weiß nicht ob dir das hilft, aber bei mir waren mal die ILI9340 so 
blöd beschaltet, daß die HintergrundLED 300mA gezogen hat, und dann 
durch Spannungseinbruch das ganze Display nicht ging.
Habe das hier dokumentiert:

http://safe-power.appspot.com/ILI9340.html

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.