Hallo, ich möchte beim DOGM204-A Display den Zeichensatz wählen. Laut Datenblatt gibt es 3 interne Character Set, die man per Software umschalten kann. Hat sowas schon mal jemand erfolgreich gemacht und kann mir sagen wie? Ich kann alles Mögliche konfigurieren, aber nicht das Character ROM. Laut Datenblatt soll man die Sequenz 0x3A 0x72 0x.. 0x38 an das Display schicken, wobei die Werte 0x00, 0x04 oder 0x0c für die ROM Auswahl stehen. Aus dem Datenblatt des ssd1803a Controllers lese ich zwar die Werte 0x00, 0x40 und 0x80 für die ROM Auswahl, aber egal, keiner davon funktioniert. Ich verwende übrigens aktuell einen ESP32 mit MicroPython, aber das sollte hier ja eigentlich keine Rolle spielen.
Wolfgang K. schrieb: > Laut Datenblatt soll man die Sequenz 0x3A 0x72 0x.. 0x38 an das Display > schicken, wobei die Werte 0x00, 0x04 oder 0x0c für die ROM Auswahl > stehen. Aus dem Datenblatt des ssd1803a Controllers lese ich zwar die > Werte 0x00, 0x40 und 0x80 für die ROM Auswahl, aber egal, keiner davon > funktioniert. Aus dem Datenblatt lese ich zu Character Table das was als Screenshot im Anhang zu sehen ist. Ich erkene da Diskrepanzen zu deinen Annahmen. Vielleicht hast du auch übersehen dass beim ROM Selection Command das RS Bit auf 1 gesetzt werden muss (sonst null).
Vielen Dank für die schnelle Antwort. Ich habe nur eine Weile gebraucht für die Umsetzung. Aber jetzt funktioniert es. Ich steuere das Display über I2C an und da finde ich das Datenblatt bezüglich dem Setzen des rs-Bits etwas unübersichtlich. Falls vielleicht jemand anderer das gleiche Problem hat, hier mein Code(fragment) in MicroPython.
1 | def select_character_rom(self, value): |
2 | assert value >= 0 and value <= 2, "allowed values: 0..2 for ROM A..C" |
3 | |
4 | i2c = SoftI2C(scl=, sda=) |
5 | |
6 | rom_sel = (0x00, 0x04, 0x08)[value] |
7 | |
8 | i2c.writeto(i2c_addr, bytearray([0x00, 0x3A])) |
9 | i2c.writeto(i2c_addr, bytearray([0x00, 0x72])) |
10 | i2c.writeto(i2c_addr, bytearray([0x40, rom_sel])) |
11 | i2c.writeto(i2c_addr, bytearray([0x00, 0x38])) |
12 | |
13 | ''' |
14 | Das erste Byte in bytearray() ist jeweils das, |
15 | was im Datenblatt als Control byte bezeichnet wird. |
16 | Bit 6 davon, in der I2C-Beschreibung des Datenblatts |
17 | als D/C bezeichnet, müssste das RS-Bit sein. |
18 | ''' |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.