PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gibt es IC, die in der Lage ist, alle Bauteile zusammenpacke



Gatter
28.12.2004, 13:35
Ich habe hier:
5 NAND-Bausteine mit 2 Eingänge
8 UND-Bausteine mit 2 und 3 Eingängen
7 ODER-Bausteine mit 2 und 3 Eingänge

Ich möchte alle Bausteine zusammen in einem (programmierbare) IC packen lassen aus Platzgründen. Ist es möglich?
Es soll wie SPS funktionieren.

Danke für die Antworten.

avatar
28.12.2004, 13:45
Da nimmst du am besten das EPM7032. Das ist ein kleines FPGA von ALTERA. Man bekommt es im 44-poligen PLCC Gehäuse. Das kannst du entweder direkt aufs Board (SMD) löten oder in einen Sockel stecken.

Die Entwicklungs-Software (mit integrierten Schaltplan-Editor) kannst du von der ALTERA-Website ziehen. Die Software kann kostenlos genutzt werden.
http://www.altera.com/products/software/products/legacy/max/sof-emax_baseline.html

Das IC ist erhältlich bei http://www.farnell.de

DerInder
28.12.2004, 13:51
Hallo,
also nen FPGA zu nehmen ist Overkill, entweder ein GAL oder ein CPLD (ist dafür eigentlich auch schon zu gross)

BlackBox
01.01.2005, 23:44
Ohne mal nach ein paar Hintergründen zu fragen ist jede Antwort absoluter Blödsinn!

Was soll das Ganze denn bewirken?
Wie viele Eingänge?
Wie viele Ausgänge?
Wie sind die logischen Beziehungen zwischen Ein- und Ausgängen?
Wie schnell muss das Ganze sein?

Ich denke mal ein PIC oder ein AVR sollten das Ganze evtl. auch lösen können.?

BlueNature
02.01.2005, 04:56
Hallo!

Kannst auch einen EPROM nehmen. Dem beschreibst du jede Speicherstelle zu den Adressleitungen so geschickt das du nacher eine Logik hast, hab ich auch einmal gemacht. Es geht wirklich. Dann hast du die Adressleitungen als Eingänge (je nach Grösse des EPROMS) und die Datenleitungen als Ausgänge (eben nur 8 ). Denke nur das ist auch eine interessante Alternative zu einem GAL wenn man keinen GAL-Programmierer hat sondern nur einen EPROM-Brenner wie ich damals ;)

Das ist das Programm das ich damals geschrieben hatte unter QB 4.5 und es erzeugt durch die logischen Bedingungen am Anfang eine Logik für einen EPROM. Also ein HEX-File.



'EPROM-Typ definieren
EPROM.Max = 8191

'ORG-Anweisung schreiben
OPEN "c:\Ergebnis.DAT" FOR OUTPUT AS #1
PRINT #1, " .ORG 0"
CLOSE #1

ByteCounter = 1
First = 1

CLS

FOR Adresse = 0 TO EPROM.Max

LOCATE 1, 1
PRINT "Errechnete Bedingungen:"; (INT(((100 / 8191) * Adresse * 10)) / 10); "% "

'Aktuelle Adress-Bits errechnen
n = 1
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A0 = 1 ELSE A0 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A1 = 1 ELSE A1 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A2 = 1 ELSE A2 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A3 = 1 ELSE A3 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A4 = 1 ELSE A4 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A5 = 1 ELSE A5 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A6 = 1 ELSE A6 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A7 = 1 ELSE A7 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A8 = 1 ELSE A8 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A9 = 1 ELSE A9 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A10 = 1 ELSE A10 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A11 = 1 ELSE A11 = 0
Test = Adresse AND n: n = n * 2
IF Test > 0 THEN A12 = 1 ELSE A12 = 0

'Eing„nge definieren
MasterRxD = A0
Slave1RxD = A1
Slave2RxD = A2
Slave3RxD = A3
Slave4RxD = A4
MCRxD = A5
SelectA = A6
SelectB = A7
TF1Send = A8

'Ausg„nge vordefinieren bei FALSE
MasterTxD = 0
Slave1TxD = 0
Slave2TxD = 0
Slave3TxD = 0
Slave4TxD = 0
MCTxD = 0

'Logische Gleichung im EPROM (GAL/PAL-Logik)

'Abzweigung zum Microcontroller
MCTxD = MasterRxD

'Oberer 4-fach Schalter
IF SelectA = 0 AND SelectB = 0 AND MasterRxD = 1 THEN
Slave1TxD = 1
ELSE
Slave1TxD = 0
END IF
IF SelectA = 1 AND SelectB = 0 AND MasterRxD = 1 THEN
Slave2TxD = 1
ELSE
Slave2TxD = 0
END IF
IF SelectA = 0 AND SelectB = 1 AND MasterRxD = 1 THEN
Slave3TxD = 1
ELSE
Slave3TxD = 0
END IF
IF SelectA = 1 AND SelectB = 1 AND MasterRxD = 1 THEN
Slave4TxD = 1
ELSE
Slave4TxD = 0
END IF

'Unterer 4-fach Schalter
IF SelectA = 0 AND SelectB = 0 AND Slave1RxD = 1 THEN
Port9 = 1
ELSE
Port9 = 0
END IF
IF SelectA = 1 AND SelectB = 0 AND Slave2RxD = 1 THEN
Port9 = 1
ELSE
Port9 = 0
END IF
IF SelectA = 0 AND SelectB = 1 AND Slave3RxD = 1 THEN
Port9 = 1
ELSE
Port9 = 0
END IF
IF SelectA = 1 AND SelectB = 1 AND Slave4RxD = 1 THEN
Port9 = 1
ELSE
Port9 = 0
END IF

'Umschalter programmieren
IF Port9 = 1 AND TF1Send = 1 THEN
MasterTxD = 1
ELSE
MasterTxD = 0
END IF
IF MCRxD = 1 AND TF1Send = 0 THEN
MasterTxD = 1
ELSE
MasterTxD = 0
END IF

'Ausg„nge definieren
D0 = MasterTxD
D1 = Slave1TxD
D2 = Slave2TxD
D3 = Slave3TxD
D4 = Slave4TxD
D5 = MCRDI
D6 = 1
D7 = 1

'Ausg„nge errechnen
Datenbyte = 0
IF D0 > 0 THEN Datenbyte = Datenbyte + 1
IF D1 > 0 THEN Datenbyte = Datenbyte + 2
IF D2 > 0 THEN Datenbyte = Datenbyte + 4
IF D3 > 0 THEN Datenbyte = Datenbyte + 8
IF D4 > 0 THEN Datenbyte = Datenbyte + 16
IF D5 > 0 THEN Datenbyte = Datenbyte + 32
IF D6 > 0 THEN Datenbyte = Datenbyte + 64
IF D7 > 0 THEN Datenbyte = Datenbyte + 128

'Ausgangsbyte in Datei schreiben

'Format:
'-------
' .ORG Startadresse
' .BYTE Wert
' ...

OPEN "c:\Ergebnis.DAT" FOR APPEND AS #1
Wert$ = LTRIM$(STR$(Datenbyte))
PRINT #1, " .BYTE " + Wert$
CLOSE #1

NEXT Adresse

OPEN "c:\ERGEBNIS.DAT" FOR APPEND AS #1
PRINT #1, " .END "
CLOSE #1

END


Grüsse Wolfgang