www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pollin-LCD TC1602A-09T(R)


Autor: Udo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich verzweifele gerade mit dem o.a. 2x16-Display.

Gegeben:
- AT Mega32, der das o.a. LCD im 4-bit-Modus ansteuern soll; alle 7 
LCD-Pins hängen an Port D, JTAG und SPIEN sind nicht gesetzt, int. Osc 4 
MHz
- AVR-GCC mit Fleurys LCD-Lib,
- Platine wurde x-mal überprüft und für i.O. befunden; LCD-Anschlüsse 
haben einwandfreien Kontakt zu den entsprechenden µC-Pins.
- Software funktionierte mit anderen LCD; z.B. die bei Reichelt und dem 
Pollin TC1602A-08.
- Habe aber leider keines dieser LCD zum Testen verfügbar.
- Mit demselben Ergebnis getestet mit 2 nagelneuen Mega32 und 2 
nagelneuen LCD.


Problem:
- LCD initialisiert offensichtlich nicht richtig (schaltet ev. nicht in 
den 4-Bit-Modus??).
- Nach dem Einschalten sind schwarze Klötze nur in der 1. Zeile zu 
erkennen, in der 2. Zeile nichts, Cursor blinkt an Position 0.
- Bis zu 16 Zeichen lassen sich einmalig schreiben, aber sie werden 
nicht korrekt dargestellt. Bei identischen Zeichen "aaaaaaa..." 
erscheint nur "oooo..." auf dem LCD, bei unterschiedlichen Zeichen 
"asdfgh..." nur oo<-o..", also ein o und ein Pfeil rechts.
- Bei einem weiteren Schreibbefehl (lcd_puts) tut sich nichts.
- Beim Positionieren mit lcd_gotoxy wird immer an die letzte Stelle 
(x=15) gesprungen und dort das Zeichen o dargestellt - unabhängig von 
den Parametern bei lcd_gotoxy.
- Manchmal wird bei unveränderter Software gar nichts dargestellt.

Hilfe ;-)

Danke und Gruß, Udo

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Quellen wären ganz interessant um programmiertechnische Fehler 
auszuschließen.

Autor: Udo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

lcd.h und lcd.c von Peter Fleury bis auf die 100% korrekt definierten 
Ports und die nachfolgenden LCD-Einstellungen unverändert übernommen:

...
#define XTAL 4000000

// Use 0 for HD44780 controller, change to 1 for displays with KS0073 
controller.
#define LCD_CONTROLLER_KS0073   0

// @name  Definitions for Display Size
#define LCD_LINES           2
#define LCD_DISP_LENGTH    16
#define LCD_LINE_LENGTH  0x40
#define LCD_START_LINE1  0x00
#define LCD_START_LINE2  0x40
#define LCD_START_LINE3  0x14
#define LCD_START_LINE4  0x54
#define LCD_WRAP_LINES      0
...

LCD_WRAP_LINES hat keinen Einfluss auf das Verhalten. Auswahl vom KS0073 
führt leide4r auch zu nichts.
Timing stimmt; der µC läuft mit 4 MHz.

Main.c besteht nur aus ein paar LCD-Befehlen, die testweise variiert 
werden:

...
PORTD |= (1<<PORTD5);
lcd_init(LCD_DISP_ON);
//lcd_puts ("abb");
lcd_gotoxy (4,0);
//lcd_putc('s');
lcd_puts ("hoiut");
while(1);
...

Über PORTD5 wird das backlight eingeschaltet.
Die Wartezeit bis zum lcd_init nach Einschalten der Spannung hat 
zwischen 5 und 1000 ms keinen Einfluss auf das Verhalten.

Gruß, Udo

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu lange Leitungen? Eigene oder fremde Einstreuungen? Zu wenige 
Kapazitäten verteilt? Wackelkontakt oder kalte Löstelle? Macht die 
Versorgungsspannung schlapp? Falls greifbar häng doch mal ein Oszi an 
die Leitungen.

Autor: Udo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

g457 schrieb:
> Zu lange Leitungen? Eigene oder fremde Einstreuungen? Zu wenige
> Kapazitäten verteilt?

1,5 m Flachbandkabel. Nichts 'Strahlendes' in der Nähe. Der µC hat seine 
Kapazitäten, der Wannenstecker für das LCD-Kabel auch.


> Wackelkontakt oder kalte Löstelle?

Zigfach geprüft, auch nachgelötet.


> Macht die Versorgungsspannung schlapp?

Superstabil, keine Störungen.


> Falls greifbar häng doch mal ein Oszi an die Leitungen.

Hätte ich auch selbst draufkommen können...

Am LCD liegen dieselben Signale an wie am µC. Beim Schreiben eines 
Zeichens in einer while-loop (1 Mhz-Takt) zeigen  RS, Rw, E ein recht 
sauberes Rechteck mit leichten Überschwingern an den Flanken. D4 bis D7 
sehen dagegen ziemlich wüst aus; irgendwie ein Rechteck mit überlagerten 
Signalen mit verwaschenen Flanken. Ich mag aber nicht ausschließen, dass 
hier mein 25 Jahre altes Voltcraft-Billig-Oszi an seine Grenzen stößt.

Gruß, Udo

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du mal versucht die Delays in Peter Fleurys lcd_init - Routine zu 
vergrößern? Kann ja sein das dein Display etwas länger braucht.

 
    
    delay(4992);         /* delay, busy flag can't be checked here */
   
    /* repeat last command */ 
    lcd_e_toggle();      
    delay(64);           /* delay, busy flag can't be checked here */
    
    /* repeat last command a third time */
    lcd_e_toggle();      
    delay(64);           /* delay, busy flag can't be checked here */

    /* now configure for 4bit mode */
    LCD_DATA0_PORT &= ~_BV(LCD_DATA0_PIN);   // LCD_FUNCTION_4BIT_1LINE>>4
    lcd_e_toggle();
    delay(64);           /* some displays need this additional delay */
    

Würde auch mal ein kürzeres Kabel versuchen, wenn das nicht funzt.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>1,5 m Flachbandkabel.

Das ist sehr sportlich.

>D4 bis D7 sehen dagegen ziemlich wüst aus; irgendwie ein Rechteck mit
>überlagerten Signalen mit verwaschenen Flanken.

Wundert mich nicht.

MfG Spess

Autor: Udo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

danke für die Hinweise.

Mit den Delays hatte ich schon kräftigst herumgespielt; keine Besserung.

Das mit dem Kabel werde ich noch zusätzlich testen. Allerdings hatte ich 
damit bei gleicher Hardware und gleicher Ansteuerung sowie anderen LCD 
(inkl. Pollin TC1602A-08) bislang keine Probleme. Bei mir und anderen 
läuft diese Installation mit bis 2 m Länge unproblematisch im Auto, 
wobei das Flachbandkabel in meinem Fall 1x durch das Kabelgewühl des 
zentralen Sicherungskastens und neben einer PWM-Leistungsverkabelung 
verlegt wurde. Ich muss allerdings zugeben, dass es mich schon gewundert 
hat, dass das dauerhaft (nun schon 3 Jahre) funktioniert ;-)

Es sind zudem nur die Datenbits D4-D7 betroffen. Da tut sich ja, wenn 
ich die Ansteuerung richtig verstanden habe, etwas mehr auf der Leitung 
als bei RW, RS und E. Letztere sind ja sauber.


Gruß, Udo

Autor: Udo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

es funktioniert nun; mit unveränderter Software und leicht geänderter 
Hardware.

Es war das Kabel. Allerdings nicht die Länge (funktioniert im Moment mit 
den 1,5 m (- 2 cm) einwandfrei), sondern ein 'minimaler Kurzschluss' 
zwischen 2 Adern des Flachbandkabels im Bereich des Steckers. Muss wohl 
wegen einer Ungenauigkeit beim Pressen des Steckers passiert sein.

Entdeckt wegen des Hinweises auf ein zu langes Kabel. Kurzes versucht -> 
funktioniert -> langes seziert -> 2 cm gekürzt und neu verpresst -> 
läuft.

Die Signale D4-7 sehen immer noch nicht besser aus. Liegt wohl mehr an 
dem alten Oszi. Was mich zum nächsten Thema bringt:
Kann mir jemand ein gutes digitales Oszi empfehlen?
Nee, ok, war ein Scherz ;-)

Danke für die Hilfe und Gruß,
Udo

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.