GLCD mit KS0107/8 Problem ab 8MHz

Hackyber

Neues Mitglied
24. Feb. 2010
5
0
1
Barsinghausen
Sprachen
Ich habe folgendes GLCD von R... verbaut: LCD 128SW DIP

Angeschlossen an ein Atmega16, 8MHz intern
Programmiert mit Hilfe von glcdKS108.lib unter Bascom. Das ganze zum Test mit laufend wechselnden Displayinhalten (Text, Graphik, .bgf)

Nach kurzem hin und her lief das Display auch. Nach einiger Zeit zeigten sich allerdings im linken Teils des Displays erste Pixelfehler, sowie verschobene Bildbereiche. Im Laufe der Zeit wurden die Fehler immer häufiger. Reset brachte keine Besserung. Nach längerem Ausschalten war es zunächtst ok, dann kamen die Fehler erneut.

Ich vermutete also 2 mögliche Ursachen:
1. Thermischer Fehler im Displaycontroller, der den linken Bereich steuert.
2. EMV-Problem bei der Ansteuerung von Ce auf Grund von ca. 15cm langen Verbindungsdrähten.

Da ich nicht lange rumsuchen wollte Reklamation an R.... Von dort Meldung das Display geht an Hersteller zur Kontrolle.

Jetzt bekam ich ein Display zurück mit folgender Meldung: Das eingesannte Display sei getestet und für gut befunden worden (24h Test). Trotzdem Austausch aus Kulanz.

Also neues Display eingesetzt und der Fehler war jetzt sowohl im linken, als auch im rechten Displaybereich und zwar sofort und erheblich stärker.
Also offensichtlich ein systematischer Fehler.

Da ich ein EMV-Problem vermutete habe ich zunächst die Taktfrequenz auf 4MHz gesenkt. Fehler waren jetzt echte Ausnahme. Also doch EMV?
Bei 1 und 2MHz überhaupt keine Fehler.
Also interen Takt wieder auf 8MHz erhöht. Fehler erneut da. Jetzt dem Kompiler gesagt der Chip laufe mit 8.1MHz: Fehlerrate erheblich gesenkt.
Jetzt dem Compiler 8.5MHz vorgegaukelt. $crystal = 8500000

Also das Display läuft seitdem über 24h ohne das ich bisher Fehler gesehen habe. Handelt es sich um einen Timingfehler in der GLCD-Datei oder bei den Displays?

Da ich das Display auch mal in zeitkritischen Anwendungen einsetzen möchte ist eine so starke Differenz zwischen "Compilertakt" und tatsächlichem Takt nicht akzeptabel.

Hatte schon mal jemand ähnliche Erfahrungen

Schöne Grüße
Hackyber
 
Hallo Hackyber,

Also interen Takt wieder auf 8MHz erhöht. Fehler erneut da. Jetzt dem Kompiler gesagt der Chip laufe mit 8.1MHz: Fehlerrate erheblich gesenkt.
Jetzt dem Compiler 8.5MHz vorgegaukelt. $crystal = 8500000

Also das Display läuft seitdem über 24h ohne das ich bisher Fehler gesehen habe. Handelt es sich um einen Timingfehler in der GLCD-Datei oder bei den Displays?
ich würde mal sagen das die Steuersignale für das Display vom Timing her nicht
ganz passen. Also entweder Wartezeiten nicht lang genug sind oder Impulse zu
kurz sind ... usw. Irgendwas vom Timing paßt da nicht.

Wenn du dem Compiler sagst das das Quarz schneller ist als es wirklich am
Controller hängt dann macht er die Impulse / das Timing etwas länger / langsamer.

Ich tippe mal ganz stark auf Timingprobleme. Entweder die Bibliothek paßt
nicht genau auf den Controller (Vergleichstypen sind nicht unbedingt identisch)
oder irgendetwas verschleift dir die Signalflanken.

Mach notfalls mal nen Schaltplan und stell den hier zum drübergucken rein,
oder nen Foto vom Aufbau auf dem man sehen kann wie es verdrahtet ist.
Also an dem 15cm-Kabel kann es nicht unbedingt liegen. Bei meinem gLCD ist
50cm Flachbandkabel dran und das läuft problemlos selbst mit 16MHz Quarz.

Gruß
Dino
 
Hallo Hackyber!

Willkommen im AVR-Praxis Forum! :ciao:

So etwas ähnliches hatten wir hier schon mal....
Schau doch mal HIER rein!
So ab Beitrag Nr.5 kommt die Lösung des Problems bzw. Phänomens. :)
Vielleicht hilft es ja weiter.

Grüße,
Cassio
 
Hallo,

So etwas ähnliches hatten wir hier schon mal....
Schau doch mal HIER rein!
So ab Beitrag Nr.5 kommt die Lösung des Problems bzw. Phänomens. :)
Vielleicht hilft es ja weiter.
das haut genau in die Kerbe die ich so vermutet habe ... Timing-Probleme.
Das Timing der Bibliothek ist für das Display zu schnell, bzw irgendwelche
Wartezeiten sind zu kurz.

Gruß
Dino
 
Hallo Dino, Hallo Cassio

Erstmal vielen Dank für die Hinweise. Ich werde mal sehen ob das mit @genus(x+1) hilft. Melde mich wieder wenn ich ein Ergebnis habe.

Schöne Grüße aus Basche

Hackyber
 
Also, erstmal besten Dank für eure schnelle Hilfe.

Mit @genus(6) und @genus(3) statt 5 bzw. 2 geht es, wie im anderen Thread beschrieben.
Ich habe allerdings irgend einen Windows-Editor genommen.
Mit dem Bascom-Editor ging es definitiv nicht!
Die Dateien waren dann immer etwas kleiner und es gab beim Compilieren eine Reihe von Fehlermeldungen.
Also irgndwas wird da offensichtlich anders formatiert.

Jetzt läuft es mit 8MHz seit einigen Minuten ohne Fehl und Tadel. :)

Beste Grüße

Hackyber
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)