Kein PSB-Pin am LCD?

Ich habe ein Winstar 144x32 LCD (WG14432D) gekauft, weil es billig war und es schön wäre, ein paar Experimente damit zu machen. Das Hauptproblem bei diesem LCD ist, dass es keine (funktionierende) Bibliothek dafür hat.

Ich habe bereits das ganze Internet mit Google durchsucht, aber meine Ergebnisse waren nicht beeindruckend:

https://forum.crystalfontz.com/showthread.php/7410-Tutorial-ST7920-Seeeduino-v4-2-Arduino-Sample-Sketch-Driving-a-144x32-Graphic-LCD (Ein riesiger Beispielcode, der dies nicht tut funktioniert. Ich habe SCK, MISO und CS richtig eingestellt und nichts passiert.)

Da ich wusste, dass es den ST7920 -Chip hat, habe ich eine Bibliothek für Bildschirme gefunden, die denselben Chip verwenden: https://github.com/olikraus/u8glib/wiki/device#st7920-192x32 (Die Bibliothek unterstützt nur andere Auflösungen wie 128x64, aber ich denke, da es derselbe Chip ist, sollte es auch funktionieren. Ich habe auch andere Bildschirmvarianten desselben Chips ausprobiert.)

Auf einer portugiesischen Seite habe ich herausgefunden, wie man die Bibliothek richtig initialisiert und verwendet: http://www.arduinoecia.com.br/2013/09/display-grafico-lcd-128x64-st7920.html (Kein Problem für mich, da ich spreche auch portugiesisch)

Sie verwenden: U8GLIB_ST7920_128X64_1X u8g(6, 5, 4 ,7);um die Software-SPI-Pins für das LCD einzustellen. Bei mir (Arduino Mega) wäre es:

U8GLIB_ST7920_128X64_1X u8g(52, 51, 53); //Enable, RW, RS [,RESET] (known also as) SCK, MOSI, CS

Die Folge: Das Display blieb leer. Dann habe ich versucht, die Hardware-SPI-Initialisierung zu verwenden, die laut dieser Seite lautet:U8GLIB_ST7920_128X64_1X u8g(53); // RS (known also as) CS pin needed only

Trotzdem macht das Display nichts. Es blieb hellgrau (Kontrast angepasst) und das war's. Kein Blinken, kein Ein-/Ausschalten, nichts...

Schließlich habe ich auf diesem Datenblatt gelesen , dass der PSB-Pin auf 0 (Masse) gesetzt werden muss, um den SPI-Modus zu aktivieren.

PSB-Pin muss auf Null gesetzt werden

Andere Varianten dieser Bildschirme hatten Jumper oder Stifte auf der Rückseite, die Sie auf Masse springen können, aber diese hat keine.

Ein hochauflösendes Bild der Rückseite des LCD, das ich aufgenommen (oder zumindest versucht) und unten angehängt habe (die Vorderseite hat nichts als das LCD), weil ich nichts über dieses Board finden konnte. Kein Schema, nichts.

Rückseite des WG14432D

Ich konnte auf dieser Platine keinen PSB-Pin (der als dieser gekennzeichnet ist), Jumper ("JP") oder ähnliches finden.

Die Pins zur Verbindung mit dem LCD hatten keine ungewöhnlichen Pins, die auch als "PSB" oder ähnlich gekennzeichnet sind:

Stifte auf dem WG14432D

Jeder Vorschlag oder jede Antwort wird sehr geschätzt.

Die Moral der Geschichte lautet: Kaufen Sie niemals elektronische Komponenten oder Entwicklungskits, die nicht mit der richtigen Dokumentation geliefert werden. Das übliche Ergebnis des Kaufs des billigsten Stücks gefälschter Elektronik, das Sie finden können, ist, dass Sie ewig damit verbringen, herauszufinden, wie es funktioniert, und dann schließlich aufgeben und ein ordnungsgemäß dokumentiertes kaufen.
Ich glaube nicht, dass "Winstar" eine Fälschung ist, da es das einzige ist, das ein 144x32-LCD hat.
Schauen Sie sich diese AliExpress-Seite an : Wahrscheinlich sollte SCKL an Pin 6 (E), MOSI an Pin 5 (R/W), SS an Pin 4 (RS) angeschlossen werden und MISO wird wahrscheinlich nicht verwendet.
@Fusseldieb Um ehrlich zu sein, habe ich Winstar nicht nachgeschlagen, um es herauszufinden. Aber Sie wären überrascht, wie viele Unternehmen genau das gleiche Teil verkaufen. Zum Beispiel gibt es ein Unternehmen namens aMtec, das anscheinend keine Website hat und das gleiche Display verkauft. Es gibt viele solcher Unternehmen, die sich hinter gut präsentierten Frontfirmen verstecken. Sie verkaufen alle die gleichen Produkte und der Grund, warum die Dokumentation so schlecht ist, ist, dass sie nur die Mülldokumente, die sie bekommen haben, neu verpacken. Ein absoluter Hinweis ist das Fehlen eines Firmennamens auf der Leiterplatte.
@Codo Ich kenne die Pinbelegung von dieser Seite: github.com/olikraus/u8glib/wiki/device#additional-information , aber danke.
@TomCarpenter Wahrscheinlich verwendet deshalb niemand diese Displays für Arduino und so. Sie haben keine (funktionierende) Bibliothek, keine (gute) Dokumentation, nichts ... Es ist traurig.
@Fusseldieb: Cool zu sehen, dass es funktioniert. Darf ich vorschlagen, dass Sie die u8g2-Bibliothek verwenden. Es ist der Nachfolger von u8g. Der Konstrukteur U8G2_ST7920_192X32_F_SW_SPI sollte funktionieren und von der Größe her besser passen (korrekte Höhe, etwas zu breit).
@Codo Danke, aber ich muss u8g2 vorerst nicht verwenden, da ich das u8g so modifiziert habe, dass es auf das 144x32-LCD passt (Funktionen für dieses bestimmte LCD erstellt, HW-SPI-Geschwindigkeit angepasst [beschädigter Bildschirminhalt - war zu schnell] usw.). Ich kann es nicht auf GitHub hochladen, weil ich ehrlich gesagt verwirrt bin, wie der Beitrag dort funktioniert, aber trotzdem ...

Antworten (2)

Viele LCD-Controller (einschließlich des ST7920) unterstützen eine Vielzahl von Schnittstellentypen, von denen Sie jeweils einen verwenden können. Manchmal ist der Schnittstellentyp auf einem bestimmten LCD-Anzeigemodul festgelegt ; manchmal kann die Schnittstelle ausgewählt werden. Die genauen PCB-Markierungen für die Auswahl zwischen Schnittstellen (wenn möglich) stimmen nicht immer mit den Signalnamen überein, die Sie erwarten.

Da die Schnittstelle nicht immer ausgewählt werden kann, ist die Antwort von Finbarr manchmal richtig - Sie werden möglicherweise feststellen, dass die Schnittstelle auf einem bestimmten LCD-Modul absolut festgelegt ist (z. B. nur parallel, nur SPI usw.).

Aber in deinem Fall denke ich, dass du Glück haben könntest . Mir ist eine Ähnlichkeit zwischen Ihrem LCD-Modul und dem im ersten von Ihnen verlinkten Tutorial verwendeten Modul aufgefallen.

Beachten Sie, dass Ihr LCD-Modul die Teilenummer 14432Dauf der Rückseite hat, und wir sehen 2 Komponentenpositionen - R11und R12. R11fehlt und R12ist verbaut:

Rückseite des originalen LCD-Displays - R11 fehlt, R12 montiert

Sehen Sie sich nun dieses Bild aus dem ersten verlinkten Tutorial an, das die Rückseite dieses LCD-Moduls zeigt (das sich von Ihrem LCD-Modul unterscheidet, und daher gibt es keine Garantie dafür, dass das erste verlinkte Tutorial sowieso auf Ihr LCD-Modul zutrifft). Achten Sie darauf, dass es die gleiche Komponentenanordnung wie Ihr LCD-Modul hat und auch ein R11und hat R12. Außer auf diesem Modul, R11ist montiert und R12fehlt:

LCD-Modul-Leiterplatte aus dem Tutorial zeigt R11 eingebaut, R12 fehlt

Ich kann nicht garantieren , dass dieser nächste Teil für Ihr LCD-Modul gilt – Sie benötigen das Datenblatt mit den relevanten Details, um ganz sicher zu sein. Es ist jedoch möglich, dass die Antwort in diesem Dokument enthalten ist :

Auswahloptionen für die LCD-Schnittstelle

Beachten Sie, wie für ihre Modellnummer mit der Endung 14432D (ähnlich Ihrer Modellnummer) die Widerstände R11und R12verwendet werden, um zwischen parallelen und SPI-Schnittstellen zu wählen. Sehen Sie auf dem LCD-Modul in Ihrem ersten Tutorial-Link, wie nur R11eingebaut ist und sie die SPI-Schnittstelle verwenden. Sehen Sie auf Ihrem LCD-Modul, wie nur R12eingebaut ist, und Sie können die Pinbelegung der SPI-Schnittstelle nicht verwenden, wie in diesem Tutorial gezeigt.

Vielleicht ist Ihr LCD-Modul also für eine parallele Schnittstelle konfiguriert? Das würde mit der Tatsache übereinstimmen, dass R12auf Ihrem LCD-Modul montiert ist.

Daher können Sie möglicherweise die in diesem ersten Tutorial gezeigte SPI-Schnittstelle und Pinbelegung verwenden, indem Sie sie von Ihrer Platine entlöten und in der Position neu verlöten R12.R11


Aktualisieren:

Hier ist die Platine, nachdem Fusseldieb die Modifikation vorgenommen hat (der Widerstand wurde von der R12Position in die R11Position verschoben):

Ursprüngliches LCD nach dem Bewegen des Widerstands von der R12-Position zur R11-Position

Es wurde bestätigt, dass diese Änderung die SPI-Schnittstelle erfolgreich aktiviert, indem die folgenden Anschlussstifte verwendet werden:

LCD-Pin SPI-Signal (Original)
------- ---------- ----------
   1 Vdd (Vdd)
   2 Vss (Vss)
   3 Vo (Vo)
   4 CS (SS) (RS)
   5 MOSI (R/W)
   6 SCLK (E)

Zu Ihrer Information, wenn Sie sich das andere Tutorial ansehen:

http://www.arduinoecia.com.br/2013/09/display-grafico-lcd-128x64-st7920.html

Das verwendet ein LCD-Modul mit einer völlig anderen Schnittstellen-Pinbelegung, die die Signale CS1und enthält CS2(Pins 15 und 16 an seinem 20-Pin-Anschluss). Dadurch kann die Schnittstelle zwischen parallel und SPI umgeschaltet werden, ohne dass Komponenten auf der Leiterplatte gelötet/entlötet werden müssen. Sie haben diesen 20-poligen Stecker mit diesen Signalen auf Ihrem LCD-Modul nicht. Aus diesem Grund gilt dieses Tutorial nicht direkt für Ihr Modul (obwohl die ST7920- Befehle wahrscheinlich gelten werden, sobald Sie eine SPI-Schnittstelle auf Ihrem spezifischen LCD-Modul zum Laufen bringen können).

Das ist jetzt eine ausführliche Antwort. Vielen Dank für deine Zeit. Da ich das LCD sowieso nicht verwenden kann, werde ich versuchen, den Widerstand so zu löten, wie Sie sagten. Ich antworte später.
@Fusseldieb - Gern geschehen :-) " Ich werde versuchen, den Widerstand so zu löten, wie du es gesagt hast " OK. Es ist vielleicht schon klar, aber da Sie das Entlöten, das zuerst erforderlich ist, nicht erwähnt haben, fasse ich nur zusammen: Die Modifikation besteht darin, zu entlöten R12 , bevor Sie dann dieselbe Komponente in die R11Stelle auf der Leiterplatte löten. Sie können nicht ohne Entfernen davonkommen R12;-) Wenn Sie ein Problem beim Entlöten haben R12(ich weiß nicht, welche Werkzeuge und Erfahrungen Sie haben), gibt es einen alternativen (aber risikoreicheren) Ansatz. Lassen Sie mich wissen, wenn ich es erklären muss. Viel Glück!
Getan. Habe ich richtig gelötet? prntscr.com/gjvd6o (Entschuldigung, dass ich diesen winzigen Widerstand fast getötet habe: P)
@Fusseldieb - Solange die rechte Seite R11richtig an das Pad gelötet ist (auf dem Foto bin ich mir nicht sicher), dann ja, das sieht für mich richtig aus :-)
No wayyy ... SCHAU : prntscr.com/gjvhqk Umarm mich! JETZT!
@Fusseldieb - Das sind ausgezeichnete Neuigkeiten. Ich denke, das zählt als Erfolg. Gut gemacht!
Sie, Sir, verdienen zwei Medaillen. Einer dafür, dass du gerade ein Superheld bist, und der andere nur für den Fall, dass du den ersten verlierst. Wow! Schließlich werden diese LCDs für viele Leute nützlich sein. Du kannst dir meine Freude jetzt nicht vorstellen. Ernsthaft. Ich danke dir sehr. :-)
@Fusseldieb - Ich bin sprachlos, danke. :-) Ist es nicht toll, wenn ein bisschen Hardware-Hacking funktioniert :-) Danke auch dafür, dass du all die Fotos und Links überhaupt zur Verfügung gestellt hast! Um zukünftigen Lesern zu helfen, aktualisiere ich meine Antwort und füge Ihr Foto der Leiterplatte hinzu, nachdem Sie den Widerstand verschoben haben, damit sie wissen, wie es aussehen sollte, um die SPI-Schnittstellenoption zu aktivieren. Nochmals: Gut gemacht und viel Glück!
Total nett! :-)

Entschuldigung, Sie stecken mit einer parallelen Schnittstelle auf diesem Display fest. Der Controller-IC selbst unterstützt die Wahl zwischen einer seriellen oder parallelen Schnittstelle, aber der Pin ist fest auf 1 auf der Platine verdrahtet.

Die kleinste nutzbare Schnittstelle wären 7 Bit: RS, R/W, E und vier Datenleitungen.

Aber warum sind die Header-Pins dann so gekennzeichnet, als würden sie SPI unterstützen? (RS, R/W, E)? Außerdem enthält der Beispielcode ein Video, das (genau?) Das gleiche LCD in Aktion über SPI zeigt, mit der gleichen Verkabelung wie bei mir.
SPI hätte Pins mit der Bezeichnung SCLK, MOSI, MISO und möglicherweise SS.
Ich habe in der Vergangenheit chinesische Displays verwendet. Und obwohl die Pins seltsame Beschriftungen hatten, unterstützten sie SPI. Du musst nur herausfinden, was was ist ...
@Codo Ich habe die Pins bereits dreifach überprüft. Ich weiß, welches MISO, CLK, CS ist ... Aber egal was, es wird nicht funktionieren.