Forum: Mikrocontroller und Digitale Elektronik Pollin LCD12232 bleibt dunkel


von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Problem einem Display LCD-12232 von Pollin.
Ich habe natürlich Beispielquellcodes gefunden, wie das Display 
anzusteuern ist. Ich habe ein Beispiel in C und eines in BASCOM. Bei 
lassen sich problemlos komplilieren. Wenn ich es allerdings auf dem 
Controller starte, bleibt das Display dunkel.
Da ich noch unerfahren bin, hab ich nicht wirklich ne Idee, wie ich dem 
Fehler auf schliche kommen kann. Wie und wo muss ich systematisch 
suchen, um etwas zu finden?

Der Controller ist ein ATMega 16 und steckt in einem STK500.
Dass ich alles richtig angeschlosse hab, da bin ich mir recht sicher. 
Auch die Ports habe ich in den Bespielen entsprechend angepasst, damit 
sie zu meinem Beispiel passen.
Die Kontrastspannung erzeuge ich mit einem NE555, etc. Scheint auch zu 
passen.

Kann bei sowas die Kabellänge ausschlaggebend sein? Ich hab die Kabel 
recht lang gelassen, ich könnte mir vorstellen, dass da vielleicht ein 
Problem ist (siehe Foto).

Einmal hat das Display kurz wilde Pixel angezeigt (Krieg der Ameisen). 
Aber das war wohl eher Zufall.

Jegliche Hinweise würden mich freuen!
Danke!
Jens

von Lehrmann M. (ubimbo)


Lesenswert?

Was passiert denn wenn du das Display völlig unangesteuert (nur 
Spannungsversorgung, Kontrastspannung, etc.) lässt?

von Stephan S. (uxdx)


Lesenswert?

Das Display will laut Datenblatt an Pin 18 6,4 Volt sehen, hast Du die 
angeschaltet ?

von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Hallo und danke erst mal für die Antworten.

Ich hab mich an den Anschlussplan vom Nachbarforum gehalten. Auch die 
Kontrastspannug erzeuge ich so, wie in er Anlage zu sehen.

Wenn ich das Display nur mit Spannung versorge, kann ich mit dem Poti 
den Kontrast verstellen. Also von "zeigt nix an" bis "alles schwarz".

Ich hab noch mal nachgemessen.
An VEE hab ich jetzt z.B. -1.8 V
An VDD sinds 4,92 V

Jetzt beim messen komm ich etwas ins grübeln.
Mein Quellcode ist der, der hier gepostet wurde:
Beitrag "DG-12232 Ansteuerung von 2xSED1520 Controller"
Wenn ich an RES messe, hab ich -0,3 V. Sollte das nicht so um die 5 V 
liegen?

Das lässt mich auf jeden Fall die Prozedur GLCD_InitPorts vermuten:
1
void GLCD_InitPorts(void)
2
{
3
  SED1520_DATA_DDR = 0xFF;        //Output
4
  
5
  // Set Controll-Bits to Output
6
  SED1520_CONTROL_DDR |= (SED1520_CS2 | SED1520_CS1 | SED1520_RW | SED1520_A0 | SED1520_RES | SED1520_Enable);
7
  _delay_ms(1);  
8
  RES_h;        //High (always)==> 68 Family MPU
9
  
10
  //Set Default-State of Controll-Bits
11
  CS1_h; CS2_h; Enable_l;  
12
}

Diese wird ja praktisch sofort am Start aufgerufen (main -> GLCD_Init -> 
GLCD_InitPorts)
Läuft da schon was schief? Komisch.

Jens

von Spess53 (Gast)


Lesenswert?

Hi

Hast du das JTAG-Interface abgeschaltet?

MfG Spess

von Hä? (Gast)


Lesenswert?

Jens schrieb:
> Wenn ich an RES messe, hab ich -0,3 V. Sollte das nicht so um die 5 V
> liegen?

Wenn du es nach dem Schaltplan verdrahtet hast schon. Da liegt RES
direkt auf 5V.
Etwas merkwürdig erscheint mir die Beschaltung von /RD, ist das so 
gewollt?

von Spess53 (Gast)


Lesenswert?

Hi

>Etwas merkwürdig erscheint mir die Beschaltung von /RD, ist das so
>gewollt?

Das ist nicht nur merkwürdig sondern falsch. Mit RES=H arbeitet das 
Display im 6800-Mode. Damit wird der RD-Anschluss zu E. Und das ist das 
Übernahme-Signal für die anliegenden Daten an D7..D0.

MfG Spess

von Jens (Gast)


Lesenswert?

Hallo,

da bin ich wohl etwas durcheinander gekommen, ich hab Quatsch erzählt. 
Sorry.
Von dem Schaltplan hab ich nur die Erzeugung der Kontrastspannung 
übernommen.

Ich hab jetzt noch mal alles gecheckt.
DB0 bis DB7 liegen bei mir an PC0 bis PC1
CS1 -> PD2
CS2 -> PD3
RES -> PD5
/Wr -> PD0
/RD -> PD1
A0 -> PD4

Ich denke, die Zuordnung im Programm hab ich korrekt gemacht, oder?
1
#define SED1520_DATA_PORT   PORTC
2
#define SED1520_DATA_DDR   DDRC
3
#define SED1520_DATA_PIN   PINC
4
5
#define SED1520_CONTROL_PORT   PORTD
6
#define SED1520_CONTROL_DDR   DDRD
7
8
9
#define SED1520_RW     (1 << 0)
10
#define SED1520_Enable  (1 << 1)
11
#define SED1520_CS1   (1 << 2)
12
#define SED1520_CS2   (1 << 3)
13
#define SED1520_A0     (1 << 4)
14
#define SED1520_RES   (1 << 5)

Und so sollte doch vom Programmablauf her RES auf 5V liegen, oder sehe 
ich das falsch?

Jens

von Spess53 (Gast)


Lesenswert?

Hi

>Und so sollte doch vom Programmablauf her RES auf 5V liegen, oder sehe
>ich das falsch?

Nein. Das sollte passen. Und was ist jetzt mit dem JTAG-Interface am 
PortC?

MfG Spess

von Jens (Gast)


Lesenswert?

Sorry, Deinen Hinweis hatte ich zwar gelesen, aber verdrängt. Das ärgert 
mich um so mehr, weil es der entscheidende Hinweis ist.

Ich bedanke mich recht herzlich, jetzt funktioniert es!

Viele Grüße,
Jens

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.