Forum: Mikrocontroller und Digitale Elektronik ILI9341 SPI-Modul


von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe hier ein ILI9341-SPI-Modul unbekannter Herkunft. Kennt jemand 
von diesem Modul den hardverdrahteten SPI-Modus, oder hat sogar einen 
Schaltplan gefunden?

Viele Grüße
W.T.

von Timmo H. (masterfx)


Lesenswert?

Läuft wunderbar mit der Adafruit ILI9341 library. Habe zwei davon im 
Einsatz inkl. Touch. Schaltplan brauchst du nicht, steht alles 
notwendige auf dem Silkscreen

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

was ist jetzt Deine Frage? Die Anschlüsse sind beschriftet. Der 
Controller ist bekannt. 5V Spannungsregler ist drauf, die Datenleitungen 
sind nicht 5V-tolerant (nur 3,3V Pegel). Displaybeleuchtung wird per 
Transistor geschaltet.
Touchcontroller dürfte der übliche XPT2046 drauf sein, auch bekannt.
Schaltplan dazu hab eich nie gesucht, ist ja nichts drauf, wo der helfen 
könnte. Treiberbibliotheken für den ILI9341 und den XPT2046 dürfte es 
wohl für jede denkbare µC-Familie geben.
Ich nutze die nur am ESP8266/ESP32, die 2,2" Version ist prnzipiell 
identisch.

ok, zu viel geschrieben und zu langsam...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Bedenken Träger (Gast)


Lesenswert?

Michael U. schrieb:
> ok, zu viel geschrieben und zu langsam...

Kann passieren wenn der TO sich nicht äussert was er
denn genau will.

Einen Schaltplan halte ich auch für sinnlos.

Gell, Tarzan?

von Walter T. (nicolas)


Lesenswert?

Michael U. schrieb:
> ist ja nichts drauf, wo der helfen
> könnte

Sicher. Einmal: Sind da an verdeckter Stelle noch Level-Shifter und 
evtl. ein Schalt-Transistor für die LED. Und: Wie sind IM[2:0] 
verschaltet? Eigentlich kommen nur 101 und 111 infrage. Das kann man 
dann auch ausprobieren. Aber manchmal geht erfragen schneller als 
ausprobieren, und die gesparte Zeit kann man an anderer Stelle sinnvoll 
investieren.

Zweck ist natürlich, die Ansteuerung zu schreiben. Praktischerweise habe 
ich das für die Parallel-Version schon erledigt. Es muß also nur noch 
die nackte Datenübertragung angepaßt werden.

von Bedenken Träger (Gast)


Lesenswert?

Walter T. schrieb:
> Praktischerweise habe
> ich das für die Parallel-Version schon erledigt.

Ja Tarzan, schon klar, dieses Modul so wie du es zeigst
steuerst du schnell mal praktischerweise parallel an.

Du bist der Chuck Norris der Elektronik.

Wo sind denn die vielen parallelen Anschlüsse?

von Michael U. (amiga)


Lesenswert?

Hallo,

Walter T. schrieb:
> Sicher. Einmal: Sind da an verdeckter Stelle noch Level-Shifter und
> evtl. ein Schalt-Transistor für die LED. Und: Wie sind IM[2:0]
> verschaltet? Eigentlich kommen nur 101 und 111 infrage. Das kann man
> dann auch ausprobieren. Aber manchmal geht erfragen schneller als
> ausprobieren, und die gesparte Zeit kann man an anderer Stelle sinnvoll
> investieren.

Es gibt keine Leveshifter drauf, auch nicht irgendwo versteckt, habe ich 
bisher bei keinem dieser SPI-Displays gefunden.
Der Transistor für die LED ist Q1, Basiswiderstand ist R6, Vorwiderstand 
der LED R5. Das siht man so schon bzw. kann es mit dem Ohmmeter 
ausprüfen.
Da DC auf der Anschlußleiste ist und keine Umschaltmöglichekit 
vorgesehen ist, bleibt ja nur 4-Wire-Mode.

Walter T. schrieb:
> Zweck ist natürlich, die Ansteuerung zu schreiben. Praktischerweise habe
> ich das für die Parallel-Version schon erledigt. Es muß also nur noch
> die nackte Datenübertragung angepaßt werden.

Sollte dann ja nichtmal richtig Aufwand sein. Diese Displays kommen von 
diversen China-Herstellern, bisher ware alle im Prinzip identisch.
Kritisch: ich habe Versionen, da ist das Backlieght nur mit einem 10 Ohm 
am LED-Pin ohne Schalttransistor. Das geht bei 3,3V gerade noch so, an 
einem µC-Pin nicht. Ich hänge soclhe Dispaly dann mit zusätlichen 51 Ohm 
an 5V und lasse die eben leuchten. Habe ich bisher aber nur bei 1,8" 
Versionen mit ST7735 gehabt.

Gruß aus Berlin
Michael

von Bernd N (Gast)


Angehängte Dateien:

Lesenswert?

Siehe Anhang.

von Walter T. (nicolas)


Lesenswert?

Super! Vielen Dank!

Michael U. schrieb:
> Sollte dann ja nichtmal richtig Aufwand sein.

Nein, ich gehe davon aus, daß ich blos die 16 Bit-Farben auf 18 Bit 
strecken muss und dann nur die Sende-Funktion angepaßt werden muss.

von Harry L. (mysth)


Lesenswert?

Walter T. schrieb:
> daß ich blos die 16 Bit-Farben auf 18 Bit
> strecken muss

Das kann der ILI9341 selbst.

von Walter T. (nicolas)


Lesenswert?

Harry L. schrieb:
> Das kann der ILI9341 selbst.

Wenn ich das richtig interpretiere, nur bei paralleler Ansteuerung. 
Zumindest habe ich auf Anhieb nicht gefunden, daß man die RGB-Pixel per 
SPI auch in zwei Bytes einpassen darf.

von Timmo H. (masterfx)


Lesenswert?

Walter T. schrieb:
> Harry L. schrieb:
>> Das kann der ILI9341 selbst.
>
> Wenn ich das richtig interpretiere, nur bei paralleler Ansteuerung.
> Zumindest habe ich auf Anhieb nicht gefunden, daß man die RGB-Pixel per
> SPI auch in zwei Bytes einpassen darf.
Nein das Display kann auch in SPI 16 und 18 Bit. Bei 3-PIN SPI muss man 
jedoch weiterhin 18 Pixel rein-clocken weil das D/C mit im Datenstrom 
ist, bei 4-Pin SPI werden 16 Pixel rein geschoben. Siehe Datenblatt 63ff
1
In 4-line serial interface, different display data format is available for two color depths supported by the LCM
2
listed below.
3
-65k colors, RGB 5, 6, 5 -bits input.
4
-262k colors, RGB 6, 6, 6 -bits input.
Die Adafruit lib betreibt es auch in dem Mode.

von Walter T. (nicolas)


Lesenswert?

Timmo H. schrieb:
> Nein das Display kann auch in SPI 16 und 18 Bit.

Das ist ja famos! Ich hatte schon befürchtet, dass ich entweder 
irgendwie Farben und Adressen bei der Display-Ansteuerung 
auseinanderpfriemeln müßte, weil im Rest meiner Firmware alle Farben 16 
Bit sind, oder eben die Farben von 16 auf 24 Bit umzustellen. Aber so 
spart das eine Menge Arbeit.

Ich bin gestern abend gar nicht mehr dazu gekommen, das Datenblatt 
wieder komplett durchzuarbeiten. Wenn nichts dazwischenkommt, wird das 
mein Wochenendprojekt.

von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

Danke für die hilfreichen Tipps!

Mit Soft-SPI läuft das Modul schon. Die Initialisierung unterscheidet 
sich im SPI-Modus nicht vom Parallel-Modus, und auch sonst ist der 
Eingriff minimal. Im Prinzip reichen - wenn man eine funktionierende 
Parallel-Implmenentierung hat - die Diagramme auf S. 35 bis 39 für das 
4-line serial interface Protokoll.

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Nachtrag: Bei diesem Modul schlägt das Auslesen der ID4 fehl. Das zu 
wissen kann einem auch ein paar Minuten Fehlersuche ersparen.


Der einzige Weg, sicherzustellen, dass das LCD auch angeschlossen ist, 
scheint also zu sein, irgendein Pixel zu schreiben und auch wieder 
auszulesen.

: Bearbeitet durch User
von Bernd (Gast)


Lesenswert?

Walter T. schrieb:
> Nachtrag: Bei diesem Modul schlägt das Auslesen der ID4 fehl. Das zu
> wissen kann einem auch ein paar Minuten Fehlersuche ersparen.
Wahrscheinlich ist der Pin EXCT auf GND gelegt.

> Der einzige Weg, sicherzustellen, dass das LCD auch angeschlossen ist,
> scheint also zu sein, irgendein Pixel zu schreiben und auch wieder
> auszulesen.
Was machst Du wenn das Display nicht angeschlossen ist? Eine 
Fehlermeldung ausgeben? Das erscheint mir irgendwie nicht sinnvoll.

Übrigens: Das Rücklesen der Pixel erfolgt immer im 24 
Bit/Pixel-Format...

von Walter T. (nicolas)


Lesenswert?

Bernd schrieb:
> Was machst Du wenn das Display nicht angeschlossen ist?

Morsen. Ich finde es praktisch, bei der Inbetriebnahme zu wissen, ob 
Controller und Display zusammenspielen.

Beispiel: Ich schalte das Gerät ein. Auf dem LCD ist nichts zu sehen.
 a) Ist das Gerät überhaupt wirklich eingeschaltet?
 b) Ist das Kabel zum Display in Ordnung?
 c) Oder ist das Display in Ordnung, zeigt auch etwas an, aber ich sehe 
das in der prallen Sonne nicht?

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.