Hallo allseits,
Irgendwie stehe ich völlig auf dem Schlauch. Ich habe ein Problem und
weiß nichtmal, wie ich es ansatzweise lösen könnte.
Ich habe 5 Eingangssignale und benötige ein High Ausgangssignal, wenn
höchstens 3 dieser Signale High sind.
Bei 4 oder 5 Leitungen auf High soll der Ausgang also auf LOW liegen.
Die Schaltung müsste also die Anzahl der aktiven Signale zählen können.
Wie kann man dieses Problem mit diskreten oder TTL/CMOS Bausteinen
lösen?
Ich würde ja einen uC benutzen, der kommt aber auf Grund eines Vetos
nicht in Frage.
So auf die Schnelle kommt mir nur eine analoge Lösung in den Sinn, z.B.
zwei OP's, einen als Addierer und den anderen als Komparator beschalten.
Bin mal gespannt, was dir hier epfohlen wird!
> Wie kann man dieses Problem mit diskreten oder TTL/CMOS Bausteinen
lösen?
Der Lehrer möchst sicherlich die stumpe Methode, Gleichungen
aufstellungen, minimieren, Schaltung mit AND/OR/NOT aufbauen,
damit du zeiugen kannst, daß du Quine-McCluskey verstanden hast.
Warum zählen? Einfache Logik löst das Problem doch auch. Wertetabelle
erstellen und Gleichung ableiten. Vereinfachen und dann lässt es sich
sicher mit Grundgattern realisieren.
uro schrieb:
> Warum zählen? Einfache Logik löst das Problem doch auch. Wertetabelle> erstellen und Gleichung ableiten. Vereinfachen und dann lässt es sich> sicher mit Grundgattern realisieren.
Daran dachte ich zuerst auch. Aber es könnten ja quasi alle Leitungen
High werden. Aber immer nur max. 3 auf einmal.
edit
Hab mich sicher blöd ausgedrückt :D
Egal ich denke logisch geht da nix.
5 Eingangtssignale macht 32 mögliche Zustande. Mit einem 32 aus 5
Dekoder (notfalls aus kleineren Einheiten zusammensetzen), lässt du dir
das in die 32 möglichen Ausgänge aufdröseln und führst alle gültigen
Ausgangskombinationen mit ODER wieder zusammen.
>5 Eingangtssignale macht 32 mögliche Zustande. Mit einem 32 aus 5>Dekoder (notfalls aus kleineren Einheiten zusammensetzen), lässt du dir>das in die 32 möglichen Ausgänge aufdröseln und führst alle gültigen>Ausgangskombinationen mit ODER wieder zusammen.
Oder klassisch:
Karnaugh-Tafel.
>Da könnte dann auch>festgelegt werden, wass passieren soll, wenn alle Eingänge 0 sind.
Das ist doch festgelegt:
>>Ich habe 5 Eingangssignale und benötige ein High Ausgangssignal, wenn>>höchstens 3 dieser Signale High sind.
karadur schrieb:
> Hallo>> was ist denn wenn nur 2 Eingänge H sind?
Anofrderung lesen
> benötige ein High Ausgangssignal, wenn höchstens 3 dieser> Signale High sind
höchstens. 2 high -> Ausgang ebenfalls high.
karadur schrieb:
> was ist denn wenn nur 2 Eingänge H sind?
Aus dem OP:
>>> ein High Ausgangssignal, wenn höchstens 3 dieser Signale High sind.
Hmmm...
EDIT:
Pech, Zweiter, dafür aber ohne Typo ;-)
> Anofrderung
Der Ausgang soll null werden wenn 4 oder 5 Signale '1' sind, richtig?
a b c d e | q
0 1 1 1 1 | 0
1 0 1 1 1 | 0
1 1 0 1 1 | 0
1 1 1 0 1 | 0
1 1 1 1 0 | 0
1 1 1 1 1 | 0
Sonst ist q immer '1'. Das ergibt als die Gleichung:
\(\a*b*c*d*e + a*\b*c*d*e + a*b*\c*d*e + a*b*c*\d*e + a*b*c*\d*e +
a*b*c*d*\e + a*b*c*d*e)
\ = not
* = and
+ = or
Das wäre doch mit diskreten Gattern einfach aufzubauen.
Hab ich irgendwo einen denkfehler?
Peter Bünger schrieb:
> Die unterste Zeile ist überflüssig.
Aber nur, wenn die Gleichung umgestellt wird:
\(b*c*d*e + a*c*d*e + a*b*d*e + a*b*c*e + a*b*c*d)
EDIT:
Der war/ist doppelt: a*b*c*\d*e
>High Ausgangssignal, wenn höchstens 3 dieser Signale High sind.
bedeutet doch auch:
High-Ausgang, wenn mindestens zwei Eingangs-Signale LOW sind.
Ein NOR-Gatter mit zwei Eingängen /(a+b) geht nur auf High
wenn beide Eingänge LOW sind.
also prüfen wir alle 10 Kombinationen
und verODERn die Ergebnisse der NORs:
/(a+b) + /(a+c) + /(a+d) + /(a+e)
+ /(b+c) + /(b+d) + /(b+e)
+ /(c+d) + /(c+e)
+ /(d+e)
Dazu bräuchte man zehn NOR und
zehn Dioden für ein Wired-OR mit 10 Eingängen.
Mfg Willi
\ = not
* = and
+ = or
WOW!
Ich bin ja völlig erschlagen von eurer Kompetenz und Hilfsbereitschaft.
Ihr habt mit sehr weiter geholfen. Es ging nicht darum einen Lehrer zu
befriedigen sondern in eine bestehende Applikation eine Zusatzfunktion
einzufügen.
Ich werde es diskret anhand der Logiktabelle aufbauen, das passt am
besten zu dem bisher Bestehenden. Ohne euch hätte ich da gar nicht
ernsthaft drüber nachgedacht, da ich der Meinung war, dass ich dafür
mindestens hundert Gatter brauchen würde.
Nochmal danke, dass ihr mir auf die Sprünge geholfen habt!!
Tolles Forum!
>Ich werde es diskret anhand der Logiktabelle aufbauen,
Also bevor Du dir eine riesen Leiterplatte mit diskreter Logik
vollstopfst würde ich die Lösung mit einem Komperator von Lothar Miller
vorziehen.
Ansonsten wäre ein CPLD oder ein kleiner uC das vernünftigste, VETO hin
oder her!!!
Peter schrieb:
> Ansonsten wäre ein CPLD ... das vernünftigste, VETO hin oder her!!!
ACK, denn in dieses CPLD könnte noch einiges an zusätzlicher Logik (die
jetzt noch drumrum aufgebaut ist) hineingepackt werden...
Peter schrieb:
> Also bevor Du dir eine riesen Leiterplatte mit diskreter Logik> vollstopfst würde ich die Lösung mit einem Komperator von Lothar Miller> vorziehen.
Übertreib mal nicht so.
Anbei die Schaltung mit nur 3 TTL-ICs.
Peter
Gast schrieb:
> Das Ergebnis müsste noch mal invertiert werden, oder ?
Ja, ich hab den falschen IC gegriffen.
IC1 muß natürlich ein 74HC86 (EXOR) sein!
Peter
>>Anbei die Schaltung mit nur 3 TTL-ICs.>Das Ergebnis müsste noch mal invertiert werden, oder ?
Das sehe ich auch so, da wären wir also doch wieder bei 4 TTL-ICs
gegenüber einem Komperator im SO-8 Gehäse
So, jetzt die richtige Schaltung.
Der IC1B macht die Invertierung.
Hab ja schon ewig nichts mehr mit TTL gemacht, daher die Verwechslung
74HC86 mit 74HC32.
Peter