Forum: Mikrocontroller und Digitale Elektronik Displaybus abschliesen?


von wolf4122 (Gast)


Lesenswert?

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ß

von Bernhard S. (bernhard)


Lesenswert?

Wenn Du uns Deinen Schaltplan zeigen könntest, dann wären vielleicht

unsere Antworten nicht nur umfangreicher, sondern auch präziser ;)

Bernhard

von TravelRec. (Gast)


Lesenswert?

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.

von wolf4122 (Gast)


Lesenswert?

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ß

von Bernhard S. (bernhard)


Lesenswert?

@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

von wolf4122 (Gast)


Lesenswert?

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ß

von Bernhard S. (bernhard)


Lesenswert?

@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 ;)

von Unbekannter (Gast)


Lesenswert?

Habe ich das richtig gelesen? Zwei Meter Flachbandleitung zum
Display?

Keine Wunder hast Du Probleme.

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

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.

von A.K. (Gast)


Lesenswert?

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.

von Bernhard S. (bernhard)


Lesenswert?

@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

von A.K. (Gast)


Lesenswert?

"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?

von A.K. (Gast)


Lesenswert?

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.

von Bernhard S. (bernhard)


Lesenswert?

@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

von A.K. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.