Forum: PC Hard- und Software Gatter in‘s EPROM


von Martin K. (Gast)


Lesenswert?

Verehrte Gemeinde!
Ich habe
1. EPROMs M27C512
2. Programmer Batronix BX32 incl. Software
3. Rechner mit Windows XP
4. folgendes altmodisches Anliegen:
Ich möchte (vorerst nur kombinatorische) binäre Verknüpfungen im EPROM 
speichern um so mehrere Gatter-IC einzusparen. Solange nur wenige (bis 
5) Eingänge (=Adressleitungen des EPROMs) genutzt werden, kann ich die 
Binärwerte (=Speicherinhalt des EPROMs) zu Fuß eintippen – in der 
Software zum Programmer gibt es eine editierbare Tabelle - Hexdump oder 
Binärdump (=“Bitmuster“). Wenige Eingänge geben natürlich kaum Sinn. 
Möchte ich die 15 zur Verfügung stehenden Adressleitungen nutzen, 
brauche ich ein Programm, das die Schreibarbeit macht. Ich stelle mir 
das so vor, wie ich es von der SIMATIC kenne: Gattersymbole (möglichst 
aktuelle DIN) aus einer Bibliothek kopieren, verbinden, Ein-u. Ausgänge 
beschriften. Dann berechnet das Programm das entstehende Bitmuster 
welches ich dann in einem Zug in die Tabelle der Programmer-Software 
kopiere. Das Programm sollte auch in der Lage sein, bei mehr als 8 
Ausgängen das Bitmuster zu teilen, um die entstehenden Teile in mehreren 
EPROMs zu speichern.
Kennt jemand geeignete Freeware?
Besten Dank im Voraus.

von Oliver R. (orb)


Lesenswert?

Martin K. schrieb:
> Kennt jemand geeignete Freeware?

Das das kaum der üblichen Nutzung von Eproms entspricht wirst Du da wohl 
wenig Glück haben. Vielleicht findest Du im Bereich PAL/GAL eine 
Software die auch Eproms kann.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Was du suchst, ist ein Programm, das automatisch Wahrheitstabellen
erstellt.

Martin K. schrieb:
> Ich stelle mir das so vor, wie ich es von der SIMATIC kenne:
> Gattersymbole (möglichst aktuelle DIN) aus einer Bibliothek kopieren,
> verbinden, Ein-u. Ausgänge beschriften. Dann berechnet das Programm
> das entstehende Bitmuster welches ich dann in einem Zug in die Tabelle
> der Programmer-Software kopiere.

Muss die Eingabe unbedingt graphisch sein?

Oder wäre es auch in Ordnung, die Funktion als logischen Term einzugeben
(was sowieso schneller von der Hand geht)?

Letzteres kann man, falls du kein fertiges Programm dafür findest, in
ganz wenigen Zeilen in einer (fast) beliebigen Programmiersprache selber
zusammenhacken.

von Martin K. (Gast)


Lesenswert?

Grafisch wäre schön weil ich da den Überblick behalte.
Boolsche Funktionen gehen auch mit excel. UND,ODER,Negation einzeln ist 
kein Problem, in der Praxis hat man aber derer mehrere hintereinander, 
auch mit mehr als 2 Eingängen. Wer hat dann in der excel-Formel noch den 
Durchblick? Folgendes Horrorszenareo: Am Ende des Projektes stellt man 
fest, dass man eine der Verknüpfungen in einem Detail ändern muss, dann 
möchte ich keine Excel-Formel auseinanderpflücken sondern mal eben nur 
ein Gattersymbol durch ein anders ersetzen.

von uwe (Gast)


Lesenswert?

Nimm ein CPLD!

von RFIDler (Gast)


Lesenswert?

So eine "Zweckentfremdung" von EProms war früher durchaus üblich.
Da gab es sogar komplexe Schaltwerke durch Rückführung von 
Datenleitungen auf Adressleitungen.
An der Hochschule gab es eine Software dafür, die lief noch unter DOS.
Ich glaube die hieß LOG/IC.
Da gab es Module für PLD ,Gals ,FlipFlop Schaltwerke Eproms u.s.w für.
Eingabe waren Logictabellen oder Logische Gleichungen.

Bei der Googlesuche danach habe ich folgendes gefunden.
http://www.fh-sw.de/sw/fachb/et/hauptseite/fakultaet/studisoft/logic2.htm
Vielleicht ist da ja was dabei.

von Georg (Gast)


Lesenswert?

Yalu X. schrieb:
> Was du suchst, ist ein Programm, das automatisch Wahrheitstabellen
> erstellt.

Exakt, aber die meiste Software die ich kenne macht das umgekehrte, 
nämlich aus einer Wahrheitstabelle eine Gatterschaltung (ein 
programmiertes CPLD besteht ja aus entsprechend verschalteten Und- und 
Oder-Gattern).

Wenn da nichts fertiges zu finden ist, könnte man sich das auch aus 
einer solchen Software zurechtschnitzen: man nehme eine IDE von Altera, 
Lattice usw. (Vorsicht, riesig!) und, gebe die Schaltung wie gewünscht 
ein (Gatter, VHDL,...) für ein passendes Device. Wenn man Testvektoren 
erstellt, die alle Eingabekombinationen umfassen, erhält man die 
Wahrheitstabelle der synthetisierten Schaltung. Allerdings ohne 
Optimierung.

Georg

von hauspapa (Gast)


Lesenswert?

Warum ruft eigentlich niemand "Nimm einen Mikrocontroller"?
Bei aller Liebe zu alten Bausteinen willst Du ja scheinbar etwas 
bestehendes neu machen.

Wenn es das Timing hergibt ist ein hübscher AVR mit internem Oszillator 
an dieser Stelle das Mittel der Wahl.

schlagt mich jetzt bitte nicht tot
Hauspapa

von Yalu X. (yalu) (Moderator)


Lesenswert?

Martin K. schrieb:
> Grafisch wäre schön weil ich da den Überblick behalte.

Ich persönlich überblicke solche Dinge besser als Formeln. Natürlich
nicht als einen einzelnen Term, der kaum auf einer Bildschirmbreite
Platz hat, sondern nach logischen Gesichtspunkten aufgeteilt in mehrere
Unterterme.

Aber da hat jeder einen anderen Geschmack :)

> Boolsche Funktionen gehen auch mit excel. UND,ODER,Negation einzeln ist
> kein Problem, in der Praxis hat man aber derer mehrere hintereinander,
> auch mit mehr als 2 Eingängen. Wer hat dann in der excel-Formel noch den
> Durchblick?

Excel hat halt das Problem, dass die Formeln normalerweise gar nicht
sieht, und wenn man sie sichtbar macht, werden sie völlig unstrukturiert
in einer einzelnen Zeile angezeigt. Die Unterteilung in mehrere Formeln
geht zwar, allerdings möchte man dann den einzelnen Teilen anstelle von
A1 oder B3 aussagekräftige Namen geben, was in Excel nur umständlich
machbar ist.

Einen Grafikeditor für logische Schaltnetze, der Wahrheitstabellen in
einem für den EPROM-Programmierer geeigneten Format generiert, kenne ich
nicht und habe auf die Schnelle auch im Netz keinen gefunden.

Es wäre prinzipiell noch möglich, einen x-beliebigen Diagramm- oder
Schaltplaneditor zu verwenden, der die Schaltung in einem einfachen
Netzlistenformat exportieren kann. Man könnte dann ein kleines
Progrämmchen schreiben, das aus dieser Netzliste die EPROM-Datei
generiert. Welche Ausgabeformate unterstützt denn die von dir
liebgewonnene SIMATIC-Software? Vielleicht kann man darauf irgendwie
aufbauen.

uwe schrieb:
> Nimm ein CPLD!

Das wäre die neumodische Variante. Ich nehme aber an, dass Martin diese
bereits kennt, sonst hätte er seine eigene nicht als altmodisch
bezeichnet ;-)

Aber wie Georg bereits geschrieben hat, kann man evtl. eine
CPLD-Entwurfssoftware auch für EPROMs missbrauchen.


RFIDler schrieb:
> So eine "Zweckentfremdung" von EProms war früher durchaus üblich.
> Da gab es sogar komplexe Schaltwerke durch Rückführung von
> Datenleitungen auf Adressleitungen.

So etwas wurde bspw. im Diskettenlaufwerkscontroller des Apple II
gemacht. Das hat mich, als ich es zum erstan Mal sah, ziemlich
beeindruckt :)

von Martin K. (Gast)


Lesenswert?

Zum besseren Verständnis:
Ich erinnere mich grau an eine elektronische Steuerung für FESTO 
(Pneumatik) Baujahr etwa 1987. Vermutlich von einem Zulieferer. Die 
Platine war 100x160, hatte mittig ein EPROM (oder 2?), Ausgangstreiber 
(Transistoren), StatusLED für jeden Eingang u. Ausgang, das war's. Alles 
locker bebaut, ohne SMD. Angeschlossen waren eingangsseitig binäre 
Sensoren, Taster, Progammwahlschalter, ausgangsseitig PneumatikVentile 
oder Meldeleuchten. Damit hat die Maschine (inzwischen geschrottet) das 
gemacht, was sie sollte. Ohne Relais, ohne Rechner, ohne SPS oder das 
neumodische Zeug. Das war eine nach Kundenwunsch gefertigte 
Etikettiermaschine und sicherlich hat FESTO und andere Hersteller diese 
Platine tausendfach verwendet ohne die Bits einzeln in den EPROMer zu 
schreiben. Bestimmt gab es damals das von mir gesuchte Programm, ich 
möchte also nichts Altes neu erfinden.
Warum kein µC,PAL,GAL,PLD,FPGA,CPLD,...?
Da ich Selbst-Layouter (dank Target), Selbst-Ätzer (mit bescheidenen 
Möglichkeiten) und Selbst-Löter bin, bietet sich das altmodische 
DIL-Gehäuse an. Ich möchte auch keine zugekaufte Platine huckepack auf 
meine Platine bauen, so kann ich weder Platz und erst recht kein Geld 
sparen. Wenn es das gesuchte Progamm nicht gibt, mache ich eben weiter 
wie in den letzten 25 Jahren: CMOS 4xxx mit dem Nachteil, dass man 
nichts ändern kann.

von MaWin (Gast)


Lesenswert?

Martin K. schrieb:
> Warum kein µC,PAL,GAL,PLD,FPGA,CPLD,...?
> Da ich Selbst-Layouter (dank Target), Selbst-Ätzer (mit bescheidenen
> Möglichkeiten) und Selbst-Löter bin, bietet sich das altmodische
> DIL-Gehäuse an.

?!?

PAL und GAL gibt es sehr wohl in DIP,

http://www.reichelt.de/GALs-PALs/GAL-20V8-15LP/3//index.html?ACTION=3&GROUPID=2955&ARTICLE=8130&OFFSET=16&;

und auch PLCC lässt sich problemlos verwenden

http://www.reichelt.de/GALs-PALs/2/index.html?&ACTION=2&LA=3&GROUPID=2955;SID=14VBKr738AAAIAAAnWEDM8f6cd52692b18dd0645b4f7ff96c99f7

dank passender Sockel

http://www.reichelt.de/PLCC-20/3/index.html?&ACTION=3&LA=446&ARTICLE=26483&artnr=PLCC+20&SEARCH=fassung+plcc

und falls man einen einfachen Programmer braucht

http://www.armory.com/~rstevew/Public/Pgmrs/GAL/_ClikMe1st.htm

RFIDler schrieb:
> An der Hochschule gab es eine Software dafür, die lief noch unter DOS.
> Ich glaube die hieß LOG/IC.
> Da gab es Module für PLD ,Gals ,FlipFlop Schaltwerke Eproms u.s.w für.

Zumindest das aktuelle LOG/IC2 kann keine EPROMs
http://www.fh-sw.de/sw/fachb/et/hauptseite/fakultaet/studisoft/logic2.htm
Und die Version von 1995, die ich hier habe, klääst sich auf meinem 
Windoof natürlich nicht mehr installieren.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Weil mir gerade danach war, habe ich mal versucht, Spice-Netzlisten von
digitalen Schaltnetzen mit einem Python-Programm in EPROM-Dateien zu
überführen. Das funktioniert gar nicht einmal so schlecht:

Folgendes ist zu tun, um eine Binärdatei für den EPROM-Programmierer zu
erstellen:

1. Schaltung in LTspice zeichnen, dabei können AND-, OR und XOR-Gatter
   sowie Inverter verwendet werden. Die nicht benötigten Ein- und
   Ausgänge werden einfach unbeschaltet gelassen.

2. Einen Kommentar der Form "EPROM n a" einfügen, wobei n die Zahl der
   parallel genutzten EPROMs (um die Zahl der Ausgänge zu erhöhen) und a
   die Anzahl der Adressleitungen ist. Die Anzahl der Datenleitungen
   jedes EPROMs wird immer mit 8 angenommen. Für 16 Eingänge und 16
   Ausgänge sind zwei 27C512 (o.ä.) erforderlich, also ist im Kommentar
   "EPROM 2 16" anzugeben.

3. Die Eingänge der Schaltung mit A0, A1 usw., die Ausgänge D0, D1 usw.
   (entsprechend den Adressein- und Datenausgängen des EPROMs) benennen.
   Die Ausgänge D0-D7 werden dabei dem ersten, D8-D15 dem zweiten EPROM
   zugeordnet usw.

4. Menü "View / SPICE Netlist" anklicken. Dabei wird ein Fenster mit der
   Netzliste wird geöffnet und gleichzeitg die Netzliste in einer Datei
   namens <name>.net gespeichert, wobei <name> der Schaltplandateiname
   ohne die Endung .ASC ist.

5. In der Konsole das im Anhang befindliche Python-Programm starten und
   den Dateinamen der Netzliste als Argument übergeben:
1
   python eprom.py <name>.net

   Es werden zur Kontrolle die EPROM-Konfiguration und die gefundenen
   Ein- und Ausgänge der Schaltung angezeigt. Fehlt einer dieser
   Anschlüsse, liegt möglicherweise ein Fehler in der eingegebenen
   Schaltung vor.

Das Programm generiert für jedes zu programmierende EPROM eine Datei.
Die Dateien heißen
1
   <name>_0.bin   (für D0-D7)
2
   <name>_1.bin   (für D8-D15)
3
   usw.

Die Dateigröße ist jeweils 2 ** <Anzahl der Adressleitungen>.

Es müssen nicht alle verfügbaren Adress- und Datenleitungen genutzt
werden. In der Schaltung fehlende Adressleitungen werden als "don't
care", fehlende Datenleitungen auf statisch high gesetzt.

Als Beispiel habe ich in LTspice einen 8-Bit-Komparator eingegeben. Er
vergleicht die durch AH = A[15-8] und AH = A[7-0] gegebenen Zahlenwerte
und setzt die Ausgänge wie folgt:
1
  D0: high, wenn AH < AL
2
  D1: high, wenn AH ≥ AL
3
  D2: high, wenn AH = AL
4
  D3: high, wenn AH ≠ AL
5
  D4: high, wenn AH > AL
6
  D5: high, wenn AH ≤ AL
7
  D6: immer high
8
  D7: immer high

Das Programm ist nicht das schnellste, liefert aber auf meinem alten PC
für das Beispiel in knapp 30 Sekunden immerhin das richtige Ergebnis.

Leider gibt es in LTspice nicht die IEC-, sondern nur die ANSI-
Gattersymbole.

von Martin K. (Gast)


Lesenswert?

Das sieht schon mal gut aus.
Besten Dank dafür. Jetzt muss ich erstmal ANSI-
Gattersymbole lernen.
Da könnte man einen neuen Thread starten: Sind die Deutschen anormal was 
Schaltplansymbole betrifft, oder sind es die Anderen?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Martin K. schrieb:
> Jetzt muss ich erstmal ANSI- Gattersymbole lernen.

Naja, so arg viel zu lernen gibt es da auch wieder nicht :)

Wenn du möchtest, kannst du natürlich auch in LTspice neue Symbole
malen. Da es nur 4 Stück sind, ist das kein allzu großer Aufwand.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.