USB-I2C-Interface und LCD-Display

zur Übersicht3 Beiträge Thema abonnieren Neue Antwort
Anzeigen  Sortieren 

USB-I2C-Interface und LCD-Display

von elektro-z » 25.07.2012, 13:10 

Hallo,

ich versuche gerade, das USB-I2C-Interface mittels HTerm mit einem HD44780-LCD im 4-bit-Modus zu betreiben. Dazwischen hängt wie üblich ein PCF 8574.

Beschaltung:
D7 = Beleuchtungssteuerung (soll in diesem Beispiel immer 0 bleiben)
D6 = E
D5 = RW
D4 = RS
D0-D3 sind die Datenpins

Was schon klappt ist die Beleuchtung ein- und auszuschalten; ich bekomme dann auch jeweils ACK zurück. Nun versuche ich zuerst den Befehl 0f (Display ein, Cursor blinkt) und dann die Daten 43 (ein Zeichen als Test) zu übertragen:
S40 40 00 4f 0f 54 14 53 13 p

Erläuterung:
S40 Start auf Adresse des LCD
40 E=1, RW=0, RS=0, 1. Datennibble = 0
00 Fallende Flanke von E zur Datenübernahme
4f E=1, RW=0, RS=0, 1. Datennibble = f
0f Fallende Flanke von E zur Datenübernahme
54 E=1, RW=0, RS=1, 1. Datennibble = 4
14 Fallende Flanke von E zur Datenübernahme
53 E=1, RW=0, RS=1, 1. Datennibble = 3
13 Fallende Flanke von E zur Datenübernahme
p Stop

Leider passiert gar nichts. Was mache ich denn falsch? Für jeden Hinweis bin ich sehr dankbar!

Viele Grüße

Michael
elektro-z
Beiträge: 2
Registriert
25.07.2012

AW: USB-I2C-Interface und LCD-Display

von Werner Müller (Technik) » 03.08.2012, 13:26 

Hallo elektro-z

Möglicherweise ist die fehlerhafte Funktion auf eine zu schnelle Datensignalfolge des USB-I2C-Interface zurückzuführen, welche vom Displaycontroller nicht verarbeitet werden kann. Fügen Sie doch bitte einmal Pausen ein oder aber reduzieren Sie die I²C-Taktrate.
Werner Müller (Technik)
Beiträge: 1018
Registriert
29.06.2011
Mit freundlichen Grüßen Werner Müller (Technik)

AW: AW: USB-I2C-Interface und LCD-Display

von elektro-z » 03.08.2012, 22:35 

Vielen Dank, die Verringerung des Takts war die eine Hälfte der Lösung! Pausen einfügen hatte leider nicht geklappt, ab der ersten Pause kam kein ACK mehr zurück.

Die Zweite Hälfte der Lösung war die korrekte Initialisierung des Displays. Mittels

S40 03 43 03 43 03 43 03 02 42 02 42 02 08 48 08 00 40 00 08 48 08 00 40 00 01 41 01 00 40 00 06 46 06 00 40 00 0f 4f 0f 14 54 14 13 53 13 P

wird das Display initialisiert (3x 03 im 8-bit-Modus (auch wenn die oberen 4 nicht angeschlossen sind, was bei einem "0" als oberem Nibble aber nichts ausmacht), dann 02 zur Umschaltung in den 4-bit-Modus, dann 28, 08, 01, 06, 0c zum Einstellen der Modi (Display nicht shiften, kein Cursor; Display leeren und Zeiger auf den Anfang setzen; Cursor geht beim Schreiben von Daten eine Stelle nach rechts; Display an), dann "43" um ein C darzustellen (Achtung: hier ist RS dann 1". Mittels "C0" als Befehl springt man in die zweite Zeile und kann dann dort Zeichen senden.

Kurz und gut: alles klappt, ich habe die Kommunikation soweit im Griff, und ich kann jetzt daran gehen, die Anzeige in die Firmware des Gerätes, an das ich das Display hängen will, einzupatchen.

Ciao

Michael
elektro-z
Beiträge: 2
Registriert
25.07.2012
Anzeigen  Sortieren 
zur Übersicht3 Beiträge Neue Antwort