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
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
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
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.
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
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.
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?
Du bleibst also stur dabei, dass Bruno M. schrieb: > in der Hardware der Fehler sitzen muß ? Gruss Chregu
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
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?
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).
Flip B. schrieb: >> die 256. Farbe > off-by-one bug. In einer Palette von 0-255 gibts aber 256 Farben...
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.
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
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.
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
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.
Bruno M. schrieb: > Am Code kann es also nicht liegen! Am Öl kann's nicht gelegen haben, war ja keins drin!
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!
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.
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.
Einen 24MHz 8-Kanal Logiganalyzer habe ich für 10 Euro bei eBay gekauft. https://www.ebay.de/itm/396185917017
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.