Forum: Mikrocontroller und Digitale Elektronik TC1602E-01 von Pollin über I2C


von Andi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

nachdem ich einige Themen hier und in anderen Foren dazu gelesen habe, 
ist mir mein Fehler bei der Umsetzung einer Ansteuerung eines TC1602E-01 
von Pollin über I2C, nicht ganz klar.
Kurzum: Es funktioniert nicht und ich weiß nicht warum. Außer den 
schwarzen Balken zeigt es nichts an.

Ich nutze folgendes:

Display: TC1602E-01 von Pollin, das Datenblatt findet man z.B. hier:
http://www.g-heinrichs.de/attiny/LCDisplay.pdf
Den wohl bekannten Portexpander: PCF8574
Ich programmiere in C (AVR-Studio)
µC: ATmega 644 mit 16 MHz


Folgende Software nutze ich:
Angelehnt an dieses Projekt: 
http://www.bralug.de/wiki/BLIT2008-Board-LCD
Die dort erhältlichen Dateien

i2clcd.c
i2clcd.h
twimaster.c  (Von Peter Fleury)
i2cmaster.h  (Von Peter Fleury)

verwende ich. Man kann sie allesamt hier downloaden:
http://bralug.de/wiki-common/images/c/cb/Twi_lcd.tar.gz

Ich habe die Portpins in der i2clcd.h angepasst.
Als Anhang habe ich die von mir angepasste i2clcd.h beigefügt.


Zum testen verwende ich folgenden Code in der main:
// TWI initialisieren
i2c_init();

// LCD initialisieren
lcd_init();

// LCD-Anzeige loeschen
lcd_command(LCD_CLEAR);

// Text auf LCD ausgeben
lcd_printlc(1,1,(unsigned char *)"TEST");
lcd_printlc(2,1,(unsigned char *)"Reihe 2");




Durch Tests kann ich sagen das immerhin der Portexpander funktioniert.
Bei 0xF0 erhalte ich 4x Low und 4x High.
Das Display zeigt (leider Dauerhaft) schwarze Balken. Der Kontrast ist 
also okay.
Im Grunde genommen wird wohl die Datenverbindung zwischen Portexpander 
und Display nicht korrekt durchgeführt.
Folgendes ist mir aufgefallen. Das Display hat eine 5x8 Pixel-Matrix.
Vielleicht liegt es daran?

Wer kann mir dazu mehr sagen?

Gruß, Andi

von Browncoat (Gast)


Lesenswert?

Hi Andi, der Code funktioniert, bei mir fast auf Anhieb. Habs mit fünf 
Displays getestet.

Mit einem DV40200-5 (2x40) funktionierte es sofort.

Ein Optrex DMC20481 (4x20) brauchte noch eine Zeitanpassung. Diese 
Displays gehören noch zum Urgestein (Original HD44780 verbaut) und sind 
daher etwas träge. In der i2clcd.c muß in Zeile 124 der Wert 
lcd_wait_us(800) in lcd_wait_ms(5) geändert werden, dann klappts auch 
mit diesem Display.

Das TC1602E-01 von Pollin funktioniert auch, allerdings wird nur 
Datenmüll angezeigt. Lediglich der Zähler wird einigermaßen korrekt 
angezeigt. Warum das so ist, kann ich noch nicht sagen. Initialisierung 
scheint ja zu funktionieren.

Ein BT1602FB (Batron, 2x16) und ein MC1602FSBL (2x16) wollten noch 
garnicht spielen :) .

Da die Ports bei dir funktionieren dürfte die eingestellte Adresse auch 
korrekt sein.

Hab das ganze mit einem Atmega128 @ 16 MHz getestet.

MfG BC

von Browncoat (Gast)


Lesenswert?

Habe heut ncohmal ein anderes TC1602E-01 getestet, funktioniert 
einwandfrei. Anscheinend hat das zuvor getestete ein anderes Problem.

MfG BC

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.