LCD-Display, Pin-Sharing Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
| Autor |
|
|
|
BID = 508999
attersee Stammposter
   
Beiträge: 451 Wohnort: Wien
|
|
Weil mir die I/O Pins beim PIC16F876 zuwenig werden, plane ich ein Pin-Sharing. Und zwar habe ich vor, am Port B sequentiell ein
1) LCD Display (HD44780 Controller, 4 Bit) anzusteuern, und
2) Binärdaten (TTL) aus einer bestehenden Hardware zu lesen.
Wohl fand ich Beispiele, wo eine Keyboardabfrage und ein LCD Display an einem Port betrieben werden, doch ich möchte mich (vor der Realisierung) vergewissern, ob das auch in meinem Fall funktioniert.
Die konkrete Frage ist: Wie verhalten sich die restlichen I/O’s eines Display (RS, R/W und D4-D7), wenn das ENABLE Signal LOW ist. Nehmen diese I/O Pins dann einen hochohmigen Zustand an? Ich habe darüber in dem mir verfügbaren Datenblatt nichts gefunden.
Meine Idee ist, die TTL Signale über entsprechend dimensionierte Vorwiderstände parallel an den PIC Port zu legen, an dem das Display betrieben wird. LCD ENABLE erhält natürlich einen I/O Pin des PIC exklusiv.
Wenn die Impedanz der LCD I/O’s (bei NOT ENABLE) groß genug ist, sollte ich die TTL Signale am PIC lesen können. Andererseits dürften bei LCD ENABLE die über die Vorwiderstände eingekoppelten Signale nicht stören, wenn nur der LCD Port in diesem Zustand niederohmig genug ist.
Beim Lesen der TTL Daten handelt es sich um keine zeitkritische Anwendung.
Ich bin mir sicher, dass ich nicht der Erste bin, dem sich dieses Problem stellt. Wer kann mir hier aus seiner Erfahrung berichten, bzw. einen Hinweis für die Dimensionierung der Widerstände geben.
Herzlichen Dank.
Johann
|
|
BID = 509006
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Zitat :
| | Wie verhalten sich die restlichen I/O’s eines Display (RS, R/W und D4-D7), wenn das ENABLE Signal LOW ist. Nehmen diese I/O Pins dann einen hochohmigen Zustand an? | Typischerweise sind Enable-Eingänge active Low. Oft geschrieben als -EN oder /EN.
Du müsstest also ein High anlegen um das Diplay abzuschalten.
Und ja, dann sind die Ausgangstreiber abgeschaltet.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten ! |
|
BID = 509010
attersee Stammposter
   
Beiträge: 451 Wohnort: Wien
|
Danke für die blitzartige Antwort.
Gut zu hören, dass die Ausgangstreiber abgeschaltet werden. Ich werde die Schaltung einmal aufbauen und dann berichten, wie es funktioniert hat. Das wird aber etwas dauern.
Grüße, Johann
|
BID = 509327
attersee Stammposter
   
Beiträge: 451 Wohnort: Wien
|
Die Mehrfachnutzung eines Port durch Einkopplung von TTL Signalen über Vorwiderstände hat mir schließlich schaltungstechnisch so missfallen, dass ich mich entschieden habe, 3-State Driver mit Enable (74F240) für die Zuführung dieser TTL Signale an den uC Port zu benutzen. Ich habe noch genau einen freien I/O Pin, mit dem ich Enable bedienen kann.
Nachdem der am selben Port angeschlossene LCD Controller offensichtlich auch einen 3-State Betrieb kennt, sollte der Port sequentiell sauber arbeiten können (Read von einem TTL Bus // Read-Write LCD Display). Der LCD Controller erhält ein /EN nur dann, wenn die TTL Signale disable’d sind.
Das ist doch wohl kein Overkill? Expertenmeinung ist willkommen.
Johann
|
BID = 509329
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| | dass ich mich entschieden habe, 3-State Driver mit Enable (74F240) für die Zuführung dieser TTL Signale an den uC Port zu benutzen |
Wenn du soviel Platz hast...
Aber warum einen solchen Stromfresser ? Das gibts auch als C- oder HC-Ausführung.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 509331
DonComi Inventar
     
Beiträge: 8604 Wohnort: Amerika
|
Moin,
Diese LCD-Kontroller sind schon geeignet, an einem Bus betrieben zu werden, dafür haben sie ja Tristate-Ausgänge und u.A. die Enable-Leitung.
Dennoch kann ein Teilnehmer nicht so ohne weiteres auf den Bus schreibend zugreifen, da es dabei zu Kurzschlüssen kommen kann (einer bringt eine 1 auf eine Leitung, der andere will eine 0 schreiben). Daher sind oft alle Teilnehmer, soweit überhaupt ein bidirektionaler Betrieb erforderlich ist, mit einem Eingang zum Umschalten auf Lesen oder Schreiben versehen, genau wie dein LCD-Kontroller auch.
Das Sauberste ist also in diesem Fall wirklich ein Bustreiber, da das u.a. genau seine Aufgabe ist. Wenn das platzmäßig hinkommt, ist das hervorragend.
Dennoch gibts häufig auch andere Wege, eben wie vorgeschalgen über Widerstände, bis hinzu wired-AND (Open-Collector-Ausgänge) über andere haarsträubenden Varianten.
In vielen Fällen ist auch die Schaltgeschwindigkeit wichtig, über größere Widerstänbde kann es länger dauern, die Pegel sind nicht mehr sauber, Flankenwechsel können zu langsam werden. Kleinere Widerstände bringen zwar die Geschwindigkeit höher, dafür fließt u.U. ein recht hoher Strom, der, selbst wenn nicht schädlich, doch batteriebetriebene Geräte unnötig leersaugt
Edit:
Und wie perl meinte, nimm ruhig die CMOS-Versionen, brauchen bei der Geschwindigkeit sehr wenig Leistung.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 20 Mär 2008 0:24 ]
|
BID = 509526
attersee Stammposter
   
Beiträge: 451 Wohnort: Wien
|
Danke an Perl und DonComi für die Hilfestellung. Ich habe absolut kein Platzproblem. Und natürlich werde ich CMOS Typen verwenden.
An DonComi: Genau diese Gedanken gingen mir durch den Kopf, als ich die Anbindung über Widerstände verwarf.
Nochmals danke. Grüße, Johann
|
BID = 509532
Racingsascha Schreibmaschine
    
Beiträge: 2247 Wohnort: Gundelsheim
|
Zitat :
| | bis hinzu wired-AND (Open-Collector-Ausgänge) |
Müsste das nicht wired- OR sein?
_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.
|
BID = 509534
DonComi Inventar
     
Beiträge: 8604 Wohnort: Amerika
|
Definitionssache.
OK, je nachdem, welche Logik man zugrunde legt, stimmt dein Oder schon. Die Transisoren invertieren ja. Dennoch ist Und nicht verkehrt.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 20 Mär 2008 21:31 ]
|
BID = 513983
attersee Stammposter
   
Beiträge: 451 Wohnort: Wien
|
Die gemeinsame Nutzung des Port über CMOS-Bustreiber mit Enable funktioniert einwandfrei. Die Sache ist insofern nicht kompliziert, weil über diesen Pfad nur Daten vom PIC gelesen werden, während am anderen Pfad lediglich die Datenleitungen des LCD Display bidirektional arbeiten.
Von der Initialisierung weg habe ich sehr genau darauf geachtet, dass am betreffenden Port keine Mehrfachzugriffe möglich sind. Dennoch habe ich diesmal an den Treiberausgängen noch relativ niederohmige ‚Angstwiderstände’ in Serie geschaltet, um bei Mehrfachzugriff den PIC nicht zu zerstören. Beim nächsten Projekt entfallen diese Widerstände.
Nochmals danke an alle Unterstützer.
Grüße,
Johann
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag heute wurden bisher 1 Beiträge verfasst © x sparkkelsputz Besucher : 187984343 Heute : 3554 Gestern : 11123 Online : 492 28.12.2025 6:50 5 Besucher in den letzten 60 Sekunden alle 12.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0760939121246
|