Problem mit 2 LCD parallel, getrennt durch Bustreiber 74HC245

OP #3230210
Lesenswert?

Momentan stecke bei diesem Problem fest:

An einem PIC16F628 betreibe ich an PORTB ein LCD Nr. 1, dessen Ausgabe
einwandrei funktioniert. An PORTB sind die Pull-Up-Widerstände
aktiviert.

Jetzt habe ich an PORTB, parallel zum LCD1 einen 8Bit-Bustreiber 74HC245
mit seinem A-Bus als Input angeschlossen (Pin DIR fest auf GND, Pin G
fest auf +5V). Am B-Bus (Output) des 74HC245 habe ich das LCD Nr. 2
angeschlossen. Dieses 2. LCD zeigt nun den gleichen Inhalt wie das an
PORTB an, auch der Inhalt ändert sich gleichlautend zum 1. LCD. So soll 
es ja auch sein.

Was ich aber nicht verstehe:
Entferne ich das 1. LCD von PORTB, dann ändert sich die Ausgabe im 2.
LCD nicht mehr, es ist quasi "eingefroren". Führe ich einen Reset ohne
angeschlossenes LCD1 aus, oder schalte ich die Betriebsspannung (5V) aus
und dann wieder ein, bleibt das 2.LCD leer, obwohl das Programm weiter
abläuft.

Stecke ich jetzt das LCD1 wieder an PORTB und drücke dann den
RESET-Taster laufen LCD1 und LCD 2 wieder sauber parallel.
Beide LCD haben identische Anschlusskonfiguration.
Datenblatt 74HC245 [http://www.mikrocontroller.net/part/74HC245]

Welchem Effekt sitze ich hier auf?
Über Hinweise würde ich mich sehr freuen!

mfG Ottmar
Gast #3230217
Lesenswert?

Hallo

Verwendest du den R/W Pin um das Busy-Flag des LCDs auszuwerten? Falls 
ja, solltest du das lassen, da dies die Pins des LCDs auf Ausgang 
schaltet und es damit gegen den Bustreiber arbeitet. Das gefärdet das 
LCD.
Natürlich kommt das Signal so auch nicht durch den Bustreiber durch und 
die LCD lib wartet vergeblich.

Vorschläge:

 * Wenn du beide LCDs behalten willst, legen den R/W Pin von LCD 2 fest 
auf W.

 * Wenn du nur das LCD2 behalten willst, schalte R/W und direction pin 
des Bustreibers parallel, damit schaltet desen richtung mit um. 
(Polarität prüfen, bin mir nicht sicher ob die hier passt. Falls nicht 
beides mit dem µC auf inverse Pegel legen).

da1l6
OP #3230242
Lesenswert?

da1l6 schrieb:
> Verwendest du den R/W Pin um das Busy-Flag des LCDs auszuwerten?

Ja, so ist es! Danke! (da muss man erst mal drauf kommen)
Eigentlich war das nur ein Vortest. Als Endziel soll ein bereits 
vorhandener und arbeitsfähigen R2R-DAC mittels eines Bustreibers an 
PORTB angeschlossen sein. Ein zweiter Bustreiber, ebenfalls an PORTB 
angeschlossen, soll ein LCD welches Frequenzeinstellung und Wellenform 
anzeigt treiben. Die beiden Bustreiber werden wechselseitig,  - nach 
Bedarf - aktiv, bzw. hochohmig geschaltet.

Ich mach mich mal an den Umbau der LCD-Anschlüsse!

mfG Ottmar
#3230255
Lesenswert?

@ Ottmar K. (wil1)

>Eigentlich war das nur ein Vortest. Als Endziel soll ein bereits
>vorhandener und arbeitsfähigen R2R-DAC mittels eines Bustreibers an
>PORTB angeschlossen sein.

Der braucht keinen Bustreiber, nur ein Latch.

> Ein zweiter Bustreiber, ebenfalls an PORTB
>angeschlossen, soll ein LCD welches Frequenzeinstellung und Wellenform
>anzeigt treiben.

Braucht man nicht.

> Die beiden Bustreiber werden wechselseitig,  - nach
>Bedarf - aktiv, bzw. hochohmig geschaltet.

Das erst recht nicht. Da die Datenrichtung immer von der CPU zu den 
externen Komponenten ist, muss hier nix umgeschaltet werden. Man muss 
nur das Latch des R2R DAC bedienen, genauso wie das E vom LCD.
(Firma: fritzler-avr.de) #3230318
Lesenswert?

Ottmar K. schrieb:
> Eigentlich war das nur ein Vortest. Als Endziel soll ein bereits
> vorhandener und arbeitsfähigen R2R-DAC mittels eines Bustreibers an
> PORTB angeschlossen sein. Ein zweiter Bustreiber, ebenfalls an PORTB
> angeschlossen, soll ein LCD welches Frequenzeinstellung und Wellenform
> anzeigt treiben. Die beiden Bustreiber werden wechselseitig,  - nach
> Bedarf - aktiv, bzw. hochohmig geschaltet.
Naja, nee...

Da brauchste keine Bustreiber, sondern nen 8 bit Register um den Wert 
für den R2R DAC zu halten.
Das Display braucht auch kein Bustreiber, der ist schon inetgriert oder 
meinste, dass der Enable Pin zum Spaß da is?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren