3,5" TFT 320x480Pixel mit ILI9486

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • 3,5" TFT 320x480Pixel mit ILI9486

      Hallo Leute, ich habe mir für ein Projekt das o.g. Display der Fa.Kuman gekauft und möchte es in Betrieb nehmen. Gedacht ist es normalerweise zum Anschluss an den Raspberry. Das Display wird über SPI angesteuert, macht auf der Platine aber eine Seriell-Parallelwandlung mit 16Bit. Hat auch den Touchcontroller den ich Moment aber noch nicht nutze. Das Ganze ist im Moment an einem Arduino MEGA2560 mit 5V-3,3V Pegelwandler und halt das Display.
      Ich habe mir die Routinen von hkipnik für den ILI9341 genommen und soweit ich glaube zu wissen angepasst. Ich hab zur Initialisierung Werte aus einem Arduino-Programm genommen. Jetzt mal abgesehen von der Init mit ihren diversen Gamma- und VCOM-Werten hab ich die Werte hoffentlich kapiert und richtig benutzt.

      Aber es klappt nicht richtig ;( .
      Es sieht so aus dass der Init wohl funktioniert und das LCD_clear das Display in der entsprechnden Farbe löscht. Aber sonst ist Essig. Ich bin soweit mit meiner Suche gekommen dass die Lcd_set_window Routine nicht klappt. Egal was ich für einen Range über H2A und H2B einstelle, es wird ignoriert. Das Clear läuft wohl nur deshalb weil die H2A,H2B-Ranges beim Start auf 0 und Max sitzen Hab schon den SPI-Takt verkleinert, ohne Erfolg. Ein zweites Display macht dasselbe. Ausgaben von Daten beginnen immer an 0,0.


      Ich habe den Code mal angehängt. Der ist abgespeckt und alles auf das Minimalste reduziert um Fehler auszuschliessen. Wäre nett wenn mal jemand (ich hoffe auf Mr.Display :rolleyes: ) mal draufschauen kann. Ich bin im Moment mit meinem Latei an Ende.
      Files
    • Hallo hkipnik, sorry, falsche Datei gepostet, schick die richtige morgen. Ich habe mal im Internet gesucht und einen Schaltplan gefunden der wohl dem Display entspricht. Ohne Backlight-Steuereingang und SD-Karte. Dabei ist mir jetzt aufgefallen dass das WR-Signal erst nach 16 Takten generiert wird. Die write_command Funktion aber nur ein Byte versendet. Ich werde morgen mal probieren ein Null-Bytes zuerst zu senden. Wäre schön wenn es das wäre.
      Files
    • Und wieder ich. Ich bin einen grossen Schritt weiter. Das Display zeigt mir was an. Ich habe die lcd_set_window Routine durch folgenden Code ersetzt:

      Source Code

      1. Sub Lcd_set_window(byval Xpos As Word , Byval Ypos As Word , Byval Xepos As Word , Byval Yepos As Word)
      2. Call Lcd_write_command(&H2a)
      3. Call Lcd_write_data(high(xpos))
      4. Call Lcd_write_data(low(xpos))
      5. Call Lcd_write_data(high(xepos))
      6. Call Lcd_write_data(low(xepos))
      7. Call Lcd_write_command(&H2b)
      8. Call Lcd_write_data(high(xpos))
      9. Call Lcd_write_data(low(xpos))
      10. Call Lcd_write_data(high(xepos))
      11. Call Lcd_write_data(low(xepos))
      12. Call Lcd_write_command(&H2c)
      13. End Sub
      Display All
      Sollte imho zwar dasselbe wie die Assemblerroutine machen aber zumindest läuft es damit schon mal. Jetzt weiss ich immerhin wo ich weitersuchen muss.
      Was mir auch noch nicht so zusagt sind die Farben. Die sehen irgendwie nicht so aus wie sie heissen, ausser Weiss und Schwarz :) .
    • Hab ich probiert, RGB, GBR. Gefällt mir auch nicht, sieht bei beiden Variationen irgendwie komisch aus. Sehr seltsame Farben. Irgendwie hab ich das Gefühl als ob es Übertragungsfehler gibt. Ich suche mal weiter
      Wäre interessant rauszufinden warum die Assemblerroutinen nicht laufen. Habs sowohl mit der .79 als auch mit der .81 probiert, gleiches Ergebnis. Könnte es Timingprobleme geben?
      Nun denn, dann gehe ichs mal wieder an.
    • Hallo hkipnik,
      hatte leider letzte Woche keine Zeit mich um das Display zu kümmern. Ich hatte bei mir schon die Pegelwandler in Verdacht und hab mir mal andere bestellt mit dem gleichen Ergebnis. Ich hab deine Version mal ausprobiert und siehe da, wie erwartet klappt es.
      Ich hab mir mal deine Sourcen angeschaut und gesehen dass du nach jedem Byte ein Chipselect machst. Hat das mit dem ILI zu tun oder damit, den 4040 Zähler gezielt zurückzusetzen?
      Ich hatte schon gemerkt dass ich ab und an erst ein Dummybyte senden musste um eine sinnvolle Ausgabe zu bekommen. Aber das mit dem CS fiel mir nicht ein || . Aber gut dass dass es jetzt klappt. Vielen Dank dass du dir den Code angeschaut hast und das Display zum Laufen bekommen hast.
      Nun kann ich mich weiter auf mein Projekt konzentrieren.

      Bis danne mal,
      Joachim
    • Kleiner Hinweis zu ILI9846 / 3,5" Raspberry PI (320x480)

      Aktuell nutze ich ein solches Display (von Elegoo), welches mit dem Programm von Hkipnik aus Post#11 in allen Funktionen einwandfrei arbeitet.

      Allerdings startete es oftmals nicht. Erst nach Einfügen eines Wait (1sec) gleich zu Beginn des Programms startet es zuverlässig jedesmal nach dem Einschalten.
    • Hallo Heiko,

      herzlichen Dank für Deine schnelle Antwort! Deine Versionen für den ILI 9341 habe ich schon mit einem Display ausprobiert, das ist echt klasse! Und eine tolle Arbeit von Dir!

      Kannst Du die Version für das ILI 9481 einstellen oder anderweitig verfügbar machen? Dann würde ich so ein Display mal bestellen und es testen.

      Die Display mit dem ILI 9488 sind im Moment wesentlich billiger. Hast Du mit denen schon etwas gemacht? Sind die womöglich kompatibel zu den ILI 9481?

      Viele Grüße und herzlichen Dank für Deine Hilfe!

      Andy
    • Hallo Leute,
      bin seit einigen Tagen auf der Suche nach einer passenden Code für das 3.5 TFT mit 8 Bit parallel und Touch.
      Sollte das ILI9486 sein - denke ich. Finde aber nur die SPI Lösungen odere für ILI9341.

      Kann mir bitte jemand helfen?
      Files
      • LCD.jpg

        (143.15 kB, downloaded 6 times, last: )