Hallo Gemeinde
Ich erlaube mir mal einen Beitrag zu veröffentlichen.
Anleitung LCD Modul Modell 12864B seriell (SPI) – die Verkabelung.
Seit einiger Zeit nutze ich die Arduinos und habe viel mit dem Internet gelernt. Ich will nun auch was beitragen und Wissen teilen.
- Display 12864B V2.0 mit Controller ST7920
- Auflösung/Display 128 x 64 Pixel Abmessung/Dimension 93 x 70mm monochrome
- Ansteuerung seriell oder parallel möglich
- Achtung - optisch gleiche Module ABER mit Pin 15 "CS"1, Pin 16 "CS2" Die können aber nur parallel - -- Achtung – es gibt auch 3V3 - Modelle am Markt !
- Das Preis/Leistung Verhältnis ist optimal (einstelliger Euro Bereich)
Das LCD Modul versteckt seine serielle Schnittstelle ein wenig. Das steht erst im Datenblatt. Ich habe das nun mal (aus meiner Sicht) zusammengefasst.
Die Beschriftung auf dem Modul sieht eher nach paralleler Schnittstelle aus, aber es geht auch seriell.
Die Pins bedeuten dann:
Display Pin 1 = Vss = GND = 0V
Display Pin 2 = Vdd = Plus = +5V (4mA)
Display Pin 3 = NC nicht verwendet/ not connencted
Display Pin 4 = RS CS(SS) chip select SPI (RS in parallel Mode (RS=0: Instruktion, RS=1: Data)
Display Pin 5 = R/W = MOSI SPI = (R/W in parallel Mode (R/W=0: write, RS=1: read)
Display Pin 6 = E SCK = Clock SPI (E enable in parallel Mode)
Display Pin 7 = brauchen wir nicht DB0 in parallel Mode
Display Pin 8 = brauchen wir nicht DB1 in parallel Mode
Display Pin 9 = brauchen wir nicht DB2 in parallel Mode
Display Pin 10 = brauchen wir nicht DB3 in parallel Mode
Display Pin 11 = brauchen wir nicht DB4 in parallel Mode
Display Pin 12 = brauchen wir nicht DB5 in parallel Mode
Display Pin 13 = brauchen wir nicht DB6 in parallel Mode
Display Pin 14 = brauchen wir nicht DB7 in parallel Mode
Display Pin 15 = PSB - parallel serial Selector PSB=0: serial, PSB=1parallel
Display Pin 16 = nicht verwendet/ not connencted
Display Pin 17 = Reset RST=0: Display off
Display Pin 18 = LCD Kontrast Spannung - Poti auf der Platine / LCD contrast - Potentimeter on PCB
Display Pin 19 = Display LED + (5V = 33mA, 3,3V = 17mA)
Display Pin 20 = Display LED - = GND = 0V
Display Pin 1+15+20 können verbunden werden
Die Hardware ist der Teil 1 der Lösung. Ohne Software wird nichts am Display angezeigt werden. Es wird eine serielle Übertragung genutzt. Davon gibt es mehrere Arten (und ausreichend Literatur) aber hier wird SPI (heißt: Serial Peripheral Interface)verwendet.
Bei diesem System gibt es einen „master“ und „slaves“ am Bus.
Es gibt 4 Leitungen die verschiedene Namen und Funktionen haben.
- MISO = Master in –Slave out – also Daten vom Slave zum Master senden
- MOSI= Master out – Slave in – also Daten vom Master zum Slave senden
- Taktleitung – Serial Clock
- Eine „Auswahlleitung“ Das bedeutet alle Slaves hängen gleichzeitig am Bus und die „Auswahlleitung“ wird für jeden Slave extra benötigt. Die sagt dem Slave „nun bist du dran“ und darfst Empfangen oder senden. (Gelegentlich findet man auch CS – chip select)
Für das Display bedeutet dass, wir können die Leitung 1 MISO (also vom Slave zum Master) gleich wieder vergessen. Das (dieses !) Display kann nichts senden sondern nur empfangen.
Leitung 2 MOSI, Leitung 3 Takt und Leitung 4 Slave Select brauchen wir schon.
Nun wo muss welche Leitung angeschlossen werden ist noch zu besprechen. Da gibt es 2 Arten von SPI Systemen. Es gibt ein Hardware SPI (fix einem PIN zugeordnet) oder aber Soft SPI. Da macht die Software (legt die Software fest) welche Funktion welcher PIN hat. Die Hardware SPI hat noch eine kleine Tücke. Je nach dem welchen Arduino man verwendet sind es unterschiedliche Pins. Da bleibt ein Blick in die Doku Pflicht.
Bei der Software SPI legt es die Software fest. Irgendwie logisch.
Bleibt noch die Frage welche Software verwenden. Es gibt mal die Möglichkeit sich das selber zu programmieren. Gott sei Dank haben aber die Könner Bibliotheken programmiert die einem die Arbeit wesentlich erleichtern. Es gibt verschiedene Bibliotheken. Einige unterstützen nur Hard SPI, andere nur bestimmte Displays.
Die „Lieblings Bibliotheken“ muss jeder für sich finden und sich dann auch mit den Einstellungen beschäftigen oder sich anhand von Beispielen schlau machen.
Das kann dann so aussehen:
Name der Bibliothek_Name Display Auflösung Display Befehl(A, B, C, D);
Unter A,B,C,D erwartet die Bibliothek dann angaben welcher Pin verwendet werden soll.
A= Pin für Clock = Takt
B= Pin für MOSI
C= Pin für Slave Select
D=Pin für Reset oder man sagt der Bibliothek Befeh_ PIN_NONE also keine Angabe
Es gibt aber auch Bibliotheken
Name der Bibliothek_Name Display Auflösung Display Befehl(A)
A= nur mehr der PIN für Slave Select – damit erkennt die Bibliothek es muss die Hardware SPI verwendet werden und der Programmierer muss dann wissen wo die anderen Leitungen angeschlossen werden müssen.
Profis mögen über den Beitrag großzügig hinwegsehen (und Fehler bitte melden), Anfängern soll es den Einstieg ein wenig erleichtern.
LCD 12864 mit Controller ST7920 seriell Anleitung zur Verkabelung mit UNO.pdf (121 KB)


