Forum: Mikrocontroller und Digitale Elektronik LCD Anzeige macht Probleme


von BerndB (Gast)


Lesenswert?

Guten Tag,

bei meinem aktuellen Projekt verwende ich "Blueline Dotmatrix 4 x 16" 
LCD Anzeigen von Conrad (19€) und alles funktioniert einwandfrei ohne 
Probleme.
Jetzt möchte ich diese Anzeigen durch preiswertere Anzeigen von 
"EastRising"
(China Import BuyDisplay) ersetzen (6€) die HD44780-kompatibel sein 
sollen.
Allerdings werden hierbei völlig willkürlich Zeilen angezeigt oder eben 
nicht angezeigt.
Da im "debug-modus" alles ohne Probleme funktioniert habe ich in meinem 
Programm versuchsweise die Wartezeiten vergrößert, was aber das Problem 
nicht behoben hat.

Jemand eine Idee?

Danke und Gruß,
Bernd

von Jörn P. (jonnyp)


Lesenswert?

Vielleicht hättest du besser mal die DB verlinkt oder zumindest mal die 
Kontroller benannt, anstatt die Preise.
Welche Wartezeiten hast du von - nach gesetzt? Rätsel über Rätsel.

von Frickelfritze (Gast)


Lesenswert?

BerndB schrieb:
> Jemand eine Idee?

Hmmmm ja .... der Titel ist schon falsch.

Es muss heissen: Ich mache dem LCD Probleme.

Ohne es zu wissen (die Source ist so kleingedruckt dass ich sie
nicht lesen kann), aber aus vielfältiger Erfahrung tippe ich
auf Verletzung der Timing Daten bei der Initialisierung, oder
auch während des normalen Betriebs.

von Dussel (Gast)


Lesenswert?

Eine Display-Anzeige soll dem Namen nach Displays anzeigen. Vielleicht 
soll die Anzeige ja nur willkürliche Displays anzeigen.

von Frickelfritze (Gast)


Lesenswert?

Dussel schrieb:
> Vielleicht soll die Anzeige ja nur willkürliche Displays anzeigen.

... ja ja, der gute LCD Display Anzeige Bildschirm .....

von Dussel (Gast)


Lesenswert?

Übrigens, wenn das Datenblatt kommt, könnte es hier durchaus noch 
Lösungsvorschläge geben.

von Frickelfritze (Gast)


Lesenswert?

Dussel schrieb:
> Übrigens, wenn das Datenblatt kommt, könnte es hier durchaus noch
> Lösungsvorschläge geben.

Na wir wollen es mal nicht übertreiben ... das wäre wohl zuviel
verlangt, ganz zu schweigen vom Programmcode der nur als
unleserliches Kleingedrucktes daherkommt.

von Forist (Gast)


Lesenswert?

BerndB schrieb:
> Jemand eine Idee?

Irgendetwas läuft da schief. Entweder da stimmt was mit der Verdrahtung 
nicht oder das Programm steuert das Display nicht so an, wie es das laut 
Datenblatt gerne hätte. Aber weißt du besser als jeder andere, denn nur 
du kennst Programm, Display und deinen Aufbau.

von Edi R. (edi_r)


Lesenswert?

Die Kommentare hier bringen mich durchaus zum Grinsen :-). Ich hoffe, 
ihr seid nicht böse, dass ich was Ernsthaftes beisteuere, und wenn's 
auch nur zufällig gleichzeitig aufgetretene Erfahrungen sind.

Bei einem Seriengerät mit einem 4x20-Zeichen-LCD wurde vor wenigen 
Wochen der Lieferant des Displays gewechselt, weil der bisherige 
Lieferant nicht mehr liefern konnte (oder zu viel Kohle verlangte, das 
weiß ich nicht). Plötzlich kam es immer wieder vor, dass auf dem Display 
Hieroglyphen angezeigt werden. Wir suchten in allen Richtungen nach der 
Ursache, machten die Ansteuerung sehr langsam (Wartezeiten bis zu 500 µs 
vor jedem Zustandswechsel auf den Steuerleitungen oder Datenleitungen), 
löteten sogar keramische Kondensatoren zwischen die Steuerleitungen und 
GND, blockten die Versorgungsspannung extra gut ab usw - ohne jeden 
Erfolg. Am Oszilloskop und am Logikanalysator war nichts zu erkennen, 
was diese Hieroglyphen erklären konnte.

Ich habe jedoch unter anderem den 4-Bit-Modus im Verdacht, den wir bei 
diesen Displays verwenden. Im 4-Bit-Modus erwartet das Display die 
Datenbytes als zwei Halbbytes, und zwar erst das höherwertige und dann 
das niederwertige Halbbyte. Wenn jetzt aus irgendwelchem Grund eine 
zusätzliche Flanke an den Eingang "E" kommt (und das muss nicht einmal 
über die Anschlusspins kommen), dann kommt die Reihenfolge 
high-Halbbyte/low-Halbbyte durcheinander, und alle folgenden Daten 
werden falsch interpretiert und natürlich falsch angezeigt. Vielleicht 
ist das in diesem Fall auch sowas, dann könntest Du mal ausprobieren, ob 
es sich um 8-Bit-Modus bessert.

Den Grund für die Störungen haben wir übrigens genauso wenig gefunden 
wie eine Abhilfe. Wir haben dann den Lieferanten nochmals gewechselt, 
und dessen Displays funktionieren wieder wie früher.

von BerndB (Gast)


Lesenswert?

Danke Edi für deine Antwort,

ich habe sämtliche "timings" während der Initialisierung und in den 
Kommandos verändert ohne jeglichen Erfolg. Leider kann ich den 
8bit-Modus jetzt nicht mehr anwenden, da das Leiterplattenlayout bereits 
fertig ist und mein Testequipment auf den 4bit-Modus ausgelegt ist.
Ein anderer Hersteller ist vielleicht die Lösung.

BerndB

von Frickelfritze (Gast)


Lesenswert?

BerndB schrieb:
> Ein anderer Hersteller ist vielleicht die Lösung.

Oder ein gutes Design / Layout.

Wenn es nichts taugt dann zeigt man es naturgemäss ungerne her.

von Edi R. (edi_r)


Lesenswert?

Frickelfritze schrieb:
>> Ein anderer Hersteller ist vielleicht die Lösung.
>
> Oder ein gutes Design / Layout.

Das habe ich bis vor ein paar Wochen auch gedacht. Aber wie ist 
folgendes mit einem schlechten Layout zu erklären:

Display A: Seit >15 Jahren ohne Probleme
Display B (seit ca. 3 Monaten): Von Anfang an ständig Hieroglyphen
Display C (seit gestern): Keine Probleme mehr.

So einfach mache ich es mir jetzt nicht mehr, alles nur auf schlechtes 
Design der Leiterplatte zu schieben. Ich tippe eher auf eine miese 
Charge des Displaycontrollers. Im Datenblatt von Display B steht 
"KS0066U OR EQUIV.", der Application Engineer des Distributors hat aber 
gemeint, das Display verwende nach seinen Informationen den ST7066. Ich 
bin allerdings der Meinung, da steckt irgend ein chinesischer 
so-billig-wie-möglich-Controller drin, der gerade noch die Specs 
einhält.

Wir haben testweise übrigens auch mal versucht, die Leitungen zwischen 
Controller und LCD zu trennen und statt dessen Einzeladern zu verlegen. 
Ergebnis: Null Auswirkung.

@BerndB: Wäre es Dir möglich, mal ein Foto von der LCD-Rückseite zu 
machen und mir per PM zu senden? Mich würde interessieren, ob wir 
vielleicht Displays vom gleichen Hersteller haben, möchte hier aber 
(noch) niemanden öffentlich nennen, solange noch nichts gesichert ist.

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> Aber wie ist folgendes mit einem schlechten Layout zu erklären:

Das kann man damit begründen dass die alten LCDs so gutmütig
sind dass sie eine kleine Design-Verletzung deinerseits klaglos
hingenommen haben, die neuen aber nicht .....

Kann ... muss aber nicht ....

von Bernhard S. (b_spitzer)


Lesenswert?

Wie sind die unteren 4 Datenbits beschaltet? Floating oder auf Masse 
gelegt?

von Peter D. (peda)


Lesenswert?

Frickelfritze schrieb:
> Das kann man damit begründen dass die alten LCDs so gutmütig
> sind dass sie eine kleine Design-Verletzung deinerseits klaglos
> hingenommen haben, die neuen aber nicht .....

Genau.
Es geistern leider noch viele LCD-Initialisierungen im Web rum, die 
fehlerhaft sind. An einer entscheidenden Stelle fehlt das Delay oder es 
werden zu früh 8Bit-Befehle statt 4Bit-Nibble gesendet. Manche 
Controller tolerieren das, manche aber nicht.

von Edi R. (edi_r)


Lesenswert?

Peter D. schrieb:
> Es geistern leider noch viele LCD-Initialisierungen im Web rum, die
> fehlerhaft sind. An einer entscheidenden Stelle fehlt das Delay oder es
> werden zu früh 8Bit-Befehle statt 4Bit-Nibble gesendet.

Ich weiß nicht, wie das bei BerndB ist, aber in unserem Fall haben wir 
selbstverständlich auch die Initialisierung unter die Lupe genommen. Wir 
haben damals die Initialisierung entsprechend dem HD44780-Datenblatt 
vorgenommen, und jetzt nur noch ein paar Delays verkürzt (!), damit sie 
näher an den Angaben im Datenblatt liegen. Erfolg: Keiner. (Wir haben 
übrigens auch mal eine der fehlerhaften Initialisierungen ausprobiert. 
Das Display hat zwar funktioniert, konnte dann aber erst wieder 
initialisiert werden, wenn es zwischendurch von der Versorgung genommen 
wurde, ansonsten zeigte es nur noch die bekannten Balken 
nichtinitialisierter LCDs.)

Bernhard S. schrieb:
> Wie sind die unteren 4 Datenbits beschaltet? Floating oder auf Masse
> gelegt?

Bei uns waren die unbenutzten Leitungen offen. Auch das Verbinden mit 
GND oder VCC hat keine Änderung gebracht, weder direkt noch über 
Widerstände. In den Datenblättern steht übrigens ausdrücklich, dass die 
unbenutzten Leitungen im 4-Bit-Modus offen gelassen werden sollen.

von Peter D. (peda)


Lesenswert?


von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> In den Datenblättern steht übrigens ausdrücklich, dass die
> unbenutzten Leitungen im 4-Bit-Modus offen gelassen werden sollen.

Begründung meinierseits:

Würde man das LCD bidirektional betreiben, würden beim Lesen
die Datentreiber des LCDs kurzgeschlossen (sofern sie nicht im
4-Bit-Modus intelligent vom Chip-Designer disabled werden).

Aber auch ein floatender Input kann manchmal Ärger bereiten ...

von BerndB (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Edi,

>@BerndB: Wäre es Dir möglich, mal ein Foto von der LCD-Rückseite zu
>machen und mir per PM zu senden?

Mache ich gerne:

von spess53 (Gast)


Lesenswert?

Hi

>Aber auch ein floatender Input kann manchmal Ärger bereiten ...

Auch wenn sie offen sind, sind sie nicht floatend.

MfG Spess

von Frickelfritze (Gast)


Lesenswert?

BerndB schrieb:
> IMG_2583.JPG
>
>           37,5 KB, 0 Downloads

Wieder (durch Weglassen von vielen Bytes) jede Menge Geld gespart.

von Frickelfritze (Gast)


Lesenswert?

spess53 schrieb:
> Auch wenn sie offen sind, sind sie nicht floatend.

Hab ich nicht behauptet. Lies meine Aussage noch einmal genau.

von spess53 (Gast)


Lesenswert?

Hi

>Hab ich nicht behauptet. Lies meine Aussage noch einmal genau.

Was verstehst du unter

"sofern sie nicht im 4-Bit-Modus intelligent vom Chip-Designer disabled 
werden" ?

MfG Spess

von Edi R. (edi_r)


Angehängte Dateien:

Lesenswert?

Peter D. schrieb:
> Schonmal die hier probiert:
>
> http://www.avrfreaks.net/forum/tutc-lcd-tutorial-1001?skey=lcd%201001

Auch der "Applications Engineer" des Distributors hat mir einen 
Beispielcode geschickt. Mir fehlt es nicht an Kenntnissen zu den LCDs 
allgemein (ich arbeite mit diesen Dinger schon seit den 80er Jahren), 
sondern ich habe "nur" mit einem mir unerklärlichen Fall zu tun, der mir 
bis heute noch nicht untergekommen ist, und der sich bisher nicht 
lokalisieren ließ.

Ich mag es eigentlich nicht besonders hervorheben, aber die Software in 
unserem Gerät ist noch in Assembler für den 68HC11 geschrieben.

Trotzdem vielen Dank für den Link.

Frickelfritze schrieb:
> Würde man das LCD bidirektional betreiben, würden beim Lesen
> die Datentreiber des LCDs kurzgeschlossen

Genau, sowas habe ich mir auch gedacht. Deshalb haben wir auch erst mal 
Widerstände reingehängt.

Frickelfritze schrieb:
> Aber auch ein floatender Input kann manchmal Ärger bereiten ...

Zweifellos.

BerndB schrieb:
> Mache ich gerne:

Danke für das Bild, aber es scheint doch nicht der gleiche Hersteller zu 
sein. Ich habe jetzt ein Bild von unserem LCD zum Vergleich angehängt.

von Frickelfritze (Gast)


Lesenswert?

spess53 schrieb:
> "sofern sie nicht im 4-Bit-Modus intelligent vom Chip-Designer disabled
> werden" ?

Seltsam, Edi R. hat es kapiert.

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> Ich habe jetzt ein Bild von unserem LCD zum Vergleich angehängt.

Da hat der Hersteller ja alle Kondensatoren weggelassen die
er nur weglassen kann ......  obe das auf Dauer Kosten spart?

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> aber die Software in
> unserem Gerät ist noch in Assembler für den 68HC11 geschrieben.

.... und da hast du dich hoffentlich ausführlich darum gekümmert
dass die Timing-Delays wirklich funktionieren.

von spess53 (Gast)


Lesenswert?

Hi

>Genau, sowas habe ich mir auch gedacht. Deshalb haben wir auch erst mal
>Widerstände reingehängt.

>Seltsam, Edi R. hat es kapiert.

Kommt darauf an, wo er die Widerstände 'reingehängt' hat.

MfG Spess

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> Ich mag es eigentlich nicht besonders hervorheben, aber die Software in
> unserem Gerät ist noch in Assembler für den 68HC11 geschrieben.

Vielleicht wäre es doch mal an der Zeit an der Hardware zu spekulieren.

Diese Art von Hardware ist bei weitem nicht so von Low-Power-Design
geprägt wie ein AVR aus der heutigen Zeit. Damit verbinde ich z.B.
weitaus höhere Störpegel auf den Signalleitungen als auch auf den
Versorgungsleitungen. Ich denke da auch an die Bustreiber die
mächtigen "Spektakel" für so ein LCD machen können.

von Frickelfritze (Gast)


Lesenswert?

spess53 schrieb:
> Was verstehst du unter
>
> "sofern sie nicht im 4-Bit-Modus intelligent vom Chip-Designer disabled
> werden" ?

Also gut, für dich ausführlich (aus dem Kochbuch des Chip Designers):

if (eightbit_enabled == 0)
{
  do_not_enable_output_driver[3...0]_under_any_cirumctances;
}
else
{
  enable_output_driver[3...0]_if_read_cycle_is_active;
}

von Edi R. (edi_r)


Lesenswert?

Frickelfritze schrieb:
> Da hat der Hersteller ja alle Kondensatoren weggelassen die
> er nur weglassen kann ......

Ich habe den "Applications Engineer" darauf angesprochen, und er hat 
laut aufgeschrien. Er hat gemeint: "Irgendwelche Kondensatoren müssen 
doch drauf sein." Daraufhin habe ich ihm das Bild geschickt. Weiter hat 
er sich dann nicht mehr geäußert.

Wir haben allerdings an den vorgesehenen Stellen keramische 
100-nF-Kondensatoren eingelötet. Es hat sich dadurch nichts gebessert. 
:-(

Frickelfritze schrieb:
> .... und da hast du dich hoffentlich ausführlich darum gekümmert
> dass die Timing-Delays wirklich funktionieren.

Ja, klar. Ich hab u. a. die Initialisierung und den Upload der 
Sonderzeichen mit dem Logikanalysator aufgenommen und die Zeiten 
rausgemessen.

Frickelfritze schrieb:
> Vielleicht wäre es doch mal an der Zeit an der Hardware zu spekulieren.

Du hast völlig recht. Unabhängig von diesem LCD-Dilemma wird die gesamte 
Schaltung momentan überarbeitet. Aktuell liegt alles beim Layouter, der 
wartet noch auf ein paar Bauteil- und Platinenmaße. Bis alles 
fertigungsreif ist, dauert es aber noch ein paar Wochen, und in dieser 
Zeit will und muss die Firma aber weiter produzieren und ausliefern. 
Deshalb bin ich froh, dass jetzt durch das "Display C" die Kuh vorerst 
vom Eis ist.

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> Es hat sich dadurch nichts gebessert.

Ja schade, aber da sein müssen die trotzdem. Und den vermutlichen
Noise den deine Schaltung produziert bringen die paar kleinen
Dinger auch nicht weg.

Schon mal über Bus Hold Zeiten philosophiert?
Ich nehme an vom 68HC11 bis zum LCD braucht man ein Latch oder
einen Buffer das/der enabled werden will .....

von Edi R. (edi_r)


Angehängte Dateien:

Lesenswert?

Frickelfritze schrieb:
> Ja schade, aber da sein müssen die trotzdem.

Da bin ich ebenfalls Deiner Meinung. Allerdings hat sich das durch den 
Wechsel des Displays für uns auch erledigt.

Frickelfritze schrieb:
> Schon mal über Bus Hold Zeiten philosophiert?
> Ich nehme an vom 68HC11 bis zum LCD braucht man ein Latch oder
> einen Buffer das/der enabled werden will .....

Du gehst ins Detail, das gefällt mir :-). Eingesetzt ist ein Controller 
der 68HC11-Familie, nämlich der MC68711E20, ein "hochmoderner 
Ein-Chip-Controller" (zumindest war er das im letzten Jahrtausend mal). 
Die Ansteuerung des Displays und der anderen Peripherie erfolgt über 
Portleitungen. Es gibt also kein Latch oder einen Dus Driver oder sowas. 
Ich habe mal einen Auszug aus einem Logikanalysator-Mitschnitt 
angehängt, da sieht man, dass das Timing der Datenübertragung locker 
innerhalb der Spezifikation liegt.

von grundschüler (Gast)


Lesenswert?

das LCD an einer anderen Hardware ausprobieren. Wenn der Fehler dann 
wiederkommt, liegt es am LCD, ansonsten an der Schaltung. Es macht doch 
keinen Sinn, sich an einem 5€-Standard-Bauteil lange aufzuhalten.

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> nämlich der MC68711E20,

Das (68HC11 vs MC68711E20) nenne ich Irreführung des Gegners !  ;-)

Jetzt fehlt aber noch die Analog-Darstellung des Bus-Verkehrs,
da wird es erst richtig interessant.

Wie lang sind die Leitungen von Prozessor bis zum LCD? Wird
das LCD ge-handshaked oder nur stur draufgeschrieben?

von Edi R. (edi_r)


Lesenswert?

grundschüler schrieb:
> das LCD an einer anderen Hardware ausprobieren. Wenn der Fehler dann
> wiederkommt, liegt es am LCD, ansonsten an der Schaltung.

Natürlich habe ich das Display vorher in einer anderen Schaltung 
ausprobiert, da hat es ja auch funktioniert. Ich zweifle ja auch nicht 
daran, dass das Display in einer anderen Schaltung problemlos 
funktioniert. Aber wenn dieses Display in unserer Schaltung nicht 
funktionieren mag (und es geht nur um diesen einen LCD-Typ, ausprobiert 
bei ca. 50 Geräten), ein LCD von einem anderen Hersteller dagegen schon, 
dann würde mich schon interessieren, warum.

grundschüler schrieb:
> Es macht doch
> keinen Sinn, sich an einem 5€-Standard-Bauteil lange aufzuhalten.

Woher weiß ich, ob das Theater in einem halben Jahr nicht wieder 
losgeht, wenn ich die Ursache nicht kenne? Es geht ja auch nicht nur um 
ein 5-€-Bauteil, sondern um einen Abrufauftrag von vorerst mehreren 
hundert Displays.

Frickelfritze schrieb:
> Jetzt fehlt aber noch die Analog-Darstellung des Bus-Verkehrs,
> da wird es erst richtig interessant.

Ich habe mir die Signale und die Versorgung zwar am Speicheroszi 
angeschaut, aber die Aufnahmen dummerweise nicht gespeichert, weil eben 
nichts Auffälliges zu sehen war. Aber wenn wieder Zeit dafür ist, dass 
ich mich damit beschäftigen kann, dann hole ich das nach. Ich will 
sowieso noch weiter nach der Ursache forschen.

Eigentlich ist das ja auch nicht mein Thread, irgendwie habe ich BerndB 
jetzt wohl niedergebrüllt. Sorry.

Frickelfritze schrieb:
> Wie lang sind die Leitungen von Prozessor bis zum LCD? Wird
> das LCD ge-handshaked oder nur stur draufgeschrieben?

Die Leitungslänge beträgt ca. 170 mm, und das Layout ist tatsächlich 
nicht gerade ideal - was ich gerne zugeben kann, weil's nicht von mir 
ist :-). Die Ansteuerung war vorher mit Abfrage des Busy-Flags, aber das 
haben wir zwischendurch auch geändert. Natürlich ohne Auswirkung.

von Georg G. (df2au)


Lesenswert?

Edi R. schrieb:
> Die Leitungslänge beträgt ca. 170 mm

Mach dir den Spaß und setze einen Treiber in die E-Leitung direkt am 
Display. Du wirst sehen, dann funktioniert es. Es gibt leider Displays, 
die wollen die Flanke am E mit maximal 10ns Steilheit, sonst gibt es 
dumme Effekte. Das stand etwas versteckt sogar im Datenblatt.

von Edi R. (edi_r)


Lesenswert?

Georg G. schrieb:
> Mach dir den Spaß und setze einen Treiber in die E-Leitung direkt am
> Display.

Das werde ich gerne ausprobieren, danke für den Hinweis. Wenn die Flanke 
schneller als 10 ns sein soll, dann hat mich der "Applications Engineer" 
auch nicht gerade gut beraten, als er meinte, wir sollen Kondensatoren 
über die Eingänge schalten. Nun ja, er hat vermutlich gemeint, falls 
eine Störung in die Leitung eingestreut wird oder so.

von Frickelfritze (Gast)


Lesenswert?

Georg G. schrieb:
> Mach dir den Spaß und setze einen Treiber in die E-Leitung direkt am
> Display.

Das wäre dann diese Version der Problematik ....

Frickelfritze schrieb:
> Das kann man damit begründen dass die alten LCDs so gutmütig
> sind dass sie eine kleine Design-Verletzung deinerseits klaglos
> hingenommen haben, die neuen aber nicht .....

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> Nun ja, er hat vermutlich gemeint, falls
> eine Störung in die Leitung eingestreut wird oder so.

Das liebe ich so sehr in der Digitaltechnik: Kondensatoren die
nicht dem Abblocken dienen sondern der Signal- Verschönerung

Mehr High-Tech geht nicht.

von nemesis... (Gast)


Lesenswert?

Hat eigentlich mal einer auf das heutige Datum geachtet?

von Edi R. (edi_r)


Lesenswert?

nemesis... schrieb:
> Hat eigentlich mal einer auf das heutige Datum geachtet?

Disclaimer: Alles, was ich geschrieben habe, hat nichts mit dem 1. April 
zu tun und ist kein Scherz.

Noch'n Disclaimer: Wenn mich jemand in den April schicken wollte, ist 
ihm das voll gelungen. Vorerst nehme ich aber alle Beiträge sehr ernst.

Frickelfritze schrieb:
> Das liebe ich so sehr in der Digitaltechnik: Kondensatoren die
> nicht dem Abblocken dienen sondern der Signal- Verschönerung

Ja, mir hat es auch die Nackenhaare hochgestellt, aber da muss man 
durch. Mein einziger Trost dabei: Es hat nichts genutzt.

von nemesis... (Gast)


Lesenswert?

Edi R. schrieb:
> Disclaimer: Alles, was ich geschrieben habe, hat nichts mit dem 1. April
> zu tun und ist kein Scherz.

Dich meinte ich auch nicht, sondern den TO.

von Georg G. (df2au)


Lesenswert?

nemesis... schrieb:
> sondern den TO

Imho scherzt der auch nicht. Sieh dir mal an, wie viele Leute hier fast 
täglich mit LCD Problemen aufschlagen. Ich habe auch schon mal einige 
Stunden einen Fehler in der Ansteuerung gesucht. Kabel 10cm kürzer und 
es war zuverlässig, die besagte Anstiegszeit. Die modernen CPUs werden 
immer kleiner und stromsparender und damit hochohmiger, auch in den 
Ausgängen. Das hat nicht nur Vorteile.

von BerndB (Gast)


Lesenswert?

Danke Georg für deinen Beitrag!

Du meinst also ein Treiber für den 4-Bit Datenbus und für RE und E 
könnten das Problem beheben?
Welchen Bustreiber würdest du nehmen?

Gruß,
Bernd

von Georg G. (df2au)


Lesenswert?

BerndB schrieb:
> Treiber für den 4-Bit Datenbus und für RE und E

Nach meiner Erfahrung ist nur das E-Signal kritisch. Ich hatte 
seinerzeit einen 74HC04 genommen (suboptimal). Es gibt "Einzelgatter" in 
SOT23 Größe. Das wäre sicher besser, einfach als dead bug unter den 
Display Anschluss geklebt.

von BerndB (Gast)


Lesenswert?

Danke Georg für deine schnelle Antwort!

Ich habe RE, E, D4, D5, D6, D7 über Gatter angesteuert.
Leider keine Verbesserung!

Gruß,
Bernd

von Peter D. (peda)


Lesenswert?

Edi R. schrieb:
> Ich habe mal einen Auszug aus einem Logikanalysator-Mitschnitt
> angehängt, da sieht man, dass das Timing der Datenübertragung locker
> innerhalb der Spezifikation liegt.

Das Timing sieht sehr gut aus.
Tritt der Fehler später auf oder klappt schon die Initialisierung nicht?

von Edi R. (edi_r)



Lesenswert?

BerndB schrieb:
> Ich habe RE, E, D4, D5, D6, D7 über Gatter angesteuert.
> Leider keine Verbesserung!

Inzwischen bin ich auch zu meinen Versuchen gekommen. Ich habe in die 
E-Leitung einen 74LS132 (4fach Schmitt-Trigger-NAND) geschaltet. Leider 
hat es auch nichts gebracht. Bei der Gelegenheit habe ich mir noch die 
Signalformen ohne 74LS132 (also direkt aus dem Controller heraus) 
angesehen, und die schauen nicht einmal so übel aus. Der 74LS132 hat die 
Impulsform nicht verbessert.

Georg G. schrieb:
> Es gibt leider Displays,
> die wollen die Flanke am E mit maximal 10ns Steilheit, sonst gibt es
> dumme Effekte. Das stand etwas versteckt sogar im Datenblatt.

In den Datenblättern der LCD-Controller, die ich durchgesehen habe 
(HD44780, KS0066, ST7066, SPLC780A1, AIP31066), steht tatsächlich so ein 
versteckter Wert, allerdings 25 ns. Das würde ich einhalten, sowohl mit 
als auch ohne 74LS132. Auf die 10 ns komme ich nicht. Deshalb werde ich 
mir ein paar 74AC14 besorgen, die müssten dann schnell genug sein. Den 
Versuch werde ich auf jeden Fall noch machen.

Vielen Dank, Georg, diese Stelle im Datenblatt habe ich bisher 
übersehen.

Peter D. schrieb:
> Tritt der Fehler später auf oder klappt schon die Initialisierung nicht?

Die Initialisierung klappt, das Display zeigt zunächst alles richtig an. 
Wenn das Gerät dann in Betrieb genommen wird, kommen die Hieroglyphen - 
nicht immer, und nicht immer an der gleichen Stelle (weder örtlich noch 
zeitlich). Im Gerät schalten dann auch ein paar Relais, und wir vermuten 
hier einen Zusammenhang, können aber weder messtechnisch was nachweisen 
noch mit Abblock- und Entstörmaßnahmen was verbessern.

Ich möchte noch einmal erwähnen, dass die Sache für mich inzwischen 
einen eher akademischen Wert hat, weil wir das Problem durch den Wechsel 
auf ein anderes Display gelöst haben. Aber mich ärgert es, wenn ich 
nicht herausbekomme, was da los war.

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> Im Gerät schalten dann auch ein paar Relais,

Das ist aber eine Tatsache die du uns bisher unterschlagen hast.

Böse, böse!

Ich sage nur: CMOS Schaltungen und Induktionsspannungen.
Und dann noch 17 cm lange Leitungen zum LCD? Ich würde
Angst kriegen ....  Das LCD ist wegen seiner äusserst geringen
Stromaufnahme ein sehr fragiler, empfindlicher Schaltkreis!

Ich schlage schon mal eine abschirmende Massefläche für alle
LCD-Leitungen vor. Und für das LCD selbst auch.

von Edi R. (edi_r)


Lesenswert?

Frickelfritze schrieb:
>> Im Gerät schalten dann auch ein paar Relais,
>
> Das ist aber eine Tatsache die du uns bisher unterschlagen hast.

Ich habe bisher überhaupt nichts über das Gesamtgerät geschrieben.

Frickelfritze schrieb:
> Ich sage nur: CMOS Schaltungen und Induktionsspannungen.
> Und dann noch 17 cm lange Leitungen zum LCD?

Selbstverständlich kann man CMOS und Relais in einem Gerät kombinieren, 
wir sind schließlich keine Anfänger. Das Gerät wird seit über 15 Jahre 
als Seriengerät produziert, mit geringen funktionalen Modifikationen.

von Frickelfritze (Gast)


Lesenswert?

Edi R. schrieb:
> Selbstverständlich kann man CMOS und Relais in einem Gerät kombinieren,

Können kann man schon ..... egal ob man es richtig oder falsch macht.

von BerndB (Gast)


Lesenswert?

FEHLER GEFUNDEN und großen Dank an alle die sich darum bemüht haben!

Hier ein paar Details:
Ich steuere ein LCD Display und diverse Bauteile DAC, Transmitter etc. 
über
einen XMC1200 (Cortex-M0) an.
Diesen programmiere ich in C mit myVision 5.0 von der Fa. Keil.
Die LCD Ports steuere ich mit Hilfe von Structuren an, da es mir bisher 
nicht gelungen ist das Ganze in C++ Klassen zu verfassen.

Da mein Problem nur sporadisch bei der billig Chinaware auftraf habe ich 
mir darüber Gedanken gemacht wie ich mit meinem abzubildenen Text 
umgehe.
Diesen habe ich mit "strncpy()" in die Struktur hineinkopiert und 
anschließend am Display abgebildet.
Vielleicht bringt diese Methode eine Zeitverzögerung?

Wenn ich aber meinen Text an einer definierte Stelle ins RAM schreibe 
und meine DisplayFunction nimmt Bezug auf diese Adresse funktionieren 
alle mir zur Vefügung stehenden Displays einwandfrei.

Nichts ist so einfach wie es aussieht!

Vielen Dank

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.