Saintsmart LCD2004 (HD44780 + PCF8574) an AVR-NET-IO

Gast #3312872
Lesenswert?

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?
Gast #3312932
Lesenswert?

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 ...
Gast #3312968
Lesenswert?

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.
Gast #3313211
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren