www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ein Display für mehrer Controller


Autor: Andreas R. (08fresh15)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: K. J. (theborg0815) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Chris R. (hownottobeseen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas R. (08fresh15)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas R. (08fresh15)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Phantomix Ximotnahp (phantomix) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Andreas R. (08fresh15)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hinweise. Dann werde ich wohl nicht umher kommen, mich mit 
den Bussytemen anzufreunden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.