Forum: Mikrocontroller und Digitale Elektronik ILI9341 mit RGB interface


von Maximilian M. (maximilian_m)


Lesenswert?

Hallo,

ich habe enorme Schwierigkeiten meinen Display mit dem ILI9341 mit 
meinem µC zu benutzen, da die Dokumentation meines Erachtens völlig 
konfus konzipiert wurde.

(Der von mir verwendete Mikrokontroller hat ein RGB-18 Bit parallel 
Interface und funktioniert auch mit anderen vorkonfigurierten TFTs, mir 
geht es grad hauptsächlich drum den Fehler in meiner Applikation zu 
finden)

Hat jemand Erfahrungen mit dem IC oder weiss wie man diesen mittels 
SerialInterface auf RGB-18Bit umstellt ?

Denn sobald das funktioniert hat sollte der Rest ja von alleine gehen 
oder ?

von Frickelfritze (Gast)


Lesenswert?

Maximilian M. schrieb:
> Hat jemand Erfahrungen mit dem IC

ja ich, ein bisschen ganz wenig.

Maximilian M. schrieb:
> weiss wie man diesen mittels
> SerialInterface auf RGB-18Bit umstellt ?

Man liest das Datenblatt und sucht sich den richtigen Befehl
heraus. Schliesslich und endlich wendet man ihn auch noch an.

Im Datenblatt zu finden unter:

8.2.33. COLMOD: Pixel Format Set (3Ah)

(etwa Seite 134 je nach Version des Datenblatts.)

War das zu schwierig um selbst draufzukommen?

von Frickelfritze (Gast)


Lesenswert?

Maximilian M. schrieb:
> Denn sobald das funktioniert hat sollte der Rest ja von alleine gehen
> oder ?

Erfahrungsgemäss geht nichts von alleine, insbesondere dann wenn
man sich schon beim Heraussuchen eines Befehls schwer tut.

von void (Gast)


Lesenswert?

Maximilian M. schrieb:
> ILI9341 [...] da die Dokumentation meines Erachtens
> völlig konfus konzipiert wurde.

Nein, wurde sie nicht. Es werden nur viele Möglichkeiten für das 
Interface geboten und du findest vermutlich nicht die richtige...

> (Der von mir verwendete Mikrokontroller hat ein RGB-18 Bit parallel
> Interface und funktioniert auch mit anderen vorkonfigurierten TFTs

Dann möchtest du also das "18-bit Parallel RGB Interface" (Kapitel 
7.6.9) benutzen?
Nicht verwechseln mit dem "18-bit Parallel MCU Interface" (Kapitel 
7.6.6) welches ein reines Schreib-/Lese-Interface auf den Display 
internen Speicher bietet. Das möchtest du nicht?

> Hat jemand Erfahrungen mit dem IC oder weiss wie man diesen mittels
> SerialInterface auf RGB-18Bit umstellt ?

Wenig. Mal den Adafruit code für ein Display mit 8-bit Parallel MCU 
Interface benutzt. Aber das ist vermutlich genau nicht das was du 
möchtest. ;-/

Für "18-bit Parallel RGB Interface" mit DE Mode müssen DPI [2:0] = “110” 
und RCM [1:0] = “10” gesetzt werden.
Das sind (oh Wunder) die Default-Werte nach Power-Up/HW-Reset. Falls dir 
jetzt auch noch die Default-Timing Werte (z.B. Polarität der Sync 
signale) gefallen brauchst du garnichts mittels "SerialInterface" 
umstellen.

Einfach TFT Signale VSYNC, HSYNC, DE, DOTCLK, D[17:0] anlegen und 
freuen.

von Dominik B. (odysseus1710)


Lesenswert?

void schrieb:
> Das sind (oh Wunder) die Default-Werte nach Power-Up/HW-Reset. Falls dir
> jetzt auch noch die Default-Timing Werte (z.B. Polarität der Sync
> signale) gefallen brauchst du garnichts mittels "SerialInterface"
> umstellen.

Der ILI ist standardmäßig im Serial-Interface, also mit den 
Default-Werten läuft noch kein RGB-Interface.

Für das RGB-Interface einzustellen habe ich folgende Register 
konfiguriert:

0x3A // Colmod, schon mehrfach angesprochen
0xB0 // Polaritäten der Steuersignale
0xB5 // Timing
0xF6 // Interface Control, hier muss im 3. Parameter-Register
auch wieder das RGB-Interface eingestellt werden (DM und RM)

Ansonsten muss dir klar sein, wie die Parameter-Register eingestellt 
werden.
Dabei unterscheidet der ILI je nach Pegel des DCX-Pin, ob es sich um ein 
Befehl oder ein Wert handelt. Um zu Beispiel das 3. Parameterregister 
des Interface-Control-Registers zu beschreiben, muss deine Senderoutine 
wie folgt aussehen:
1
ILI_COMMAND(0xF6);
2
ILI_PARAM(0x00);    // Default-Wert
3
ILI_PARAM(0x01);    // Default-Wert
4
ILI_PARAM(0x06);

von dasrotemopped (Gast)


Lesenswert?

das STM32F429i-disc1 verwendet den ili9341 im directdrive-RGB Modus.
Im Beispielcode vielleicht mal nachschauen, wie es dort gemacht wird.

Gruß,

dasrotemopped.

von void (Gast)


Lesenswert?

Dominik B. schrieb:
> Der ILI ist standardmäßig im Serial-Interface, also mit den
> Default-Werten läuft noch kein RGB-Interface.

Arg. Stimmt, die Default Werte DM[1:0] = "2'b00" / RM = "1'b0" passen 
nicht zu RGB interface.

"Standardmäßig im Serial-Interface" ist aber auch nicht ganz korrekt; 
Default ist wohl nur ein MCU-Interface Mode. Welcher das ist bestimmen 
dann die IM3-IM0 Pins.

Dominik B. schrieb:
> ILI_COMMAND(0xF6);
> ILI_PARAM(0x00);    // Default-Wert
> ILI_PARAM(0x01);    // Default-Wert
> ILI_PARAM(0x06);

Kann es sein, dass du die beiden ersten Parameter ("Default-Wert") 
vertauscht hast?
So-rum würde es zum mir vorliegenen ILI9341_DS_V1.02 passen.
1
ILI_COMMAND(0xF6);
2
ILI_PARAM(0x01);    // Default-Wert
3
ILI_PARAM(0x00);    // Default-Wert
4
ILI_PARAM(0x06);    // RGB I/F mode; DM[1:0] = "2'b01" / RM = "1'b1"

von Dominik B. (odysseus1710)


Lesenswert?

void schrieb:
> Default ist wohl nur ein MCU-Interface Mode. Welcher das ist bestimmen
> dann die IM3-IM0 Pins.

Stimmt. Beim ST32F429I-Disc1 sind die IM[3:0] eben so verschaltet, dass 
hardwareseitig bereits das serielle Interface aktiviert ist.

void schrieb:
> Kann es sein, dass du die beiden ersten Parameter ("Default-Wert")
> vertauscht hast?

Jepp schuldig, so wie du es geschrieben hast passt es.

von Maximilian M. (maximilian_m)


Lesenswert?

Oh vielen Dank für die viele Antworten!

Mein Account hier läuft über mein Gmail (alternativ Maildadresse) und 
deshalb bekam ich keine Notifikation das mir jemand geantwortet hat :(

STM32F429i-disc1... dieses Board besitze ich sogar auch, wo finde ich 
denn den Source Code von CubeMx (ich gehe davon aus das ich dort schauen 
muss) ?


Ich habe schon so viel an Initalisierung durchprobiert und meine 
Display-Settings des Frameworks X-mal angepasst und es passiert nichts 
ausser das ich per SPI Configs meinen Screen schwarz bekomme, sprich er 
macht schon was - nur was ist die Frage...

: Bearbeitet durch User
von dasrotemopped (Gast)


Lesenswert?

von ST ist alles hier:
C:\Users\->deinUserName<-\STM32Cube\Repository\STM32Cube_FW_F4_V1.13.0\P 
rojects\STM32F429I-Discovery\Examples\BSP

guckst du hier:
https://youtu.be/qSf7YtFZIsA

Projekt für das Disco gibt's zum Download da:
https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Attachments/69261/STM32F429i-Disco_ILI9341_20160824.zip
(incl. ili9341 Lib für CubeMX)
BIN-Datei mit ST-Link Utility flashen ...

Den Rest muss du dir jetzt selbst anlesen.

Gruß,

dasrotemopped.

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.