ST 7735 TFT Display 1.8 Zoll 128x160

    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!

    • ST 7735 TFT Display 1.8 Zoll 128x160

      Hallo Gemeinde,
      hat jemand von Euch schonmal mit diesem 128x160 SPI Display gearbeitet ?
      Ist bei 321 für ca. 5€ zu erwerben nur finde ich keine brauchbare Bascom Ansteuerung bisher!
      Vielen Dank für die Hilfe :)
      Dateien
      • SAM_0223.JPG

        (193,49 kB, 130 mal heruntergeladen, zuletzt: )
      • SAM_0227.JPG

        (224,74 kB, 64 mal heruntergeladen, zuletzt: )
      Es grüßt Schmeling !

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

    • Vielen Dank Elektron für die Hilfe und die Datei,

      bin grad auf Arbeit, werde es vielleicht heute Abend mal testen.
      Ehrlichgesagt bin ich zwar schon lange im Forum angemelet habe aber jetzt erst meinen ersten Beitrag eingestellt.
      Deshalb sorry für Fragen, die vielleicht schon öfters gestellt wurden.

      Ich versuche ein passendes Display zu finden, in Größe und Funktion um eine Art Multifunfnktionsdisplay für meine Solar-Thermie Anlage zu installieren.

      Der Display-Markt hat sich ja in den letzten Jahren enorm verändert - zugunsten von uns Hobbyelektronikern auch bei den Preisen.


      Halte dich/ euch auf dem laufenden auch mit Ergebnissen!

      lg.
      Es grüßt Schmeling !
    • Ich habe vor für die Ansteuerung einen Mega328P einzusetzen.
      Mein Problem ist erstmal generell die Ansteuerung bzw. Pinbelegung meines Displays.
      wie ist mit :
      SCK =
      SDA =
      A0 =

      umzugehen bzw. zu belegen - in Verwendung der Software von Hkipnik ? - übrigens noch vielen Dank dafür !

      'Mega 328P

      Config Portc.1 = Output
      Config Portc.0 = Output
      Config Portc.2 = Output
      Lcd_cs Alias Portc.1 = CS
      Lcd_dc Alias Portc.0 z.B. = A0 ?
      Lcd_reset Alias Portc.2 = RESET
      Portc.1 = 1

      SCK = ?
      SDA = ?
      A0 = ?
      Es grüßt Schmeling !
    • Hallo Behei,

      für den M328 sollte es so aussehen,

      BASCOM-Quellcode

      1. '*******************************************************************************
      2. ' SD Card CS --> portD.7
      3. ' Miso --> portb.4
      4. 'Display
      5. ' CS --> portb.2
      6. ' DC --> portb.1
      7. ' reset --> portb.0
      8. ' Mosi --> portb.3
      9. ' Clock --> portb.5
      10. '
      11. '
      12. '*******************************************************************************
      13. $regfile = "m328pdef.dat"
      14. $crystal = 16000000
      15. $hwstack = 50
      16. $swstack = 150
      17. $framesize = 150
      18. $baud = 57600
      19. '*******************************************************************************
      20. Const Sdcard = 0 'use SD Card = 1 no SD Card = 0
      21. Const Modus = 1 '0=Portrait 1=Landscape
      22. Const Driver = 1 '0=ST7735 1=ILI9163
      23. 'only Display ST7735
      24. 'Display typ Red or black Tab have different RGB order
      25. 'color of the display plastic wrap
      26. Const Disp_typ = 1 'RGB order 0=Black Tab 1=Red Tab
      27. '*******************************************************************************
      28. Config Portb.2 = Output
      29. Config Portb.1 = Output
      30. Config Portb.0 = Output
      31. Lcd_cs Alias Portb.2
      32. Lcd_dc Alias Portb.1
      33. Lcd_reset Alias Portb.0
      34. Lcd_reset = 1
      35. Lcd_cs = 1
      36. Lcd_dc = 1
      37. '*******************************************************************************
      38. 'Include Declaration
      39. $include "TFTDriver\ST7735_declarations.inc"
      40. '*******************************************************************************
      41. 'Use For Demo
      42. Dim Help_str As String * 15
      43. Dim Temp_str As String * 15
      44. '*******************************************************************************
      45. 'Init SD Card and Spi
      46. #if Sdcard = 1
      47. $include "Avr-Dos\Config_MMCSD_HC.bas"
      48. $include "Avr-Dos\Config_AVR-DOS.bas"
      49. Call Init_sd_card()
      50. #endif
      51. #if Sdcard = 0
      52. Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      53. Spsr.0 = 1
      54. Spiinit
      55. #endif
      56. '*******************************************************************************
      Alles anzeigen

      Gruß
      Hkipnik
    • ...habe ich jetzt in Sachen Pin Belegung gefunden :

      1) Der Pin A0 wird von den meisten Bibliotheken RS genannt.

      Er ist nicht wie im Bild angeben ein Analogpin, sondern dient der Umschaltung zwischen Bildaten und Befehlen beim SPI-Transfer.

      2) Eine passende Arduino-Bibliothek gibt es hier:
      github.com/adafruit/Adafruit-ST7735-Library

      3) das Display gibt es in verschiedenen Verssion, es ist als "BLACKTAB" zu initialisieren auch wenn der 'tab' an der Displayschutzfolie grün ist

      4) Der Pin LED muss auf Vcc gezogen werden um das Backlight zu aktiveren. (ohne ist der Inhalt schwer erkennbar, da nicht hinterleuchtet).
      Es grüßt Schmeling !
    • Ich möchte wie Behei dieses Display verwenden, habe aber eine andere Pin-Belegung in der Hardware vorgesehen.
      Im obigen Beispiel wird lediglich gezeigt, wie man die Pins CS, DC, und Reset zuordnet, wobei mir nicht klar ist, welcher Pin am Display DC entspricht.
      Es gibt dort die Pins:
      LED (an + 3.3V)
      SCK
      SDA
      A0
      RESET
      CS
      GND
      VCC (+3.3V)

      Frage:
      mit welchen Befehlen muss ich die Pins SCK, SDA, A0, RESET und CS im obigen Beispiel-Programm den Ports zuordnen?
      In der Hardware sind sie folgendermassen verbunden:
      A0 = Portd.7 , Reset = Portb.4 , Sda = Portb.1 , Sck = Portb.2 , Cs = Portb.3

      Bin für jeden Hinweis dankbar.

      Gruss aus Schwanau
      Rolf
      Wissen ist Macht, nix wissen macht auch nix.
    • sorry, das habe ich auch gesehen, hilft mir leider nicht weiter, da diese Bezeichnungen so nicht auf dem Display zu finden sind.
      Frage lautet: Wie müssen die Zuordnungen der fünf o.g. Signale zu den Ports lauten?
      z.B. für Reset:
      1. Lcd_reset Alias Portb.4
      2. Lcd_reset = 1
      Wissen ist Macht, nix wissen macht auch nix.
    • jetzt ist alles klar. Vielen Dank für die Info.
      Dass ich die Pin-Belegung radikal ändern muss, habe ich befürchtet.
      Möglich wäre also:
      A0 an PB1(OC1A) mit Lcd_dc Alias Portb.1
      CS an PB2(OC1B) mit Lcd_cs Alias Portb.2
      Reset an PB0 mit Lcd_reset Alias Portb.0
      Sda an PB3 (MOSI)
      Sck an PB5 (SCK)
      Die SD Card verwende ich (noch) nicht.
      Wissen ist Macht, nix wissen macht auch nix.
    • Testweise habe ich das Beispielprogramm ST7735R Display.bas compiliert, was mit $regfile = "m1280def.dat" auch problemlos funktioniert hat.
      Dann habe ich $regfile geändert auf = "m328pdef.dat" , da ich einen ATME§GA328 verwende.
      Compilieren wurde abgebrochen mit den Meldungen:
      Error : 22 Line : 95 Out of SRAM space [GBFATBUFFER] , in File : Config_AVR-DOS.bas
      Error : 22 Line : 120 Out of SRAM space [ABFILEHANDLES] , in File : Config_AVR-DOS.bas
      Error : 326 Line : 54 #ENDIF expected , in File : D:\Users\chef\Documents\BASCOM Prog\INC\ST7735R Display.bas

      Frage:
      wird hier vom Display-Treiber bereits soviel RAM verbraten, dass der ATMEGA328-RAM nicht ausreicht?

      Nachtrag:
      Sdcard war auf =1 gesetzt anstatt auf =0
      Fehlermeldung ist weg und No errors found....
      Wissen ist Macht, nix wissen macht auch nix.

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

    • Ein weiteres Problem:
      in dem verwendeten Beispielprogramm "ST7735R Display.bas" wird deklariert:
      'Display
      ' CS --> portb.7
      ' DC --> portb.5
      ' reset --> portb.6
      ' Mosi --> portb.2
      ' Lite --> +5V

      Im obigen Beispiel ist SDA (Mosi) Pin B2 und nicht B3 wie es im Datenblatt des ATMEGA328 steht.
      Ist das lediglich ein Schreibfehler?
      Kann man den Pin für Mosi in der Software umdeklarieren?
      Ist es notwendig, die Leitungen von SDA (mosi) und SCK per 5k6 an +5V auf High zu ziehen?
      Wissen ist Macht, nix wissen macht auch nix.
    • Rolf_L schrieb:

      Ist es notwendig, die Leitungen von SDA (mosi) und SCK per 5k6 an +5V auf High zu ziehen?
      SCL/SDA sind Bezeichnungen für I2C - da werden extrerne Pullups benötigt.
      SCK/MOSI sind für SPI - es werden keine Widerstände benutzt.
      Die Hardware Pins für die entsprechenden Busse kann man im Datenblatt finden.
      Beim Atmega 1280 ist MOSI auf PinB.3, Beim Atmega 328 ist MOSI auf PinB.2
      Pins kann man auch in Software ändern, wenn man in der Config-Zeile auch Software angibt.
      Das verlangsamt den Bus, bei einem Display würde ich das nicht empfehlen.
    • Das Beispielprogramm habe ich hier in einem Ordner der zip-Datei gefunden ( siehe oben -2-):

      bascomforum.de/index.php?attac…1097-1-8-spi-st7735r-zip/

      Wie ich rausgefunden habe, wird Port B2 bei SPI = Hard als "SS" bezeichnet und steuert den SPI slave Chip.
      Aber welchen Pin vom Slave Chip`(Display)?
      Noch was:
      die obigen Beispielprogramme verwenden alle SPI = hard.
      Wo finde ich eines mit SW SPI und der zugehörigen .inc-datei?
      Wissen ist Macht, nix wissen macht auch nix.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Rolf_L ()

    • Den CS. Aber in dem Fall nicht. Das Noss = 1 heißt das die Spi Hardware sich nicht darum kümmern soll. (Geht ja auch nicht wenn verschiedene Slaves angeschlossen sind (Lcd und SD, evt auch noch derTouch-Controller). Die Software nutzt dazu den Pin B.7 . Den gibts auch beim 328. Wenn möglich übernehmen, dann braucht er nicht überall im Programm geänert werden.
      Der Mosi muß da wirklich B.3 sein, beim HW Spi gibts da keine Wahlmöglichkeit .
      Der Software ists egal da die Zeile 21 nur zur Info ist und nicht irgendwo verwendet wird. Sie verwendet den HW Spi und das sendet mit B.3 Immer egal was im Kommentar steht.