Ein Display für mehrer Controller

OP #1588929
Hallo Gemeinde,
ich beschäftige mich erst seit kurzem mit der Programmierung von PIC's.
Erfolgreich habe ich auch schon ein Display angeschlossen und nun 
beabsichtige ich in einem 19" Gehäuse mehrer Controllerkarten für 
verschiedene Anwendungen einzubauen.
Die Controller werden nicht miteinander verbunden (leider habe ich noch 
keine Erfahrungen mit diversen Bussen gemacht).
Ist es dennoch möglich ein Diplay an mehreren Controller anzuschließen 
ohne auf mechanische Umschalter angewiesen zu sein?

Über Anregungen und Tipps wie ich sowas realisieren könnte, wäre ich 
Euch dankabr.

Gruß Andreas
Gast #1588941
Ja das würde gehen den Datenbus kannst du durch verbinden bei R/S, E , 
CS musst du dir dann was überlegen vielleicht ne Steuerleitung die 
signalisiert das ein µC gerade schreibt/liest.
#1588944
Hallo Andreas,

ist zwar nicht sonderlich schön, sollte aber möglich sein.
Wichtig ist, dass du die Ausgänge am Controller auf Input schaltest, 
wenn nichts gesendet wird.

Zieht ein Controller die Leitungen zum Display auf Low und ein anderer 
auf High, hast du den Salat - der schwächere gibt nach (und büßt dadurch 
seine I/Os ein oder vernichtet sich komplett selber).
Wichtig ist daher auch das Überprüfen, ob das Display verwendet werden 
darf -> weiterer Pin von den µCs verwenden.
Vor dem Senden dann prüfen, ob der Bus frei ist.
Am Besten einen externen Pull-Up verwenden und die I/Os nur zwischen 
Input und (Output)Low schalten lassen.
Über den Input und High-Zustand kannst du dann feststellen, dass der Bus 
frei ist und die Leitung dann auf Low ziehen. Liegt das Signal auf low 
-> Bus belegt.

Sinnvoller ist es jedoch allemal, sich mit Bussystemen zu beschäftigen. 
Prädesteniert für deinen Fall wäre denke ich der I²C. Kurze Strecken, 
Multimaster und nicht allzu aufgebläht. Du brauchst dann halt einen 
weiteren Controller, der eine Schnittstelle von I²C zum Display 
darstellt.

HTH
OP #1588983
Danke für die infos.
So High-End wollte ich das gar nicht machen. Mir würde es schon 
vollkommen ausreichen, wenn ich an dem Controller, an dem ich was über 
das Display einstellen möchte, einen Taster drücke und dann das Display 
entsprechend auf diesen Controller umschaltet. Drücke ich dann an einem 
anderen Controller einen Taster, so schlatet das Display wiederum um.

Also müsste ich die Pins an den Controllern die ich gerade nicht "aktiv" 
habe, auf Low setzen um dann den aktiven betreiben zu können?
#1589006
Hallo,

erkläre Dein Display und die Tasten zum Terminal. Also eigenen kleinen 
AVR ran und die Kommunikation mit den anderen Boards dann per RS232, 
I2C, SPI o.ä.
Taste am Display für Controller 1 schaltet dann TxD/Rxd an den 
gewünschten Controller durch und sendet ein vereinbartes Zeichen.
Der Controller empfängt per RX-Interrupt das Zeichen und meldet sich 
dann eben beim Display.
Kann man auch gut noch ausbauen.

Gruß aus Berlin
Michael
OP #1589045
Hallo Michael,
mein Display wird über 4 Datenleitungen und RS, Enable verbunden.
Diese Leitungen stehen mir ja nun an jedem Controller zur Verfügung und 
über einen weiteren PIN wollte ich ein Taster anschließen, der dann 
diese Ausgänge entsprechend aktiviert. So zumindest meine Theorie, da 
ich nicht weiß, was ich solange mit den Anderen Controllern machen muß, 
um diese nicht zu beschädigen. Reicht es aus, diese PIN's solange auf 
low zu legen?

gruß Andreas
#1589069
> Reicht es aus, diese PIN's solange auf low zu legen?

Dazu:

Chris R. schrieb:
> Zieht ein Controller die Leitungen zum Display auf Low
> und ein anderer auf High, hast du den Salat - der
> schwächere gibt nach (und büßt dadurch seine I/Os
> ein oder vernichtet sich komplett selber).

Besser ist es also, alle Controller halten ihr Display-interface auf 
INPUT (und ignorieren die anliegenden Pegel).

Was folgt:

Du drückst einen Taster. Damit wird Controller A gesagt "OK, du bist 
dran, gib deine Sachen aus". Das tut er dann.

Nun willst du sehen was Controller B macht, drückst also auf Taster B

Controller A und B arbeiten nun gegeneinander, da A nichts von deinem 
zweiten Tastendruck mitgekriegt hat.

Notlösung: Controller A wird vorher "abgeschaltet" per Tastendruck. 
Benutzerfreundlich ist das aber nicht (Ein Nutzer der das Abschalten 
vergisst, zerstört damit evtl beide Controller)

Lösung: Ein Businterface à la i²c. Alle Controller geben den zu 
zeigenden Text da drauf, ein Slave (Controller) fängt es ab und 
speichert es. Bei Tastendruck wird dann der jeweilige Displaypuffer ans 
Display gesendet.

Netter Nebeneffekt: Jeder Controller braucht dafür nur 2 Pins (SDA & 
SCL) zur Verfügung zu stellen, statt jetzt 4x Daten + RS + E + 
Tasteneingang

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.