Bekomme mein LCD Display nicht ins Laufen

Gast #5805542
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
Gast
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
Gast
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.
Gast
>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.
Gast
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
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.
Gast
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
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.
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.....
Gast
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.
Angehängte Dateien:
Gast
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)
Gast
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?
Gast
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...
Gast
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
Gast
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
Gast
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?
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)
Gast
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.
Gast
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 ;-)
Gast
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
Gast
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€.
Gast
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
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;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.