Dioden-Schaltung optimieren

Gast #20496
Hallo

Auf meiner Modelleisenbahn sind Kontakte, die über einenOptokopler die 
Gleisbesetzt-
Meldung an einen AVR 2313 weiterleiten (LOW-Pegel)

Interrupt-Routine für INT0 liest den PortD ein und aktiviert PortB 
(einschalten )
(Ausgangs-Situation INT0 = HIGH und wird durch den gleichen LOW-Pegel, 
der an die PortD-pins gelangt, aktiviert)

Interrupt-Routine für Timer0  schaltet den PortB wieder aus.
(Diese zeitliche Verlängerung/Verzögerung der Signale am PortB ist 
erforderlich, damit die
Signale von der Steuersoftware im PC sicher erkannt werden können ? 
Stichwort ?polling?)

Da mehrere Kontakte gleichzeitig eingeschaltet werden können, gelangen 
auch mehrere pins am PortD gleichzeitig auf LOW

Alle Leitungen, die zu den pins des PortD führen, führen natürlich auch 
zu INT0
Damit sind die einzelen pins des PortD hardwaremäßig zusammengeschaltet.

Damit sich die einzelnen pins des PortD nicht gegenseitig aktivieren, 
habe ich eine
entsprechende Dioden-Schaltung vorgeschaltet (vergleiche beigefügte 
Schaltung)

Ich hoffe, dass ich die Ausgangs-Situation einigermaßen verständlich 
dargestellt
habe.

Die eingesetzte Lösung funktioniert zwar,  aber ?

Nun meine Frage:

Gibt es eine andere schaltungstechnische Lösung und / oder ein Bauteil 
mit dem diese
Aufgabenstellung optimaler lösbar wäre ?

Insbesondere, um den damit verbundenen Platzbedarf und den Aufwand 
hierfür zu optimieren

Wäre für Hinweise sehr dankbar


Günter
Angehängte Dateien:
Gast #20497
hi guenter

Du mußt also die Eingänge mit AND verknüpfen?
Ein AND mit 8 Eingängen hab ich jetzt nicht sofort gefunden. Du könntest 
aber

a) ein NAND nehmen (74 30) und den Interrupt bei High auslösen. Aber ob 
das einfacher als die Diodenschaltung ist?

b) Port D im Polling betreiben, keine weitere Hardware.

Peter
Gast #20498
hallo,

was du realisieren willst, nennt man einen Sammelinterrupt. Dazu müssen 
aber die 8 Eingänge mit einem logisch 8-fach OR (nicht AND wie in der 
ersten Antwort) verknüpft werden.

Aber wie schon der erste Antworter feststellte:
     Einfacher als mit Dioden ist das nicht ;)

Robert
Gast #20499
hallo zweiter Antworter,

Du hast mit dem OR ein Zugunglück verursacht.
AND ist schon richtig, die Signale sind LOW-Aktiv. Der Ausgang wird LOW 
wenn mind. 1 Eingang LOW ist.

Peter
Gast #20501
Hallo

Vielen Dank an alle Antworter für die Hinweise;

Ich würde gerne mal eine Alternative mit Hilfe eines
AND-Gatters probieren !!!

bisher habe ich als Typ gefunden

7421 (2 x 4-input and-gate)

gibt es auch Typen wie 1 x 6-input oder 1 x 8-input
und wer käme als Lieferant in Frage ??

Vielen Dank nochmals - auch für evtl. weitere Info's

Günter
Gast #20502
Sali Günter
Nimm doch einfach einen Buffer mit Open-Collector, z.B 7407 den gibts in 
6-facher Ausführung. Die Ausgänge einfach alle zusammenschalten und noch 
einen Pullup-Widerstand ranhängen.
Oder wenn mich nicht alles täuscht ist es sogar zulässig die Ausgänge am 
gleichen IC kurzzuschliessen, so dass du dir aus dem besagten Baustein 
die Anzahl der Eingänge selbst zusammenstellen kannst. z.B. 2x4, 1x2 + 
1x6 oder 1x8 Eingänge. Erfahrung damit habe ich jedoch keine.
Hoffe gehilft zu haben
Gruss Stefan

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 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.