Grafikdiplay ST7920 via i2C ansteuern, wie geht das mit der LIB???

Hallo,

ich spiele gerade mit einem 128x64 Grafik LCD, Chip ST7920,
als LIB habe ich mir die U8GLIB aufgespielt.

Da die LIB und ihre Funktionen sehr gut dokumentiert sind, laufen eigentlich
alle Funktionen soweit ganz gut!

nun hätte ich dazu jedoch zwei Fragen:

das Display initialisiere ich bei Parallelbetrieb mit

//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);   // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 

 //U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);   // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16

und bei Seriell mit

//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17);	// SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 

//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17);	// SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17

Frage1: für jede Betriebsart gibt es 2 Möglichkeiten, U8GLIB.......1X und 4X, worin besteht da der Unterschied??

Frage2: wenn ich das Display wie Portexpander über i2c ansteuern möchte (oder muss) wie kann ich der LIB klarmachen dass ich mit i2c senden möchte???

Danke für die Antworten! Und natürlich (schon mal) alles Gute für 2017!

Stefan

StefanB79:
Frage2: wenn ich das Display wie Portexpander über i2c ansteuern möchte (oder muss) wie kann ich der LIB klarmachen dass ich mit i2c senden möchte???

Indem du die Library so anpasst, dass sie auch mit I2C funktioniert. Das ist natürlich möglich und nicht wahrscheinlich nicht so kompliziert wie es sich anhört, aber nichts für Anfänger.

Wieso kommt SPI nicht in Frage? Das wird unterstützt und ist wie I2C ein Bus der mehrere Geräte gleichzeitig ansprechen kann.

Zu Frage 1: Ich hab hier nur ein Display mit ST7565 würde aber von diesem ausgehend meinen, dass mit 4x eine SPI-Verbindung mit 4 parallelen Datenleitungen gemeint ist. Sowas ist bei Arduinos als Hardware eher unüblich, eventuell wird da Soft-SPI verwendet. Korrektur, nein es scheint etwas mit dem von der Lib verwendetem Speicher zu tun zu haben. Da steht was von "quad ram" und "quad buffer SPI".

Zu Frage 2: Bei Betrieb über einen Portexpander würde das Display im Parallelbetrieb arbeiten. Die Lib müsste dann zusätzlich zum Display auch noch den Portexpander initialisieren und ansteuern. Das macht in der Regel wenig Sinn, SPI ist ein schnelleres Busssystem als I2C. Den ST7565 beschreibe ich mit 4 MHz, da kommt kein I2C hin.

wenn i2C nicht möglich ist, kann ich ja auch bei (Software)SPI bleiben!

Vielen Dank!

ArduFE:
Da steht was von "quad ram" und "quad buffer SPI".

Ein 128x64 pixel Display braucht 1kByte RAM als Bildspeicher wenn 1 Bit ein Pixel schaltet.

Quad-Ram ist eine RAM-Erweiterungsplatiene für den Arduino MEGA2560. Der kann über 18 Pins ein externes 64-kByte RAM (mit einem Bus-Multiplexer) in den internen RAM Adressbereich einblenden und so das RAM erweitern.

Grüße Uwe