TFT IPS Display ST7735 SPI mit 80x160 Pixeln

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

    • die Hintergrundbeleuchtung (auf dem Layout mit BLK bezeichnet) ist an. wird aber zum ausschalten nur auf Masse gezogen.
      Mit einem Oszi habe ich alle Flanken sehr sauber nachvollziehen können.
      Die INIT-Sequenz habe ich 1:1 von einem Programm des Herstellers übersetzt.
      es ist schon eigenartig.
      in diesem Programm habe ich die Pixel von LCD_clear auf 80x80 begrenzt.Dein Bild macht mir Hoffnung. Dank Dir
    • wie äußert sich das denn?
      Dieses 160x80 Display hat beim Hersteller folgende INIT-werte:

      Source Code

      1. //************* Start Initial Sequence **********//
      2. LCD_WriteReg(0x11);//Sleep exit
      3. DEV_Delay_ms (120);
      4. LCD_WriteReg(0x21);
      5. LCD_WriteReg(0x21);
      6. LCD_WriteReg(0xB1);
      7. LCD_WriteData_Byte(0x05);
      8. LCD_WriteData_Byte(0x3A);
      9. LCD_WriteData_Byte(0x3A);
      10. LCD_WriteReg(0xB2);
      11. LCD_WriteData_Byte(0x05);
      12. LCD_WriteData_Byte(0x3A);
      13. LCD_WriteData_Byte(0x3A);
      14. LCD_WriteReg(0xB3);
      15. LCD_WriteData_Byte(0x05);
      16. LCD_WriteData_Byte(0x3A);
      17. LCD_WriteData_Byte(0x3A);
      18. LCD_WriteData_Byte(0x05);
      19. LCD_WriteData_Byte(0x3A);
      20. LCD_WriteData_Byte(0x3A);
      21. LCD_WriteReg(0xB4);
      22. LCD_WriteData_Byte(0x03);
      23. LCD_WriteReg(0xC0);
      24. LCD_WriteData_Byte(0x62);
      25. LCD_WriteData_Byte(0x02);
      26. LCD_WriteData_Byte(0x04);
      27. LCD_WriteReg(0xC1);
      28. LCD_WriteData_Byte(0xC0);
      29. LCD_WriteReg(0xC2);
      30. LCD_WriteData_Byte(0x0D);
      31. LCD_WriteData_Byte(0x00);
      32. LCD_WriteReg(0xC3);
      33. LCD_WriteData_Byte(0x8D);
      34. LCD_WriteData_Byte(0x6A);
      35. LCD_WriteReg(0xC4);
      36. LCD_WriteData_Byte(0x8D);
      37. LCD_WriteData_Byte(0xEE);
      38. LCD_WriteReg(0xC5); /*VCOM*/
      39. LCD_WriteData_Byte(0x0E);
      40. LCD_WriteReg(0xE0);
      41. LCD_WriteData_Byte(0x10);
      42. LCD_WriteData_Byte(0x0E);
      43. LCD_WriteData_Byte(0x02);
      44. LCD_WriteData_Byte(0x03);
      45. LCD_WriteData_Byte(0x0E);
      46. LCD_WriteData_Byte(0x07);
      47. LCD_WriteData_Byte(0x02);
      48. LCD_WriteData_Byte(0x07);
      49. LCD_WriteData_Byte(0x0A);
      50. LCD_WriteData_Byte(0x12);
      51. LCD_WriteData_Byte(0x27);
      52. LCD_WriteData_Byte(0x37);
      53. LCD_WriteData_Byte(0x00);
      54. LCD_WriteData_Byte(0x0D);
      55. LCD_WriteData_Byte(0x0E);
      56. LCD_WriteData_Byte(0x10);
      57. LCD_WriteReg(0xE1);
      58. LCD_WriteData_Byte(0x10);
      59. LCD_WriteData_Byte(0x0E);
      60. LCD_WriteData_Byte(0x03);
      61. LCD_WriteData_Byte(0x03);
      62. LCD_WriteData_Byte(0x0F);
      63. LCD_WriteData_Byte(0x06);
      64. LCD_WriteData_Byte(0x02);
      65. LCD_WriteData_Byte(0x08);
      66. LCD_WriteData_Byte(0x0A);
      67. LCD_WriteData_Byte(0x13);
      68. LCD_WriteData_Byte(0x26);
      69. LCD_WriteData_Byte(0x36);
      70. LCD_WriteData_Byte(0x00);
      71. LCD_WriteData_Byte(0x0D);
      72. LCD_WriteData_Byte(0x0E);
      73. LCD_WriteData_Byte(0x10);
      74. LCD_WriteReg(0x3A);
      75. LCD_WriteData_Byte(0x05);
      76. LCD_WriteReg(0x36);
      77. LCD_WriteData_Byte(0xA8);//
      78. LCD_WriteReg(0x29);
      79. }
      Display All
      Ich habe die Werte ohne Sinn und Verstand kopiert, denn aus dem Datenblatt wurde ich auch nicht schlau.
      Werde mit dem Display die nächsten Tage etwas spielen um ein Gefühl zu bekommen, ob es etwas taugt.
      In OLED und Farbe sind die Displays noch sehr teuer. Auch I2C gibt es nur bei dem SSD1306 als MonoDisplay.
      Ich finde den Verkabelungsaufwand und die 3,3V sehr bescheiden.
    • sk8erboi wrote:

      wie äußert sich das denn?
      Es dunkel sich ab sobald der Datentransfer stoppt

      sk8erboi wrote:

      Ich finde den Verkabelungsaufwand und die 3,3V sehr bescheiden.
      Den hab ich mir gespart und gleich den Avr mit 3,3V versorgt. (Geht nicht mehr wenn dieser hoch getaktet werden soll.) Die meißten Befehle kenne ich auch nicht, nur 21=Inverse (warum wohl zweimal?), 3A=PixelFormat: stimmt der Wert nicht wird es "streifig", 36=Memory Control: entscheidet Darstellungsrichtung (Portay/Landsacpe) und 29=Display an (28 wäre Display aus, wird oft beim Cls eingesetzt, dann sieht man den Bildabbau nicht)