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 ?
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?
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.
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.
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); |
das STM32F429i-disc1 verwendet den ili9341 im directdrive-RGB Modus. Im Beispielcode vielleicht mal nachschauen, wie es dort gemacht wird. Gruß, dasrotemopped.
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" |
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.
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 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.