TFT mit ILI9341

OP #5152739
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.
Angehängte Dateien:
Gast #5152868
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.
OP #5152879
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.
Angehängte Dateien:
#5152922
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.
Gast #5152924
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.
Gast #5152935
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.
OP #5153224
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.
Gast #5154569
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.
Gast #5154829
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren