-
        

Ergebnis 1 bis 5 von 5

Thema: Gibt es IC, die in der Lage ist, alle Bauteile zusammenpacke

  1. #1
    Gatter
    Gast

    Gibt es IC, die in der Lage ist, alle Bauteile zusammenpacke

    Anzeige

    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.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    09.06.2004
    Ort
    Rhein-Neckar-Raum
    Beiträge
    504
    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/softw..._baseline.html

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

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.11.2003
    Beiträge
    136
    Hallo,
    also nen FPGA zu nehmen ist Overkill, entweder ein GAL oder ein CPLD (ist dafür eigentlich auch schon zu gross)
    Gruß
    -=jens=-

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.06.2004
    Beiträge
    256
    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.?
    BlackBox

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    42
    Beiträge
    849
    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.

    Code:
      '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

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •