Hallo, ich betreibe an meinen AVR 6 Display. Nehme dazu einen "Bus" der 8 Bit breit ist her. Alle Display pararell und als Treiber einen 74HC245. Die E-Leitung wird aus einen zweiten 3bit breiten decodiert. RS und R/W sind durchgeschliefen. Geschwindigkeit ist relativ langsam. Funkte bis jetzt alles. Seit ein paar Wochen aber tauchen "Geisterzeichen" auf. Ich kann den Bus noch langamer machen, wollte aber mal nachfragen ob ihr den "Bus" abschliesen würdet. Im Moment ist er offen. Wenn ja was würdet ihr nehmen. Der 74HC245 ist doch aktiv. Oder? Gruß
Wenn Du uns Deinen Schaltplan zeigen könntest, dann wären vielleicht unsere Antworten nicht nur umfangreicher, sondern auch präziser ;) Bernhard
Du solltest nach dem Anlegen der Daten etwas warten, bevor die jeweilige Enable Leitung auf Low und dann wieder auf High gesetzt wird. Dadurch gehst Du sicher, daß die Datenpegel stabil sind, bevor Du das jeweilige Display ansprichst. Außerdem dürfen die Kabel zum Display nicht allzu lang sein. Was auch hilft, sind PullUp-Widerstände an den Displays als Leitungsabschluß, um den Bus niederohmiger und somit störungsärmer zu gestalten.
Hallo Schaltplan habe ich leider keinen. Aber aufschreiben kann ich ihn ja. AVR 8bit => 74HC245 => Flachbandleitung 2m => 6 * Display AVR 3bit (RS/ R-W/ 6*E) => 74HC245 => Flachbandleitung 2m => 6* Display Dazu jeweils nochmal VCC und GND. An allen Display's ist ein 10µF Elko zwischen VCC und GND. Ich vermute die Anschlußwiderstände am letzten Display einfügen. Gruß
@wolf4122 Die Tipps von TravelRec sind sehr gut. Wenn ich es richtig verstanden habe, dann betreibst Du die Displays im 8-Bit-Daten-MODUS? Dann wundert mich aber, dass die Displays "Geister-Zeichen" schreiben, denn sollte im 8-Bit-Modus der E-IMPULS nicht steil genug sein, dann wird eigentlich das Zeichen nicht!! dargestellt. Oder arbeitest Du im 4-Bit-Display-Modus ? Oder stürzen die Displays aus irgend einem Grund ab? Bernhard
Hallo Die Display's arbeiten im 8 Bit Modus. Geisterzeichen tretten z.B. immer auf wenn ein kleines o und dann ein Leerzeichen folgt. Geisterzeichen ist das "'" statt des Leerzeichens. Habe mal im Zeichensatz nachgeschaut. Es sieht so aus, als wenn beim Übertragen der Daten das Low Nibble zwar auf 0x0 geht, aber das High Nibble noch auf 0x6 stehen bleibt. Während es Lesens vom Bus meine ich. Mir geht es hauptsächlich, ob ihr den Bus überhaupt abschliesen würdet. Wenn das nichts bringt, werde ich leider die Zeiten verändern müssen. Ich danke euch für eure Antworten und halte euch auf dem laufenden. Gruß
@wolf4122 >Geisterzeichen tretten z.B. immer auf wenn ein kleines o und dann ein >Leerzeichen folgt. Geisterzeichen ist das "'" statt des >Leerzeichens. D.h. es entsteht immer das gleiche falsche Zeichen an der gleichen Stelle? >Es sieht so aus, als wenn beim Übertragen der Daten das Low Nibble >zwar auf 0x0 geht, aber das High Nibble noch auf 0x6 stehen bleibt. Dort liegt anscheind die Ursache. >Während es Lesens vom Bus meine ich. Du meinst sicherlich LESEN durch das Display ? >Wenn das nichts bringt, werde ich leider die Zeiten verändern müssen. Zuerst die Datenleitungen setzen etwas warten (µs-Bereich) dann Ennable von LOW auf HIGH etwas warten (µs-Bereich) dann Ennable von HIGH auf LOW etwas warten (µs... ms Bereich, manche Kommandos brauchen etwas Zeit 2ms für CLEAR) Bernhard PS: Ich betreibe gern die LCDs im 4-Bit-MODUS, spart nicht nur Kabel, Platz, Gewicht, Kosten, sondern auch Zeit beim verlöten der Kabel Und Du "gewinnst" 4 Pins für anderes ;)
Habe ich das richtig gelesen? Zwei Meter Flachbandleitung zum Display? Keine Wunder hast Du Probleme.
zwei Meter ist wirklich viel für TTL-Signale, da könnten ein paar Beruhigungswiderstände, so 33 Ohm in Serie in jeder Signalleitung schon helfen. Gibts auch als Widerstandsnetzwerk. So richtig koaxial mit Wellenwiderstand muß noch nicht sein.
Was helfen kann: Serienwiderstände in den Leitungen, dort wo sie am Controller angeschlossen sind. 100 Ohm oder so. Reduziert die sonst recht heftigen Flanken vom Controller und damit das Klingeln auf den Leitungen. Ein klassischer Abschluss frisst mehr Strom als die Displays liefern können, ist also nur sinnvoll, wenn von denen nicht gelesen wird.
@Unbekannter @Christoph >Habe ich das richtig gelesen? Zwei Meter Flachbandleitung zum >Display? >Keine Wunder hast Du Probleme. >zwei Meter ist wirklich viel für TTL-Signale, da könnten ein paar >Beruhigungswiderstände, so 33 Ohm in Serie in jeder Signalleitung >schon helfen. Gibts auch als Widerstandsnetzwerk. So richtig koaxial >mit Wellenwiderstand muß noch nicht sein. Die kritischste Leitung ist die Enable-Leitung, alles andere ist relativ egal, Hauptsache die Pegel sind im TTL-BEREICH. Nur gerade Enable, also der Wechsel von HIGH auf LOW muss sehr schnell, also mit einer sehr steilen Flanke geschehen. Ich glaube der Wechsel von LOW aif HIGH der Enable-Leitung ist garnicht so kritsch, oder sehe ich das falsch? Bernhard
"Hauptsache die Pegel sind im TTL-BEREICH" Genau deshalb ist es nicht egal. Lange Leitung ohne Abschluss plus schnelle Flanke bedeutet over/undershoots vom Feinsten. Und genau deshalb ist "Wechsel von HIGH auf LOW muss sehr schnell, also mit einer sehr steilen Flanke geschehen" in diesem Fall geradezu tödlich. Ich habe den HD44780 grad nicht im Kopf - verlang der tatsächlich eine Flange im einstelligen nsec-Bereich - so schnarchlangsam wie er sonst ist? Oder verlang der vielmehr nach einer sauberen Flanke die nicht durch eine klingende Leitung zu mehreren Impulsen wird?
Hmmm. Rise/fall time lt. Datasheet 20ns. Wenn der das wirklich ernst nimmt, kann schlimmstenfalls ein Schmitt-Trigger vor dem E-Aschluss jedes Displays nötig sein.
@A.K. >"Hauptsache die Pegel sind im TTL-BEREICH" >Genau deshalb ist es nicht egal. Lange Leitung ohne Abschluss plus >schnelle Flanke bedeutet over/undershoots vom Feinsten. Ich bezog mich speziell auf die 8 DATEN-Leitungen und auf RS und RW, die sin nach meiner Meinung unkritisch ==> HAUPTSACHE TTL-PEGEL. Die Enable-Leitung, der ist sehr viel Aufmerksamkeit zu schenken, denke ich. Seile flanke, trotz langsamen Display-Controler. Bernhard
Tip nebenbei: Schreib die Ansteuerung der Displays so um, dass es ganz ohne Rückmeldung geht, also mit esten Wartezeiten. R/W fest auf 0. Dann sind die Signale nicht mehr bidirektional und das erleichtert die Sache deutlich.
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.