Angepinnt TFT Display ILI9341 2.2" und 2.4"

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Hallo Ulrich,
      danke für deine Mühe. Leider war's das nicht.
      Habe ja schon einige Display eingebunden ( 0,96", 1,8" und 3,2" .das war auch nicht immer ganz ohne.
      Einmal hat Hkipnik folgendermassen geholfen.
      -------------------------------
      'Version:13092012
      'By Hkipnik
      ' © Copyright by H.Kipnik 2012
      'Date 13.09.2012
      'update 03.06.2013
      '***************************************************************
      Geantwortet von Hkipnik auf gleichen Fehler beim 1,8" Display
      Hallo Willi,
      Bitte ändere das hier in deinem Programm,
      von:
      ###########################################
      Code:
      #if Sdcard = 0
      Config Portb.0 = Output 'auch wenn nicht genutzt
      Portb.0 = 1
      Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      Spsr = 1
      Spiinit
      #endif
      #########################################################
      Auf:
      Code:
      #if Sdcard = 0
      Config Portb.2 = Output 'auch wenn nicht genutzt
      Portb.2 = 1
      Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      Spsr = 1
      Spiinit
      #endif
      ----------------------------------------------
      das war allerdings für einen 328P
      Hab das für das 2,2" mal probiert, hat aber auch nichts genutzt.
      Wenn dir nichts mehr anderes einfällt lege ich das Ding mal zur Seite, ich brauche es nicht dringend.
      Gruss Willi
    • Hallo WilliW,

      um weiterzukommen habe ich einige Fragen:

      1) wie wird das Programm geladen, via 6-polig.-ISP oder USB
      1a) Diamex Programmer?
      2) ist die VCC des ILI9341 5V oder 3V
      3) werden Pegelwandler von 5 V auf 3V eingesetzt, wenn ja welche
      4) löte doch mal einen dicken Elko (>=100uF) unmittelbar direkt über die VCC und GND pins deines Displays. War bei mir bei anderen Displays schon erfolgreich
      (siehe Bild in Post#100)
      5) verwendest du exakt das von mir zuletzt gesendete (funktionierende) Programm? In der allerersten Kommentarzeile findest du dort auch deinen Namen
      5a) wie sieht der Bildschirm nach dem Einschalten aus, großflächig hell oder bleibt er dunkel?

      WilliW schrieb:

      Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      Spsr = 1
      6) Setze doch mal die Cockrate=4 auf Clockrate=16 und SPSR=1 auf SPSR=0
      7) hast du die Möglichkeit Signale zu oszillografieren, bzw. fremde Oszillografenbilder mit eigenen zu vergleichen
      8) kannst du ein Foto deines Versuchsaufbaus zeigen?
      9) wer hat das Display geliefert?
      10) als eine weitere Möglichkeit könntest du mir dein Display schicken und ich könnte es in meinem Testaufbau prüfen, das Programm ist noch in meinem Testaufbau vorhanden


      Gruß
      Ulrich
    • Hallo,

      danke für die Info.

      Meine bestellten Displays sind noch nicht angekommen aber ich lese mich gerade in Deine umfassende Info ein.

      Da bin ich mal gespannt ob ich das zum laufen bekomme.

      Ich habe da einfach mal verschiedene Display gekauft um mal zu sehen welches für meine Anwendungen am besten passt.

      Gruß
      dnwalker
    • Hallo,

      das erste Display ist angekommen.

      Es handelt sich um folgendes Display Display1

      Ich habe folgende Code verwendet



      Quellcode

      1. '*******************************************************************************
      2. 'Programm for Display ILI9341 SPI 240x320 Pixel
      3. '
      4. 'Bascom IDE 2.0.7.9
      5. '
      6. ' Version: V12
      7. ' Date:22.05.2014
      8. ' Email: Hkipnik@aol.com
      9. ' Copyright (c) 2013 Hkipnik. All rights reserved.
      10. '
      11. ' http://creativecommons.org/licenses/by-sa/3.0/de/
      12. '
      13. ' Sie dürfen:
      14. '
      15. ' * das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen
      16. '
      17. ' * Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen
      18. '
      19. ' Zu Den Folgenden Bedingungen:
      20. '
      21. ' * Namensnennung.
      22. ' Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
      23. '
      24. ' * Keine kommerzielle Nutzung.
      25. ' Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.
      26. '
      27. ' * Weitergabe unter gleichen Bedingungen.
      28. ' Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten
      29. ' oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden,
      30. ' dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur
      31. ' unter Verwendung von Lizenzbedingungen weitergeben, die mit denen
      32. ' dieses Lizenzvertrages identisch oder vergleichbar sind.
      33. '
      34. ' Hardware: 2.4 TFT SPI 240x320 with Touch
      35. ' 2.2 TFT Spi 240x320 without Touch
      36. '
      37. '*******************************************************************************
      38. ' SD Card CS --> portb.0
      39. ' Miso --> portb.3
      40. ' Mosi --> portb.2
      41. ' SCK --> portb.1
      42. 'Display
      43. ' CS --> porta.0
      44. ' DC --> porta.2
      45. ' reset --> porta.1
      46. ' SCK --> portb.1
      47. ' Mosi(SDI) --> portb.2
      48. ' LED --> 3,3V
      49. ' Touch
      50. ' CS --> porte.3
      51. ' IRQ --> porte.4
      52. ' Din --> portb.2
      53. ' Dout --> portb.3
      54. ' SCK --> portb.1
      55. '
      56. ' with Level-Shifter the Display works with 3,3V level
      57. '*******************************************************************************
      58. $regfile = "m2560def.dat"
      59. $crystal = 16000000
      60. $hwstack = 150
      61. $swstack = 150
      62. $framesize = 250
      63. Config Com1 = 38400 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
      64. '*******************************************************************************
      65. Const Sdcard = 0 'use SD Card = 1 no SD Card = 0
      66. Const Lcd_mode = 1 'LCD Mode 1=Portrait 2=Portrait 180° 3=landscape 4=landscape 180°
      67. Const Use_touch = 0 'with Touch = 1 -- without Touch = 0
      68. Const Touch_calibrate = 0 'Calibrate Touch 1=yes 0=no only LCD_mode=1
      69. '*******************************************************************************
      70. Config Porta.0 = Output 'LCD CS
      71. Config Porta.2 = Output 'LCD D/C
      72. Config Porta.1 = Output 'LCD Reset
      73. Lcd_cs Alias Porta.0
      74. Lcd_dc Alias Porta.2
      75. Lcd_reset Alias Porta.1
      76. Porta.0 = 1
      77. '*******************************************************************************
      78. $include "TFTDriver\ILI9341_declarations_spi.inc"
      79. '*******************************************************************************
      80. #if Sdcard = 1
      81. #if Use_touch = 0
      82. 'wenn Touch nicht genutzt wird
      83. Config Porte.3 = Output 'CS vom Touch auf high legen
      84. Porte.3 = 1 'Touch und SD Card hängen am gleichen port
      85. #endif
      86. $include "Avr-Dos\Config_MMCSD_HC.bas"
      87. $include "Avr-Dos\Config_AVR-DOS.bas"
      88. #endif
      89. '*******************************************************************************
      90. 'Config SPI if the sd card used - SPI Config in Config_MMCSD_HC.bas
      91. '*******************************************************************************
      92. #if Sdcard = 0
      93. Config Portb.0 = Output 'auch wenn nicht genutzt
      94. Portb.0 = 1
      95. Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      96. Spsr.0 = 1
      97. Spiinit
      98. #endif
      Alles anzeigen
      Den Code habe ich natürlich nur hier im Beitrag gekürzt ....

      Um jetzt nur mal das Display zu testen habe ich die SD-Card und das Touchpad im Code deaktiviert.

      Die Verkabelung habe ich wie im Code angegeben hergestellt plus den Miso Port b.3

      Das Display wird eingeschaltet und zeigt einen weißen Bildschirm und das war es dann auch schon.

      Ich habe alle Pins am Display nachgelötet und auch die einzelnen Verbindungen zum 2560 durchgeprüft.

      Ich verwende folgende Board


      s-l1600 (1).jpg


      Da mir keine weitere Lösung eingefallen ist habe ich sämtliche verwendeten Ports mit einem kleinen Testprogramm blinken lassen und die mit einem High/Low-Stift überprüft. Auch hier ist kein Fehler zu finden.

      Dann dachte ich mein ISP Programer hätte da eventuell ein Problem und habe auf meinen 2. Programer einem Pololu gewechselt - leider auch hier keine Besserung.

      Da ich jetzt am Ende meines Latein bin wäre die Frage an Euch - fällt Euch da noch etwas zu ein oder ist das Display Schrott?

      Gruß
      dnwalker
    • Auf dem Bild von dem Display kann man die Anschlüsse sehen.

      Klar auf dem Schaltplan hier wie man das Ding anschließt ist der nicht belegt oder besser gesagt den gibt es da nicht wenn man von der minimalen Beschaltung nur für das Display ausgeht.

      Auf meinem Display gibt es ja die Gruppen - einmal für die SD.Karte, dann für das Touchfeld und dann eben für das Display

      IN der Gruppe der Pins für das Display ist auch ein Miso-Pin zu sehen.

      Zwischen dem Pin LED vom Display und dem T-Clock vom Touchpad.

      Zoomt Euch mal das Bild bei eBay da kann man das sehen.

      @Pluto25

      Weil ich auch von einer falschen Beschriftung auf dem 2560 Board ausgegangen bin habe ich jeden einzelnen Pin der für das Display verwendet wird mit einem kleinen Testprogramm einzeln blinken lassen um auch wirklich den richtigen Pin auf dem Board zu verwenden.
      Da habe ich alle Fehler ausgeschlossen.

      Wenn jetzt auf dem Display die Pins falsch beschriftet sind habe ich natürlich verloren.


      Gruß
      Dieter
    • dnwalker schrieb:

      Wenn jetzt auf dem Display die Pins falsch beschriftet sind habe ich natürlich verloren.
      Vermutlich nicht. Bei mir reagiert es mit einem Mega328.
      Das Programm fragt ihm nichts. Miso ist Input? Das ganze bekommt 3,3V (nicht 5)?
      Das Programm kommt übers Init hinaus? Hängt jemand am Uart? Dann vieliecht
      110 Print "Init ";
      112 Print "Abgeschlossen, schwärze ";
      114 Print " und weiter gehts."
      Ich habe zu viel verändert um sagen zu können warum es nicht sofort reagierte (Anschlußfehler, Falsche DDR, Init Routine, Led vergessen)
      In jedem Fall sollte es kurz weiß sein um dann dunkel zu werden (Clear Black)
    • Pluto25 schrieb:

      dnwalker schrieb:

      Wenn jetzt auf dem Display die Pins falsch beschriftet sind habe ich natürlich verloren.
      Vermutlich nicht. Bei mir reagiert es mit einem Mega328.Das Programm fragt ihm nichts. Miso ist Input? Das ganze bekommt 3,3V (nicht 5)?
      Das Programm kommt übers Init hinaus? Hängt jemand am Uart? Dann vieliecht
      110 Print "Init ";
      112 Print "Abgeschlossen, schwärze ";
      114 Print " und weiter gehts."
      Ich habe zu viel verändert um sagen zu können warum es nicht sofort reagierte (Anschlußfehler, Falsche DDR, Init Routine, Led vergessen)
      In jedem Fall sollte es kurz weiß sein um dann dunkel zu werden (Clear Black)
      Hast Du ein Programm für den Mega328 und einem solchen Display?

      Einen Mega328 hätte ich hier auch noch liegen.

      Dann könnte ich das ganze mal mit einem anderen Board testen.
    • Hi, mir sind die ideen ausgegangen, wobei ich eigentlich immer ideen habe, auch wenn sie mal nix taugen....

      zum tatort: ein eigenentwickeltes board mit einem M1284P 20Mhz ein ili9341 2.8" v1.2 mit touch & sd-slot
      ein L5972 als Stepdown und ein xx1117-3.3 danach f. den 3.3V teil (zb. pegelwandler 74xxx125)

      Platine mit dem 'noetigsten' bestueckt, progamm v. seite1 hier angepasst, auf den Mega damit, laueft
      ABER nix passiert auf dem Display ..... *heul*

      Das das Prg laeuft erkenne i an meiner Status-LED die ich am ende der loop 'toggle'
      hab dann den spi-speed runtergesetzt, alle Signale mit dem Oszi nachgemessen,sehen gut
      aus aber nichts tut sich auf dem Display......

      Dann kahm Mister Zufall vorbei, beim langsamen hochdrehen der spannung am Netzteil fing das
      Display ploetzlich an zu "leben" aber sobald die spannung ueber ca 4.1V geht ist das Display "wech"
      d.H. es "friert" nicht den letzten zustand ein sondern ist wie nach einem Reset, sinkt die spannung
      unter 4.1V und das Prg. beginnt wieder vorne im Loop (LCD_init) funktioniert auch das Display
      wieder ...........
      Alle verbindungen zum Display sind mit Pegelwandler, teilweise "passiv" mit 2R (CS C/D Reset)
      das ili9341 ist die 5V version siehe Bild
      Habe 2 von den Display's, gleiches verhalten
      Hatte auch mal den R5 auf dem Display vergroessert damit das BL nicht so viel Strom zieht, hat
      nix gebracht

      Habe den L5972 jetzt auf 4V eingestellt, dann funktioniert es immer, ist aber keine dauerloesung....

      Hat Jemand eine Idee ?, hab i irgendwo was uebersehen ?

      vG & frohe Ostern
      Charly
      Dateien

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Charly ()

    • der U1 auf dem Display soll ein 3.3V Regler sein, zumindest laut Internet und auch wie ich die Leiterbahnen vom Pin1 (VCC)
      verfolgt habe, da ist noch eine offene Bruecke in der naehe, die soll lt. diversen beschreibungen bei 3.3V geschlossen werden,
      damit wird der 3.3V Regler ueberbrueckt (nicht schoen aber selten)

      aber die idee hatte ich auch schon und hab das Display direkt an den 1117-3.3 drangehaengt, funktioniert leider nicht.....
      bei 4.1V hat der erst ca 2.7V und bei 5V hat er zwar die 3.3V aber es funktioniert nicht ;(

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Charly ()