Ich versuche seit einiger Zeit das ding mit einem Pollin AVR-Net-IO und Ethersex zum laufen zu bekommen. Die Pinbelegung habe ich bereits angepasst: /* port mapping lcd -> pcf8574x pin */ #define HD44780_PCF8574x_DB4 (4) #define HD44780_PCF8574x_DB5 (5) #define HD44780_PCF8574x_DB6 (6) #define HD44780_PCF8574x_DB7 (7) #define HD44780_PCF8574x_RS (0) #define HD44780_PCF8574x_WR (1) #define HD44780_PCF8574x_EN (2) #define HD44780_PCF8574x_BL (3) ... aber das ding will einfach nicht. Backlight An/Aus funktioniert und ist Positiv geschaltet. Es zeigt auch was an ... undefinierte Zeichen, in etwa so: ***** ***** ***** ***** Davon 2 - 3 mal so viel, wie eigentlich vorhanden sein sollten. Hat jemand eine Erklärung dafür? Meine Vermutung ist: a) Initialisierung des 4-bit Modus funktioniert nicht richtig b) Signal ist Invertiert kann mir jemand weiter helfen?
b) Signal ist Invertiert kann denke ich ausgeschlossen werden ... ich habe einfach alle signale invertiert, und es hat nicht geholfen. Es wird wohl eher die Intitialisierung sein, welche für das Pollin expansionsboard geschrieben wurde ... mag mir jemand sagen, wie man die initialisierung auch für dieses Display hinbekommt? Ich habe den code bereits mit dem der LiquidCrystal abgeglichen und nichts ungewöhnliches gefunden ...
Um eine befriedigende Antwort zu erhalten, musst uns schon noch ein paar Informationen mehr über dein "Geheimprojekt" geben (z.B. Schaltbild)
Wie du sicher aus meinem Text erkennen kannst, funktioniert die Kommunikation mit dem PCF8574 (Backlight lässt sich an und ausschalten)... ich habe einfach das I2C Display mit folgenden Pins am ABR-NET-IO verbunden: 2 PC0 (SCL) 3 PC1 (SDA) 15 5V 18 GND http://www.ethersex.de/index.php/I2C_%28Deutsch%29 Entsprechend des quellcodes (i2c_master.c) setzt ethersex auch die Pullups: /* Enable the i2c pullups */ PIN_SET(SDA); PIN_SET(SCL); Das ist denke ich nicht das Problem. Den Rest der Schaltung habe ich nicht in der Hand, da er eingekauft ist. Die Belegung die ich oben gefunden habe stimmt mit einigen Quellen im Internet überein.
Mach 4K7 Pullups an SCL und SDA und erforsche ob der interne HD44780 wirklich einer ist. Es gibt einige kompatible Typen, die nicht ganz kompatibel sind. Vor allem was die Initialisierung angeht. Dann gehst du stoisch der Init-Sequenz nach, die im DB angegeben ist. Dann wirds auch funzen.
"Warum nicht gleich?" Du hast ein I2C-Display, also ist es egal ob in der LCD-Firmware 4-oder 8-Bit Initialisierung statt findet. Was aber viel wichtiger ist: Was ist die I2c-Adresse vom PCF8574 und vom LCD2004 und sind sie in i2c_master.c richtig eingetragen?
> Mach 4K7 Pullups an SCL und SDA Wird geprüft > Mach 4K7 Pullups an SCL und SDA und erforsche ob der interne HD44780 wirklich einer ist. Ich habe keine genauen Informationen dazu gefunden. In der LiquidCrystal Library wird auf die Init Sequenz des Datenblkattes des originalen HD44780 verwiesen - mit ein paar Workarounds, die ich auch versucht habe einzubinden. > Du hast ein I2C-Display, also ist es egal ob in der LCD-Firmware 4-oder 8-Bit Initialisierung statt findet. Nein, denn der PCF8574 ist ja nur ein Port-Extender, der aber nur 4-Bit am Display angeschlossen ist?! > Was ist die I2c-Adresse vom PCF8574 und vom LCD2004 und sind sie in i2c_master.c richtig eingetragen? Ist dementsprechend die selbe (0x3F,63), und wurde per make menuconfig konfiguriert. Ich werde aber die i2c_master.c prüfen.
>> Mach 4K7 Pullups an SCL und SDA >Wird geprüft Keine Änderung am Ergebnis > Was ist die I2c-Adresse vom PCF8574 und vom LCD2004 und sind sie in >i2c_master.c richtig eingetragen? Wenn ich das richtig sehe gibt es in der Aktuellen Version nur noch die Möglichkeit über make menuconfig
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.