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
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.
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
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?
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
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
> 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
Danke für die Hinweise. Dann werde ich wohl nicht umher kommen, mich mit den Bussytemen anzufreunden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.