Forum: Mikrocontroller und Digitale Elektronik Frage an Display Experten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bruno M. (brumay)


Angehängte Dateien:

Lesenswert?

Hallo,
ich nutze seit mehreren Jahren eine Schaltung mit ATMega128, Latch 74573 
und LCD Treiber S1D13705 um LCDs 320x240 anzusteuern. Bisher lief alles 
problemlos (auch eine analoge Schaltung mit ATMega162 funktioniert im 
1bpp Modus wie erwartet). Am Code kann es also nicht liegen!
Nun das Problem:
Nach einem Ausfall der Anzeige versuche ich seit Tagen erfolglos die 
Ursache für das Problem zu finden. Erfolgt die Ansteuerung im 8bpp Modus 
ist das Bild normal (Bild 1). Erscheint in der LUT aber zufällig ein 
letzter Wert zwischen 0x82 und 0x86 dann wird nur noch ein Farbmuster 
angezeigt (Bild 2).
Ändere ich die Ansteuerung in den 4bpp Modus wird das gleiche Bild nur 
noch so angezeigt wie in Bild 3 dargestellt.
Im 1bpp Modus sieht man dann gar nichts mehr (Bild 4).
Ich habe alle Signale des ATMega128 und nach dem Latch mit LEDs 
überprüft und kein Problem feststellen können. Außerdem habe ich alle 3 
ICs ausgetauscht, aber keine Änderung!

Schon das Auslesen des Product Codes des S1D13705 funktioniert nicht.

Ehrlich gesagt weiß ich nicht mehr, was ich noch testen könnte!

Hat jemand einen heißen Tip?

: Bearbeitet durch User
von Dennis S. (whiterussian)


Lesenswert?

Bruno M. schrieb:
> eine Schaltung mit ATMega128

Ich denke hier wären zumindest Bilder deines Aufbaus und alles drum 
herum sinnvoll, sowie ein Schaltplan - welches Netzteil du verwendest 
etc...

: Bearbeitet durch User
von Hobby B. (bastler2022)


Lesenswert?

Bruno M. schrieb:
> Ich habe alle Signale des ATMega128 und nach dem Latch mit LEDs
> überprüft und kein Problem feststellen können. Außerdem habe ich alle 3
> ICs ausgetauscht, aber keine Änderung!

Hallo,

hast Du mal einen Schaltplan und oder Bilder vom Aufbau? Was war den der 
Fehler wo der Ausfall war.

Ein billiger Logikanalysator, wäre hier sicher hilfreich.

Gruß bastler2022

von Christian M. (christian_m280)


Lesenswert?

Bruno M. schrieb:
> Am Code kann es also nicht liegen!

Doch! Genau an dem liegt es!

Gruss Chregu

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Bruno M. schrieb:
> Am Code kann es also nicht liegen!

Das ist eine voreilige Schlussfolgerung, wenn du nicht mal die Qualität 
der Signale und Stromversorgung überprüft hast.

von Bruno M. (brumay)


Lesenswert?

Erst mal danke für die Beiträge, auch wenn sie nur neue Fragen aufwerfen 
und keine Antworten geben.

Warum sollte die Stromversorgung ein Problem sein, wenn die Schaltung im 
8bpp Modus funktioniert? (nur nebenbei, auch die Stromversorgung habe 
ich getauscht)

Wie kann der Code ein Problem darstellen, wenn dieser Code jahrelang in 
diversen Anwendungen funktioniert hat und mit entsprechenden Änderungen 
mit dem ATMega162 immer noch funktioniert?

Es ist richtig, daß ich die Signale nicht überprüft habe, einfach weil 
mir das Equipment fehlt!

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bruno M. schrieb:
> dann wird nur noch ein Farbmuster
> angezeigt (Bild 2)

Das sieht danach aus, als würdest du mit falschem Pixelcount pro Zeile 2 
mal das Bild aufs Display schieben.

Bruno M. schrieb:
> Ändere ich die Ansteuerung in den 4bpp Modus wird das gleiche Bild nur
> noch so angezeigt wie in Bild 3 dargestellt
Da überträgst du unvollständige Daten - deswegen die 'Löcher' im Bild

Bruno M. schrieb:
> Im 1bpp Modus sieht man dann gar nichts mehr (Bild 4)

Krasses Fehltiming - uch hier stimmt der Pixelcount wieder nicht und 
vermutlich auch die Daten nicht.

von Bruno M. (brumay)


Lesenswert?

Matthias S. schrieb:
> Das sieht danach aus, als würdest du mit falschem Pixelcount pro Zeile 2
> mal das Bild aufs Display schieben.

Hallo Matthias, danke für deine Analyse!

Ich habe allerdings die Hoffnung, daß man aus dem Fehlerbild in etwa 
ableiten kann, wo in der Hardware der Fehler sitzen muß. Vor allem das 
Bild 2 gibt mir Rätsel auf. Der Unterschied im Code von Bild 1 und Bild 
2 ist nur, daß ich in der Farbtabelle die 256. Farbe von

.db  0x00,  0x00,  0x00,  0
auf
.db  0x00,  0x00,  0x84,  0

geändert habe. Alles andere ist völlig unverändert. Diese Erscheinung 
läßt sich beliebig oft wiederholen, auch wenn ich andere Bilder nehme.
Kann man daraus nicht irgend etwas ableiten?

von Christian M. (christian_m280)


Lesenswert?

Du bleibst also stur dabei, dass

Bruno M. schrieb:
> in der Hardware der Fehler sitzen muß

?

Gruss Chregu

von Flip B. (frickelfreak)


Lesenswert?

Also:
 das Display funktioniert am Atmega 162, die ICs hast du alle getauscht 
, die Stromversorgung erneuert und der Code ist Fehlerfrei. Glückwunsch, 
dann müsste dein Projekt nun laufen. Tut es nicht? Dann musst du wohl 
gelogen haben, und irgend etwas ist doch nicht in ordnung. Wir können da 
nur zuschauen, denn alle diese Komponenten sind bisher dein Geheimnis.

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Bruno M. schrieb:
> rscheint in der LUT aber zufällig ein
> letzter Wert zwischen 0x82 und 0x86 dann wird nur noch ein Farbmuster
> angezeigt (Bild 2).

Klingt für mich eher nach einem Problem der Bitmap-Dekodierung als des 
Displays. Woher kommt die denn?

von Flip B. (frickelfreak)


Lesenswert?

Bruno M. schrieb:
> im Code
ah, der Code!
Bruno M. schrieb:
> die 256. Farbe
off-by-one bug.

von Bruno V. (bruno_v)


Lesenswert?

Bruno M. schrieb:
> Schon das Auslesen des Product Codes des S1D13705 funktioniert nicht.

Bruno M. schrieb:
> Bisher lief alles
> problemlos (auch eine analoge Schaltung mit ATMega162 funktioniert im
> 1bpp Modus wie erwartet). Am Code kann es also nicht liegen!

Ein zweiter HW-Satz zum Kreuz-Test wäre das einfachste. Oft ist es aber 
doch ein kleiner Fehler in der Ansteuerung. Wenn Du die mit Port-Pins 
machst, pack ein Nop zwischen jeden Zustandswechsel (aller Signale). Oft 
klappt es nur zufällig, weil die Laufzeit eines Signals leicht 
unterschiedlich ist (selbsterfüllend: Hätte es nie oder nur manchmal 
funktioniert, wäre es schon lange behoben).

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Flip B. schrieb:
>> die 256. Farbe
> off-by-one bug.

In einer Palette von 0-255 gibts aber 256 Farben...

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Wenn man aber bei 1 anfängt schießt man über das Ende hinaus, das könnte 
der Grund sein. Dass der Fehler genau beim 256. auftritt spricht dafür, 
dass da ein Denkfehler vorliegt.

von Cyblord -. (cyblord)


Lesenswert?

Matthias S. schrieb:
> In einer Palette von 0-255 gibts aber 256 Farben...

Ja nur ob es eine 256. Farbe gibt, ist fraglich und je nach 
Implementierung eben eher nicht.

: Bearbeitet durch User
von Flip B. (frickelfreak)


Lesenswert?

wo wir bei überläufen sind: ich habe gerade viel spass mit den neuen 
Levels in https://microcorruption.com/ . Vor 10 Jahren mal 
durchgespielt, gibt es nun einige (aktuellere) angriffsszenarien.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Bruno M. schrieb:
> Warum sollte die Stromversorgung ein Problem sein, wenn die Schaltung im
> 8bpp Modus funktioniert?

Wenn eine Schaltung ohne erkennbaren Grund mal funktioniert, und mal 
nicht, dann liegt es oft an grenzwertiger Signalqualität oder 
Stromversorgung oder Timing.

> Wie kann der Code ein Problem darstellen, wenn dieser Code jahrelang
> in diversen Anwendungen funktioniert

Weil dessen Timing vielleicht grenzwertig ist. Wir hatten hier erst 
neulich so einen Fall, wo es um ein Display und "hat doch früher immer 
funktioniert" ging.

Allerdings hast du den Code ja schon ausgeschlossen. Wenn man das 
akzeptiert, bleibt nur ein Hardwarefehler, der die Stromversorgung oder 
Signale betrifft.

Du brauchst ein Oszilloskop.

: Bearbeitet durch User
von Wastl (hartundweichware)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Allerdings hast du den Code ja schon ausgeschlossen. Wenn man das
> akzeptiert, bleibt nur ein Hardwarefehler, der die Stromversorgung oder
> Signale betrifft.

Ja, typisches Grenzwert-Verhalten der Hardware. Zu schnelles
Timing, schlechtes pyhsisches Interface (--> Signal-Klingeln),
Timing-Streuungen des Displays, Delays grenzwertig ....

Sherlock 🕵🏽‍♂️ schrieb:
> Du brauchst ein Oszilloskop.

Ja, allein ein detailliertes Foto des Aufbaus würde schon helfen.
Und dann die Signalqualität kritisch begutachten.

Aber meistens sind diese "Geräte" ja hochgeheim, oder man müsste
sich des physikalischen Aufbaus wegen schämen, also lieber nicht.

von Wastl (hartundweichware)


Lesenswert?

Bruno M. schrieb:
> Am Code kann es also nicht liegen!

Am Öl kann's nicht gelegen haben, war ja keins drin!

von Bruno M. (brumay)


Lesenswert?

Danke für die zahlreichen Beiträge!
In der Zwischenzeit habe ich weiter getestet, wobei ein LCD auch den 
Geist aufgegeben hat.
Trotzdem bin ich aber zumindest zwei Schritte weiter.
Da von den Bildern anscheinend nichts Konkretes abzuleiten war, habe ich 
mich daran gemacht und alle Leiterbahnen überprüft (d.h. nicht nur die 
Signalleitungen!). Dabei mußte ich feststellen, daß eine VIA keinen 
Kontakt mehr hatte zur Leiterbahn. Das hatte zur Folge, daß von den vier 
3,3V Anschlüssen des S1D13705 nur noch zwei mit Spannung versorgt 
wurden. Nachdem ich das behoben hatte, funktioniert jetzt auch die 4bpp 
Darstellung fehlerlos.
Dann hatte ich ja geschrieben, daß nicht mal das Auslesen des 
Productcodes funktionierte. Das konnte ich beheben, durch Einführung von 
Wait States in der XRAM Ansteuerung.

Was jetzt noch als Problem bleibt, ist die Darstellung im 1bpp Modus.
Also suche ich weiter!

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Bruno M. schrieb:
> ... Folge, daß von den vier 3,3V Anschlüssen des S1D13705
> nur noch zwei mit Spannung versorgt wurden.

> ... konnte ich beheben, durch Einführung von
> Wait States in der XRAM Ansteuerung.

Siehst du, genau das hatte ich geschrieben.

Sherlock 🕵🏽‍♂️ schrieb:
> Wenn eine Schaltung ohne erkennbaren Grund mal funktioniert, und mal
> nicht, dann liegt es oft an grenzwertiger Signalqualität oder
> Stromversorgung oder Timing.

Warum ich dafür viel "minus" kassiert habe, bleibt wohl ein Rätsel.

von Bruno M. (brumay)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Warum ich dafür viel "minus" kassiert habe, bleibt wohl ein Rätsel.

Ich kann mich nicht erinnern, daß du von mir "minus" bekommen hast. 
Allerdings war die Info für mich zu allgemein, um wirklich einen Fehler 
zu finden.

von Rüdiger B. (rbruns)


Lesenswert?

Einen 24MHz 8-Kanal Logiganalyzer habe ich für 10 Euro bei eBay gekauft.
https://www.ebay.de/itm/396185917017

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Warum ich dafür viel "minus" kassiert habe, bleibt wohl ein Rätsel.

Wird der übliche Skriptbot sein.
Und nun wissen wir ja, das weder der Code noch die Hardware am Fehler 
schuld waren :-P

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Bruno M. schrieb:
> Allerdings war die Info für mich zu allgemein, um wirklich einen Fehler
> zu finden.

Könnte daran liegen, dass du nur allgemein gefragt hast. Den Quellcode 
hast du nicht gezeigt, keinen Schaltplan und keine Fotos vom Aufbau. Was 
hätte ich denn konkret kontrollieren können, ohne vor Ort zu sein?

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.