Forum: Mikrocontroller und Digitale Elektronik Problem mit 2 LCD parallel, getrennt durch Bustreiber 74HC245


von Ottmar K. (wil1)


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

von da1l6 (Gast)


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

von Ingo D. (ingo2011)


Lesenswert?

... ich vermute mal, Deine LCD-LIB liest ein LCD-BUSY Signal vom LCD 
ein...
Wenn Du jetzt Dein Display entfernst, wird Dein Programm an dieser 
Stelle
stehen bleiben und auf dem anderen Display gehts dann auch nicht weiter 
..

Gruß Ingo

von Falk B. (falk)


Lesenswert?

Für die beiden LCD braucht man keinen Bustreiber, die kann man direkt 
apralle schalten. Lediglich für die beiden E-Signale braucht man 
getrennte Leitungen, damit man beide gezielt ansprechen kann.

von Ottmar K. (wil1)


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

von Falk B. (falk)


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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


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?

von Ottmar K. (wil1)


Lesenswert?

Herzlichen Dank für Eure hilfreichen Antworten und Hinweise!
Offensichtlich habe ich da etwas zu kompliziert gedacht. Ich werde die 
gemachten Vorschläge überdenken und mein Konzept entsprechend ändern!

mfG Ottmar

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.