Forum: Mikrocontroller und Digitale Elektronik Display mit SI7032: Wie Busy Flag lesen?


von Mike (Gast)


Angehängte Dateien:

Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

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?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das Datenblatt ist in der Tat ziemlich schlunzig. Ja, ich fürchte, Du 
wirst warten müssen.

von Timmo H. (masterfx)


Lesenswert?

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
von Bernd K. (prof7bit)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

> 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.

von Sebastian (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.