Forum: Mikrocontroller und Digitale Elektronik Zweite Zeile Pollin TC1602A-09


von Peter (Gast)


Lesenswert?

Hallo!

Ich hab das o.g. Display von Pollin und bekomme einfach die zweite Zeile 
nicht zum laufen.

Der Controller ist HD44780 kompatibel. Ein anderes Display mit diesem 
Controller läuft mit der Software problemlos.
Kann es ein Defekt des Displaycontrollers sein? Oder ist es möglich, 
dass bei diesem Display ein völlig seltsamer Adressbereich (habe es mit 
0x20-0x2F 0x40-0x4F 0x60-0x6F und 0x80-0x8F probiert) verwendet wird?

Wäre schön, wenn jemand das Teil schon am Laufen hat und mir Infos geben 
könnte.

Für Eure Mühen schonmal danke!

MfG

Peter

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Nein, nix ungewöhnliches, die Dinger laufen einwandfrei, Zeile 2 ab 
Adresse 0x40, so wie sie sollen. Habe 6 davon im Einsatz, keine 
Probleme. Entweder Deine Init ist grenzwertig oder Du hast wirklich ein 
kaputtes erwischt. Hast Du noch ein anderes davon zum probieren?

von Peter (Gast)


Lesenswert?

Hallo!

ich habe leider nur dieses eine Exemplar.

Was hast Du für Timings in der Init?

Hier mal meine init-Funktion.
1
void init_controller(unsigned char befehl)
2
{
3
/*Erstes Schreiben mit 8 Bit*/
4
  LCD_PORT=(LCD_PORT & (~(0x0F << LCD_OFFSET))) | (0x03 << LCD_OFFSET);
5
  lcd_e_wechsel_f();                //erstes Schreiben der Init-Werte (fallende Flanke)
6
  _delay_ms(5);                  //5ms warten
7
  lcd_e_wechsel_f();                //zweites Schreiben der Init-Werte (fallende Flanke)
8
  _delay_us(1);                  //1us warten
9
  lcd_e_wechsel_f();                //drittes Schreiben der Init-Werte (fallende Flanke)
10
  _delay_us(1);                  //1us warten
11
12
/*Port fuer 4-Bit Modus konfigurieren*/
13
  LCD_PORT=(LCD_PORT & (~(0x0F << LCD_OFFSET))) | (0x02 << LCD_OFFSET); 
14
  lcd_e_wechsel_f();                //Fallende Flanke generieren
15
  _delay_us(1);                  //1us warten
16
  
17
/*LCD-Settings einstellen*/
18
  lcd_befehl(LCD_4BIT2);              //LCD auf 4 Bit-Betrieb umstellen
19
  lcd_befehl(LCD_ANZ_AUS);              //Anzeige aus
20
  lcd_befehl(LCD_LOESCH);              //Anzeige loeschen
21
  lcd_befehl(LCD_CRSR_RECHTS);            //Cursor-Modus setzen
22
  lcd_befehl(befehl);                //Befehl aus Funktionsaufruf übergeben
23
}

MfG

Peter

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Vor dem ersten Schreiben auf das Display muß nach dem Einschalten 
erstmal 200ms gewartet werden. Zwischen einzelnen Befehlen muß 
mindestens 40µs (!), bei manchen sogar (Cursor Home) bis zu 400µs. Im 
Datenblatt des HD44780 ganz hinten sind die beiden möglichen Inits mit 
Wartezeiten ausführlich beschrieben.

von Wolfgang-G (Gast)


Lesenswert?

ich hatte mal eine Anzeige, die zeigt 2 Zeilen nur im 8 Bit Modus an;
bei 4 Bit Modus habe ich nur eine Zeile zur Anzeige gebracht, Ursache 
konnte ich nicht klären

von Peter (Gast)


Lesenswert?

@ Travel Rec.: Die Timings habe ich jetzt entsprechend den Vorgaben 
abgeändert (die alten waren aus einem Datenblatt eines anderen Displays 
mit diesem Controller). Leider hat das am Ergebnis nichts geändert ich 
kann nichts auf die zweite Zeile schreiben. Langsam geh ich wirklich von 
einem Defekt aus. Wäre es zu unverschämt nach Deiner Init zu fragen?

Schonmal Danke für Deine Mühen!

MfG

Peter

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Wäre es zu unverschämt nach Deiner Init zu fragen?

Nö, gar nicht, aber ich progge in ASM ;-)

von Peter (Gast)


Lesenswert?

Hm, okay da kannste mir auch nen Abdruck von nem Autoreifen schicken. 
;-)

Naja, ich besorg mir einfach mal ein zweites Display. Wenn das auch 
nicht geht, liegt der Fehler wohl irgendwo zwischen den Augen.

Jedenfalls Vielen Dank für Deine Hilfe!

MfG

Peter

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Poste doch mal Deinen derzeitigen C-Code, aber bitte mit Ausgaberoutine. 
Ein bisserl kann ich mir zusammenreimen, viele andere Forumleser können 
ebenfalls mitreden. Zu 99,8% liegt es aber bestimmt nicht am LCD.

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.