Seltsamer Fehler bei Grafik Display

#948344
Lesenswert?

Hi Leute,


habe seit einer Weilee ein 128*64 Grafik Display im einsatz.Ansteuern 
tue ich ihn mit einem Atmega16@4 mhz

Zum Problem:

Es hate ewige wunderbar funktionieer der Text wurde über das gesamte 
Display ausgegeben, seit gestern funktioniert das nicht mehr er gibt den 
Text nur noch auf der linken Seite und alles untereinander aus. Soweit 
ich weiss ist so ein GLCD auf 2 eChips unterteilt (rechter und linker)
nun dachte ich meir das vllt ein Draht(Chip Select 1 bzw2) abgegangen 
ist, aber dem ist nicht so.

Habt ihr eine Idee


Code
1
#include <inttypes.h>
2

3
#include <avr/io.h>
4
#include <avr/pgmspace.h>
5
#include <util/delay.h>
6
#include <stdlib.h>
7
#include <stdio.h>
8
#include "ks0108.h"
9
#include "font12x16.h"
10
#include "font6x8.h"
11

12

13

14
const char pgmString[] PROGMEM = "http://www.apeTech.de\n\naffe.t@gmx.de";
15

16
int main(void) {
17
  volatile uint16_t i;
18
  struct font largeFont, smallFont;
19
  
20
  for(i=0; i<15000; i++);
21
  
22
  
23
  largeFont.width = FONT12X16_WIDTH;
24
  largeFont.height = FONT12X16_HEIGHT;
25
  largeFont.charData = Font12x16;
26
  
27
  smallFont.width = FONT6X8_WIDTH;
28
  smallFont.height = FONT6X8_HEIGHT;
29
  smallFont.charData = Font6x8;
30
  
31
  ks0108Init();
32
  ks0108GotoXY(0,4);
33
  ks0108PutString("Hallo Welt!", largeFont);
34
  ks0108GotoXY(0,28);
35
  ks0108PutStringP(pgmString, smallFont);
36

37
  while(1);
38
}
Gast #948356
Lesenswert?

>Soweit ich weiss ist so ein GLCD auf 2 eChips unterteilt (rechter und linker)
>nun dachte ich meir das vllt ein Draht(Chip Select 1 bzw2) abgegangen
>ist, aber dem ist nicht so.

Wahrscheinlich hast du in deiner Software den Chip Select 2
irgendwie noch wo anders benutzt ;) Oder der ist doch nicht
so richtig angeschlossen.
Gast #948390
Lesenswert?

>seit gestern funktioniert das nicht mehr er gibt den
>Text nur noch auf der linken Seite und alles untereinander aus.

Was hast du denn seit gestern geändert ?
Nimm doch mal die Version von vorgestern
und probier damit den korrekten Anschluss des LCD aus.
Gast #948393
Lesenswert?

Wenn Du nichts an der Software geändert hast und einen Hardware Defekt 
ausschliessen kannst vermute ich mal das Dein Display einen Reset nötig 
hat.

Ab und zu sind bei mir die Zeilen (links höher als rechts) auch 
unterschiedlich dann wird halt ein Display Reset gemacht und gut ist. 
Bei einige Exemplaren reicht es wenn für 5 min die Spannung unterbrochen 
wird.

Allerdings erscheint mir komisch das der komplette Text, der vorher auf 
die gesamte Länge gezeigt wurde, nur noch auf einer Seite angezeigt 
wird. Hört sich eher nach einem Softwarefehler an.

Gruß
#948650
Lesenswert?

Gerry L. wrote:
> Ach ja wozu soll die Schleife gut sein?
>
>>for(i=0; i<15000; i++);

Das hab ich hier aus dem Forum 1 zu1 übernommen:-)

aber hast recht die bringt nicht sehr viel^^

Also den Reset:


Ich habe 5 V + 10 K an den Reset Pin des LCD oder meinst du den Software 
Reset, dazu könnte ich meine Routine auch posten.

Aber wie gesagt das komische ist ja das es genau mit der SOftware ewig 
funktioniert hat.

MFG
#948790
Lesenswert?

Hallo,
das sieht nach "fliegendem" Aufbau aus. Ich hatte mal ähnliche Probleme 
mit solch einem Aufbau, also relativ langen Leitungen zum Display hin. 
Als ich mit einem Oszi die Chip Select Leitungen kontrolliert habe, war 
plötzlich alles in Ordnung. Daraufhin habe ich jeweils zwischen den 
Chipselect Leitungen und Masse einen Pulldown Widerstand (ca. 10kOhm) 
und parallel dazu einen kleinen Kondensator (ich glaube so um die 50pF) 
direkt am Display angelötet und schon ging es.
Ausserdem ist es natürlich wichtig, die Logik der Chip Select Leitungen 
richtig anzusteuern. Es gibt da High-aktive und Low-aktive Displaytypen! 
Ich habe da mal zeitraubende Erfahrungen machen müssen, als ich ein 
kleines Display gegen ein gösseres ausgetauscht habe: Trotz richtiger 
Anschlussbelegung wollte es nicht, weil ich die umgekehrte Logik der 
Chip Select Leitungen nicht gleich entdeckt hatte.
#951337
Lesenswert?

B. Jue wrote:
>Daraufhin habe ich jeweils zwischen den
> Chipselect Leitungen und Masse einen Pulldown Widerstand (ca. 10kOhm)
> und parallel dazu einen kleinen Kondensator (ich glaube so um die 50pF)
> direkt am Display angelötet und schon ging es.

Ok dies habe ich jetzt umgesetzt die störungen sind nicht mehr da!

aber er zeigt immernoch nicht die rechte seite des lcds an. an falscher 
ansteuerung der logik kann es eigentlich auch nicht liegen, ich habe ja 
nichts verändert und es ging ja vorher.

Habt ihr noch einen Rat?

MFG
Gast #951505
Lesenswert?

Nochmal zum Reset am Display.

Der Reset Pin ist dauerhaft an VCC?
Für einen Reset muss dieser kurz gegen GND vorher nat. VCC trennen.
Kann man schön mit einem Pin vom MC machen.

Zu Fehlereingrenzung solltest Du schrittweise vorgehen.

1. Alle Leitungen doppelt und dreifach prüfen
2. Die Software auf die wirklich nötigsten Funktionen abspecken.
3. Vorm Kompilieren alle vom GCC/AVR Studio erstellten Files löschen
4. usw. usw.
5. Display tauschen.

Wenn wie Du sagts der Fehler von heut auf morgen aufgetreten ist kann es 
durchaus auch ein Hardware defekt sein.

Da die Hilfestellungen die bisher nicht geholfen haben ist das der 
einzige Weg den DU gehen kannst.Erst wenn der Fehler genauer eingegrenzt 
ist kann die hier weitergeholfen werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren