www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Dioden-Schaltung optimieren


Autor: guenter (Gast)
Datum:
Angehängte Dateien:

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

Autor: Peter K. (Gast)
Datum:

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

Autor: Robert (Gast)
Datum:

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

Autor: Peter K. (Gast)
Datum:

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

Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay

Autor: guenter (Gast)
Datum:

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

Autor: Stefan (Gast)
Datum:

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

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.