Hallo, ich experimentiere mit einem LCD-Display von Midas. Es besitzt einen SI7032 Controller, mit dem über I2C kommuniziert wird. Das Schreiben funktioniert soweit, aber ich schaffe es nicht, das Busy Flag auszulesen. Im Datenblatt steht: "BF can be read, when RS = Low and R/W = High (Read Instruction Operation), through DB7 port." Wenn ich das RW-Flag auf 1 setze, gibt das Display immer 0b11111111 zurück. Anscheinend muss ich erst ein Kommando schicken, um vom LCD zurücklesen zu können, aber welches? Wie setze ich denn RS=0? RW wird ja im Byte vor RS gesendet; wenn ich mit RW=1 Lesen ausgewählt habe, kann ich ja nichts mehr auf den Bus schreiben. Ich kenne mich mit dem I2C eigentlich ganz gut aus, stehe hier aber auf dem Schlauch. Noch eine Frage: Was ist der Unterschied zwischen dem CGRAM und dem ICON Ram? Mike
Das Busy-Flag ist nur bei Gebrauch des Parallelinterfaces verwendbar, ebenso wie ein Lesezugriff auf das Display-RAM auch nur mit dem Parallelinterface möglich ist.
Das Display hat aber kein Parallelinterface. Heißt das, dass ich zwischen den Befehlen immer Wartezeiten einlegen muss? Bin ich wieder mal auf ein fehlerhaftes Datenblatt reingefallen?
Das Datenblatt ist in der Tat ziemlich schlunzig. Ja, ich fürchte, Du wirst warten müssen.
1 | I2C Interface |
2 | It just only could write Data or Instruction to ST7032 by the IIC Interface. |
3 | It could not read Data or Instruction from ST7032 (except Acknowledge signal). |
1 | Acknowledge is not Busy Flag in I2C Interace |
:
Bearbeitet durch User
Mike schrieb: > "BF can be read, when RS = Low and R/W = High (Read Instruction > Operation), through DB7 port." Hab ich auch schon probiert, scheint über I2C nicht zu funktionieren. Alles was einem bleibt ist stur die delays aus dem Datenblatt einzuhalten :-( Der I2C den die da verbaut haben ist überhaupt eine ziemliche Fehlkonstruktion: Die SCL und SDA Pins scheinen intern noch Widerstände in Reihe zu haben (geschätzt jeweils 1k, ich frag mich was die geraucht haben) was zur Folge hat daß die Pullups unglaublich schwach sein müssen. Wenn man den Bus nur ein klein wenig straffer gespannt hat schafft das Ding es nicht mehr sie ordentlich auf 0 zu ziehen. Das ist nicht gut geeignet um noch viel anderes an den selben Bus zu hängen oder mehr als nur ein paar Zentimeter zu überbrücken.
> Die SCL und SDA Pins scheinen intern noch Widerstände in Reihe zu haben
Ich vermute eher, dass die Treiber-Mosfets der Ausgänge recht
schwachbrüstig ausgelegt sind. Im Datenblatt des ST7032 ist die
Ausgangslast mit 1 mA spezifiziert. Pullups < 5kOhm könnten daher zu
Problemen führen. Leider werden dadurch Taktfrequenzen > 100kHz auf dem
Bus kritisch. Für das Display nicht weiter schlimm, aber wenn noch
andere Bausteine am Bus hängen bisweilen lästig.
Vorteil des Displays ist der geringe Stromverbrauch von < 200µA. LCDs
mit HD44780 sind da eine Größenordnung schlechter.
Die hochohmigen I2C-Leitungen sind bei der COG-Technik (chip on glass) verfahrensbedingt. Leiterbahnen auf Glas leiten nicht so gut wie welche aus Kupfer.
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.