Forum: Mikrocontroller und Digitale Elektronik Bekomme mein LCD Display nicht ins Laufen


von johannes (Gast)


Lesenswert?

Hallo zusammen,

ich verwende das LCD-Display 161A von Displaytech und habe scheinbar 
Probleme bei der Initialisierung, da ich nur schwarze Kästchen angezeigt 
bekomme.

Ich verwende die lcd-routines.c/.h aus diesem Video 
(https://www.youtube.com/watch?v=p8r1EXRLQV0&t=304s)

Mein µC: Atmega32A-PU
(Datenblatt: https://www.promelec.ru/pdf/atmega32a.pdf)

Angeschlossen ist das Display wie folgt(4-Bit Modus?):

LCD Pin 1_(VSS)_____an GND
LCD Pin 2_(VDD)_____an VCC (5V)
LCD Pin 3__(VO)_____an 10k Poti (für den Kontrast)
LCD Pin 4__(RS)_____an PC2
LCD Pin 5__(R/W)____an GND
LCD Pin 6___(E)_____an PC3
LCD Pin 7___(DB0)___an /
LCD Pin 8___(DB1)___an /
LCD Pin 9___(DB2)___an /
LCD Pin 10__(DB3)___an /
LCD Pin 11__(DB4)___an PC4
LCD Pin 12__(DB5)___an PC5
LCD Pin 13__(DB6)___an PC6 (TOSC1)
LCD Pin 14__(DB7)___an PC7 (TOSC2)
LCD Pin 15__(BLA)___an / (Hintergrundbeleuchtung)
LCD Pin 16__(BLK)___an / (Hintergrundbeleuchtung)

Zum Testen habe ich einfach mal folgendes Programm ausprobiert:

#define F_CPU 8000000
#include <avr/io.h>
#include "lcd-routines.h"


int main(void)
{
  lcd_init();

  lcd_data('1');
  lcd_data('2');
  lcd_data('3');

        while (1)
    {
    }
}


Hoffe mir kann jemand auf die Sprünge helfen!
Danke im Voraus :)

Grüße

von Jörg R. (solar77)


Lesenswert?

johannes schrieb:
> ...Probleme bei der Initialisierung, da ich nur schwarze Kästchen angezeigt
> bekomme.

Verändere mal die Kontrasteinstellung.

von johannes (Gast)


Lesenswert?

Jörg R. schrieb:
> johannes schrieb:
>> ...Probleme bei der Initialisierung, da ich nur schwarze Kästchen angezeigt
>> bekomme.
>
> Verändere mal die Kontrasteinstellung.

Kann ich ändern wie ich möchte, die schwarzen Balken bleiben immer 
vorhanden. Es "schimmert" auch kein Text durch

von johannes (Gast)


Lesenswert?

Fuses habe ich gerade mal noch von ext. Crystal zurück auf default (Int. 
RC Osc. 1MHZ; Start-Up 6CK+64ms;default value) gestellt.
Hat allerdings zu nichts geführt.

von holger (Gast)


Lesenswert?

>da ich nur schwarze Kästchen angezeigt bekomme.

Alle schwarz oder nur die erste Zeile?

>> Verändere mal die Kontrasteinstellung.

>Kann ich ändern wie ich möchte, die schwarzen Balken bleiben immer

Wenn das Poti richtig angeschlossen ist müssten die aber auch mal 
verschwinden oder wenigstens sehr blass werden.

von Bernd (Gast)


Lesenswert?

Kein Schaltplan, kein Bild des Aufbaus, keine Programm, keine Hilfe.

von johannes (Gast)


Lesenswert?

holger schrieb:
>>da ich nur schwarze Kästchen angezeigt bekomme.
>
> Alle schwarz oder nur die erste Zeile?
Die ersten 8 Stellen (Ist ein 1x16 LCD)
>>> Verändere mal die Kontrasteinstellung.
>
>>Kann ich ändern wie ich möchte, die schwarzen Balken bleiben immer
>
> Wenn das Poti richtig angeschlossen ist müssten die aber auch mal
> verschwinden oder wenigstens sehr blass werden.

War etwas unglücklich von mir beschrieben, die Kästchen werden natürlich 
auch heller/dunkler, je nach Poti-Einstellung

von Jens P. (picler)


Lesenswert?

johannes schrieb:
> Kann ich ändern wie ich möchte, die schwarzen Balken bleiben immer
> vorhanden. Es "schimmert" auch kein Text durch

Kann normal nicht sein. Je nach Stellung des Potis ist die 
Kontrastspannung gleich 0 oder Vcc. Dementsprechend ändert sich auch der 
Kontrast der Anzeige.

Ohne die Routinen im Detail zu kennen, fällt mir noch auf, des nirgendwo 
den LCD-Routinen gesagt wird, dass der Bus im 4-bit-Modus läuft. Das 
kann nicht funktionieren.

von johannes (Gast)


Lesenswert?

Bernd schrieb:
> Kein Schaltplan, kein Bild des Aufbaus, keine Programm, keine
> Hilfe.

ist alles im Start-Beitrag beschrieben.
Aufbau, sowie Programm

von johannes (Gast)


Lesenswert?

Jens P. schrieb:
> johannes schrieb:
>> Kann ich ändern wie ich möchte, die schwarzen Balken bleiben immer
>> vorhanden. Es "schimmert" auch kein Text durch
>
> Kann normal nicht sein. Je nach Stellung des Potis ist die
> Kontrastspannung gleich 0 oder Vcc. Dementsprechend ändert sich auch der
> Kontrast der Anzeige.

War etwas unglücklich von mir beschrieben, die Kästchen werden natürlich
auch heller/dunkler, je nach Poti-Einstellung


> Ohne die Routinen im Detail zu kennen, fällt mir noch auf, des nirgendwo
> den LCD-Routinen gesagt wird, dass der Bus im 4-bit-Modus läuft. Das
> kann nicht funktionieren.

Dann durchforste ich mal die Routine und versuche es herauszufinden, 
oder hast du da evtl. einen Tipp?

Grüße

von holger (Gast)


Lesenswert?

>ist alles im Start-Beitrag beschrieben.

Das reicht nicht. Was steht in lcd-routines.h?

von Joachim B. (jar)


Lesenswert?

johannes schrieb:
> Angeschlossen ist das Display wie folgt

wie oft hat man mir das schon erzählt,
ich sehe kein Foto davon, hast du jede Verbindung ohmsch nachgemessen?

Evt. ist auch nur dein Display kaputt oder wie schon geschrieben falsch 
initialisiert.

von Jörg R. (solar77)


Lesenswert?

johannes schrieb:
> Jörg R. schrieb:
>> johannes schrieb:
>>> ...Probleme bei der Initialisierung, da ich nur schwarze Kästchen angezeigt
>>> bekomme.
>>
>> Verändere mal die Kontrasteinstellung.
>
> Kann ich ändern wie ich möchte, die schwarzen Balken bleiben immer
> vorhanden. Es "schimmert" auch kein Text durch

Ändert sich die Spannung (gemessen gegen GND) an Pin 3 des LC-Displays 
wenn am Poti gedreht wird?


johannes schrieb:
> Bernd schrieb:
>> Kein Schaltplan, kein Bild des Aufbaus, keine Programm, keine
>> Hilfe.
>
> ist alles im Start-Beitrag beschrieben.
> Aufbau, sowie Programm

Die Sprache des Technikers ist der Schaltplan. Ergänzend dazu ist ein 
Bild vom Aufbau hilfreich. Hier sind schon die dollsten Fehler 
aufgefallen.;-)

Ich vermutee nach wie vor dass es an der Kontrasteinstellung liegt, 
jedenfalls das die schwarzen Symbole angezeigt werden.

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Joachim B. schrieb:
> johannes schrieb:
>> Angeschlossen ist das Display wie folgt
>
> wie oft hat man mir das schon erzählt,
> ich sehe kein Foto davon, hast du jede Verbindung ohmsch nachgemessen?

Jo, das wäre hier nicht der erste Fall, das da die Kabel nur in die 
Löcher des LEDs gesteckt wurden, statt angelötet....

von Ozvald K. (Gast)


Lesenswert?

johannes schrieb:
> Die ersten 8 Stellen (Ist ein 1x16 LCD)

Wird nicht initialisiert. Dieses 1x16 Display wird 2-zeilig 
angesprochen. Die ersten 8 Zeichen gehören zu Zeile 1, die letzten 8 
Zeichen zu Zeile 2.

von Joachim B. (jar)


Lesenswert?

Teo D. schrieb:
> Jo, das wäre hier nicht der erste Fall, das da die Kabel nur in die
> Löcher des .... gesteckt wurden, statt angelötet....

habe ich sogar in einem 34cm TV gefunden, ich wechsle alles Stecker raus 
Kabel zum PCB gelötet, immer noch Wackler, ich wechsel das Endstufen IC 
immer noch nicht OK und die Kabel hingen im Frontlautsprecher nur in den 
Lötösen.....

von johannes (Gast)


Angehängte Dateien:

Lesenswert?

Ihr habt ja recht, ohne Schaltplan ist es meist schwer nachzuvollziehen. 
Also hier mal der Schaltplan und Aufbau meiner Schaltung(im Anhang)
Auch wenn so ein Steckbrett nicht optimal ist, habe ich überall Kontakt 
(nachgemessen).

Ozvald K. schrieb:
> Wird nicht initialisiert. Dieses 1x16 Display wird 2-zeilig
> angesprochen. Die ersten 8 Zeichen gehören zu Zeile 1, die letzten 8
> Zeichen zu Zeile 2.

Gut zu wissen, danke dir.

von Teo D. (teoderix)


Lesenswert?

Lötstellen sind kaum zu erkenne, scheinen ihren Namen nicht verdient zu 
haben. Nachlöten!
Das Display ist definitiv NICHT initialisiert.

von johannes (Gast)


Lesenswert?

Habe gerade folgendes in der lcd-routines.h aus dem Video entdeckt:

//////////////////////////////////////////////////////////////////////// 
////////
// Pinbelegung für das LCD, an verwendete Pins anpassen
// Alle LCD Pins müssen an einem Port angeschlossen sein und die 4
// Datenleitungen müssen auf aufeinanderfolgenden Pins liegen

//  LCD DB4-DB7 <-->  PORTD Bit PD0-PD3
#define LCD_PORT      PORTD
#define LCD_DDR       DDRD
#define LCD_DB        PD0

//  LCD RS      <-->  PORTD Bit PD4     (RS: 1=Data, 0=Command)
#define LCD_RS        PD4

//  LCD EN      <-->  PORTD Bit PD5     (EN: 1-Impuls für Daten)
#define LCD_EN        PD5


Da mein LCD an Port C angeschlossen ist, könnte bzw. wird das doch schon 
mal ein Problem sein.
Habe alles mal auf Port C umgeschrieben, allerdings ohne Erfolg (Wenn 
des überhaupt so einfach funktioniert :D)

von johannes (Gast)


Lesenswert?

Teo D. schrieb:
> Lötstellen sind kaum zu erkenne, scheinen ihren Namen nicht verdient zu
> haben. Nachlöten!

Da ist ja auch keine einzige Lötstelle. am Display ist alles gesteckt..

> Das Display ist definitiv NICHT initialisiert.

woran erkennt man dass es initialisiert ist?

von holger (Gast)


Lesenswert?

JTAG deaktiviert?

von Teo D. (teoderix)


Lesenswert?

johannes schrieb:
> woran erkennt man dass es initialisiert ist?

Kontrast passt ungefähr, nur Zeile 1 zeigt Schwarze Balken.

johannes schrieb:
> Da ist ja auch keine einzige Lötstelle. am Display ist alles gesteckt..

Zeig mal ne Nahaufnahme!

von Odo (Gast)


Lesenswert?

Jörg R. schrieb:
> Ich vermutee nach wie vor dass es an der Kontrasteinstellung liegt,
> jedenfalls das die schwarzen Symbole angezeigt werden.

Nein, deshalb hat der TO schon zweimal geschrieben:

johannes schrieb:
> die Kästchen werden natürlich
> auch heller/dunkler, je nach Poti-Einstellung

Es liegt sicher an der Initialisierung...

von johannes (Gast)


Lesenswert?

holger schrieb:
> JTAG deaktiviert?
Ich denke nicht

von holger (Gast)


Lesenswert?

>> JTAG deaktiviert?
>Ich denke nicht

Das musst du aber, entweder über die Fuses oder deinen Code.
Wie das per Code geht weiss ich im Moment leider nicht mehr;)

von johannes (Gast)


Lesenswert?

Teo D. schrieb:
> johannes schrieb:
>> Da ist ja auch keine einzige Lötstelle. am Display ist alles gesteckt..
>
> Zeig mal ne Nahaufnahme!

Da habe ich normale Steckbuchsen (wie auf dem myAVR Board) verlötet um 
den Klingeldraht verwenden zu können

von johannes (Gast)


Lesenswert?

Teo D. schrieb:
> johannes schrieb:
>> woran erkennt man dass es initialisiert ist?
>
> Kontrast passt ungefähr, nur Zeile 1 zeigt Schwarze Balken.

Wie bekomme ich Zeile 2 initialisiert?

von Ozvald K. (Gast)


Lesenswert?

johannes schrieb:
> Habe alles mal auf Port C umgeschrieben, allerdings ohne Erfolg (Wenn
> des überhaupt so einfach funktioniert :D)

Jetzt ohne die Routine zu kennen, bleibe bei unteren Nibble für Data 
Leitungen. Port C Bit (PC0-PC3). In Deinem Schaltplan du verwendest den 
oberen Nibble.

johannes schrieb:
> //  LCD DB4-DB7 <-->  PORTD Bit PD0-PD3

Hier verwendet die Routine PD0-PD3

von johannes (Gast)


Lesenswert?

holger schrieb:
>>> JTAG deaktiviert?
>>Ich denke nicht
>
> Das musst du aber, entweder über die Fuses oder deinen Code.
> Wie das per Code geht weiss ich im Moment leider nicht mehr;)

Ich lese mich bzgl. JTAG mal genauer ein, danke für den Hinweis :)

von Teo D. (teoderix)


Lesenswert?

johannes schrieb:
> Da habe ich normale Steckbuchsen (wie auf dem myAVR Board) verlötet um
> den Klingeldraht verwenden zu können

OK, sorry. Ich hoffe du verzeihst mir mein Misstrauen. Das Bild sieht 
einfach merkwürdig aus, nicht wirklich was zu erkennen.

von johannes (Gast)


Lesenswert?

Ozvald K. schrieb:
> Jetzt ohne die Routine zu kennen, bleibe bei unteren Nibble für Data
> Leitungen. Port C Bit (PC0-PC3). In Deinem Schaltplan du verwendest den
> oberen Nibble.

Hat das einen bestimmten Grund oder ist das nur für die Übersicht?

von Teo D. (teoderix)


Lesenswert?

johannes schrieb:
> Wie bekomme ich Zeile 2 initialisiert?

Da ist NICHTS initialisiert, so kannst du in KEINER Zeile etwas 
darstellen lassen.
Du hast, wie schon erwähnt, die kopierte SW noch nicht auf deine HW 
angepasst. Displayart (1 o. 2 Zeilen etc), welche Ports du benutzt, 4 o. 
8 Bit... (ich glaub das wars)

von johannes (Gast)


Lesenswert?

Bekomme jetzt endlich das angezeigt was ich möchte...
Hätte ich nur mal direkt in die Routine geschaut und es so angeklemmt

Ozvald K. schrieb:
> johannes schrieb:
>> //  LCD DB4-DB7 <-->  PORTD Bit PD0-PD3
>
> Hier verwendet die Routine PD0-PD3

Danke an dich. Ich habe es zwar zuvor schon geschrieben aber, warum auch 
immer, nicht umgesetzt. Wahrscheinlich dachte ich, dass die PINs schon 
belegt waren.
Jetzt wo alles an PortD, statt PortC klemmt funktioniert's :)

Ich danke euch für die zahlreiche Hilfe und entschuldige mich zugleich, 
falls ich dem ein oder anderem ein paar Nerven geraubt haben sollte.

von Wolfgang (Gast)


Lesenswert?

johannes schrieb:
> Dann durchforste ich mal die Routine und versuche es herauszufinden,
> oder hast du da evtl. einen Tipp?

Hänge einen (minimalistischen) Logikanalysator auf die 6 Leitungen und 
guck dir an, was los ist.

Du kannst nicht erwarten, dass auf Port C irgendetwas passiert, wenn das 
Programm den Port D steuert ;-)

von johannes (Gast)


Lesenswert?

Wolfgang schrieb:
> Du kannst nicht erwarten, dass auf Port C irgendetwas passiert, wenn das
> Programm den Port D steuert ;-)

Da hast du sowas von Recht :D
Ich ärgere mich gerade total über den dummen Fehler.. aber naja was 
solls, nochmal wird mir das nicht passieren

von Stefan F. (Gast)


Lesenswert?

Das Bild ist typisch für den Zustand:

- Stromversorgung Ok
- Kontrastspannung Ok
- Initialisierung: fehlt

Ich vermisse Abblock-Kondensatoren am Mikrocontroller.

Benutze einen Logik Analyzer, um die Kommunikation zum Display zu 
überprüfen. Die Dinger kosten weniger als 10€.

von johannes (Gast)


Lesenswert?

Stefanus F. schrieb:
> Das Bild ist typisch für den Zustand:
>
> - Stromversorgung Ok
> - Kontrastspannung Ok
> - Initialisierung: fehlt
>
> Ich vermisse Abblock-Kondensatoren am Mikrocontroller.
>
> Benutze einen Logik Analyzer, um die Kommunikation zum Display zu
> überprüfen. Die Dinger kosten weniger als 10€.

Danke für deine Hilfe, aber es funktioniert jetzt alles :)

siehe Beitrag:


Autor: johannes (Gast)
Datum: 11.04.2019 17:26

von Jörg R. (solar77)


Lesenswert?

Odo schrieb:
> Jörg R. schrieb:
>> Ich vermutee nach wie vor dass es an der Kontrasteinstellung liegt,
>> jedenfalls das die schwarzen Symbole angezeigt werden.
>
> Nein, deshalb hat der TO schon zweimal geschrieben:
>
> johannes schrieb:
>> die Kästchen werden natürlich
>> auch heller/dunkler, je nach Poti-Einstellung

Einmal, die erste Aussage lautete anders:

johannes schrieb:
> Kann ich ändern wie ich möchte, die schwarzen Balken bleiben immer
> vorhanden. Es "schimmert" auch kein Text durch

Wenn Du schon den Oberaufpasser spielst...dann bitte auch korrekt;-)

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.