Hallo,
wie kann ich eine Wahrheitstabelle zu einer Logikverknüpfung
konvertieren/ausrechnen, vielleicht gibt es ein Programm wo ich die
Tabelle manuell eingeben kann, und daraus eine logische Verknüpfung
generiert.
A,B,Z,U,V,W sind Eingänge
C ist Ausgang
Oder wie gehe ich vor, kann mir es einer sagen?
Anfänger schrieb:> bekomme ich das hier raus:> ~c & e & ~f v ~c & d & ~f v ~c & ~e & f v ~d & e & f>> Kann es stimmen?!
Probiers aus!
nimm eine Zeile nach der anderen aus deiner Tabelle, setze die Werte
ein, werte den Ausdruck aus und vergleiche mit dem was rauskommen
müsste.
Schliesslich ist das deine Aufgabe und nicht unsere.
Kann nicht Stimmen, C ist doch dein Ausgang, der kann dann dann nicht
Plötzlich Eingang werden ;) du musst die Buchstaben des Programms noch
den echten Buchstaben zuweisen.
Und dann herausfinden welche Operation höherwertig ist.
Wenn du absolut nicht weiter weist, nimmst du dir am besten ein Blatt
Papier malst dir das was du da raus hast, als Logik Gatter auf. Dann
machst du alle Eingänge 0 und guckst was raus kommt, dann den Eingang W
eins, wieder gucken was raus kommt, dann den eingang V, dann W V usw
(binär hochzählen).
Das wären insgesamt 64 Zustände zum durchprobieren.
Wieso hast du eigentlich gleich eine Aufgabe mit 64 möglichen Zuständen
bekommen, wir sind damals ganz harmlos mit mit 2 angefangen und haben
uns tapfer hochgearbeitet.
Das ist wie das 1x1 das muss man einmal verstehen, dann zig mal anwenden
und dann kann man es nahezu auswendig.
ge-nka schrieb:> Logikkonverter im "Multisim" kann dir deine Wahrheitstabelle in> booleschen Ausdruck umwandeln oder in Logikbausteine und wieder zurück.
Danke, ab welcher version steht die Funktion zur Verfügung?
Oliver J. schrieb:> Ein EEPROM als LUT müsste auch gehen.> cpld aufbauen :-)
Von denn beiden Teilen habe ich ehrlich gesagt keine Ahnung,
es muss aber ziemlich klein sein am besten in einem 20pin ssop oder soic
Gehäuse.
Anfänger schrieb:> es muss aber ziemlich klein sein am besten in einem 20pin ssop oder soic> Gehäuse.
Was hast du eigentlich vor? Warum nimmst du nicht die Tabelle wie sie
ist und lässt den Ausgang dann direkt nach dieser Tabelle schalten? Das
wäre garantiert die einfachste und vom Programmablauf her schnellste
Variante.
Aber vielleicht ist dein Ziel etwas ganz anderes?
Markus W. schrieb:> Was hast du eigentlich vor?
die Daten stammen von Original opt. Encoder, ich will aber ein anderen
Encoder (anderer Hersteller) in System einbinden, daher bräuchte ich
dieses "C" Out, ohne diese Sygnal geht das ganze System nicht.
Markus W. schrieb:> Tabelle wie sie> ist und lässt den Ausgang dann direkt nach dieser Tabelle schalten? Das> wäre garantiert die einfachste und vom Programmablauf her schnellste
Das habe ich mir auch schon überlegt, A oder B an Eingang von µC mit
changen Interrupt, im Interrupt die Eingange A,B,Z,U,V,W auswerten
(Tabelle), und Ausgang C direkt schalten.
Die Frequenz ist ziemlich hoch von A oder B Signalen:
(15bit / 4) * 1500U/min = 12,288Mhz
Peter Dannegger schrieb:> Also mein Rechner sagt: 204,8kHz.> Das ist mit nem AVR zu schaffen.
(15bit / 4) * 1500U/min = 15bit ist die Auflösung pro Encoder/Umdrehung
(32758 / 4) * 1500 = 8192 * 1500 = 12288000 Hz (max Frequenz)
Yalu X. schrieb:> Sind alle im ersten Beitrag nicht aufgeführten Eingangskombinationen> don't-care? Wenn ja, dann löst ein halber 74HC153 das Problem.
Nein, es sind noch einmal genau soviel in eine andere Richtung.
Ist es mit zwei halben 74HC153 zu lösen, und wie?
Anfänger schrieb:> Nein, es sind noch einmal genau soviel in eine andere Richtung.
Ich verstehe zar nicht ganz, was du damit meinst, kann aber mir gut
vorstellen, dass die restlichen Kombinationen der gleichen Regel
gehorchen.
So funktioniert es jedenfalls mit den von dir aufgelisteten
Kombinationen:
1
A — S0
2
B — S1
3
U — 1I0
4
V — 1I1
5
W — 1I2
6
Z — 1I3
7
C — 1Y
8
5V — VCC
9
GND — GND
10
GND — 1/E — 2/E 0 — 2I0 — 2I1 — 2I2 — 2I3
Mit A und B wird selektiert, welches der Signale U,V, W und Z zum
Ausgang C geschaltet wird. Die letzte Zeile dient nur dazu, die
unbenutzten Eingänge des zweiten Multiplexers auf definierte Pegel zu
legen.
> Ist es mit zwei halben 74HC153 zu lösen, und wie?
Probier mal aus, ob die obige Logik auch für die restlichen Kombinatio-
nen funktioniert. Wenn nicht, dann poste mal alle Kombinationen.
Oliver K. schrieb:> 1 U/min = 1 U/60s -> 1500 U/min = 1500 U/60s = 25 U/s>> -> (32758 / 4) * 25 U/s = 8192 * 25/s= = 204800/s = 204,8kHz> (Umdrehungen ist keine Einheit)
Ja, stimmt ich hab vergessen durch 60 zuteilen..
Rechenfehler, dann ist natürlich kein Problem, das packt locker der µC..
Yalu X. schrieb:> Mit A und B wird selektiert, welches der Signale U,V, W und Z zum> Ausgang C geschaltet wird. Die letzte Zeile dient nur dazu, die> unbenutzten Eingänge des zweiten Multiplexers auf definierte Pegel zu> legen.
Ja vielen Dank, versuche ich morgen zu simulieren,
Bei original encoder ist, ein 16pin IC, Hersteller hat eigene
Bezeichnung, daher unbekannt, aber am PIN 9 und 10 hängt ein 12Mhz
Quarz, ich dachte ist vielleicht eine programmierte Logik, µC oder
ähnliches.
Wenn das ganze sowieso in einen Logikchip rein muss, dann lass' die
händische Minimierung sein. Die Tabelle sieht in ABEL so aus:
1
Truth_Table
2
//IN IN IN IN IN IN Out
3
([A, B, Z, U, V, W] -> C)
4
5
[0, 1, 1, 0, 1, 1] -> 1;
6
[1, 1, 1, 0, 1, 1] -> 1;
und so weiter... Mit der gesetzten Option @DCSET (Lattice
ispLever/Synario) nutzt der Compiler die freien Zeilen für Don't care.
Die erzeugten Gleichungen kann man sich anschauen, aber wozu auch...
Ansonsten gibt Deine Tabelle ein ziemlich großes KV-Symmetriediagramm
(gegenüber KV-Tafeln geht das auch mit 5,6, 7.. Variablen).
Ich habe mal ein Diagramm für 6 Variablen angehängt. Die Feldindizes
sind hierbei in hexadezimaler Schreibweise, so erkennt man die
Symmetrien viel besser. Feld 18 ist z.B. Symmetrisch zum Feld 38, man
kann aber auch die Felder 7, 17, 27 und 37 ale 4er-Block zusammenfassen.
Wichtig ist, dass man seine Variabeln in der Tabelle und im Diagramm so
anordnet, wie im Beispiel. Bei deiner Schaltung wäre dann a=W, b=V...
A=f. Der Feldindex für eine Zeile ist einfach die Hex-Zahl mit den 6
Binärstellen f..a. Viel Spass beim Tüfteln!