RAM/EPROM-Simulator PEPS-III von Conitec

Ein RAM/EPROM-Simulator simuliert, wie der Name schon andeutet, einen RAM oder EPROM in der Schaltung. Solche Simulatoren machen sich zu Nutze, dass EPROMs typischerweise gesteckt (nicht eingelötet) werden, da man sie zum Löschen und Programmieren zumeist ausbauen musste. (In-System-Programmierung war damals, um 1995, noch nicht üblich.)

Man spart sich damit bei der Programmentwicklung den umständlichen Steck- und Löschzyklus für den EPROM für jedes Programm-Update. Mit dem Aufkommen von Flash-Speichern ist das Problem heutzutage weitestgehend verschwunden. Trotzdem ist RAM beim Schreiben immer noch schneller als Flash.

Weiterhin sind die unterschiedlichen EPROM-Typen trotz unterschiedlicher Speichergröße weitestgehend pinkompatibel, was die Konstruktion von Programmiergeräten als auch Simulatoren erleichtert.

Schließlich wurden statische RAM-Schaltkreise pinkompatibel zu EPROMs hergestellt. Diese haben nur einen zusätzlichen Anschluss zum Beschreiben (WE). Daher ist ein RAM-Simulator eine einfach realisierbare Bonus-Funktionalität eines EPROM-Simulators. Dynamische RAMs können damit nicht emuliert werden.

Ausgelesener Schaltplan (Eagle), ohne Gewähr!

Kurze Zusammenfassung

Der Simulator hat folgende Eigenschaften:

Und er hat folgende Besonderheiten bzw. Kuriositäten:

Neue Software (für Windows-Konsole und Linux)

Hier noch mal der Schaltplan des PEPS-III als Vektorgrafik (WMF).

Der Zweck dieser Arbeit ist, diesen unverändert auch mit einem konventionellen, preiswerten USB-Drucker-Konverter zu betreiben. Eine einfache Anpass-Schaltung mit 74HCT374 und 74HCT74 (Eagle-Quelle, letzteres nur zur Geschwindigkeitssteigerung von RAM-Lesevorgängen) ist dazu nötig und passt fliegend verdrahtet in ein SubD25-Selbstbaugehäuse.
Gesamtaufbau

Eine Alternative wäre der Betrieb an einem USB2LPT (nur High-Speed sinnvoll) mit Gender-Changer und spezialisierter Firmware. Die Schreib- und Lesegeschwindigkeit erreicht damit über 100 kByte/s, viel mehr als mit einem konventionellen Parallelport möglich ist.

Da USB Full-Speed für den Datentransport ausreichend erscheint, kann man auch eine eigenständige Mikrocontroller-Anbindung mit einem USB-Controller entwickeln, etwa mit AT90USB162.

Die Zugriffsmöglichkeiten zusammengefasst (Zeiten: Parameter z = 1, Celeron 2,8 GHz):

SoftwareInterfaceDOS Windows 9x/MeWindows NT/2k/XP/Vista/7/8Windows XP/Vista/7/8 64 bitLinux
Conitec
peps3.exe
Parallelport, Direktzugriff W: 25 kByte/s
R: 19 kByte/s
(mit EMM386.EXE)
W: 31 kByte/s
R: 24 kByte/s
(Celeron 1,1 GHz)
W: 14 kByte/s
R: 7 kByte/s
mit Portzugriffs-Treiber DirectNT
geht nicht, kein DOS kein
Linux-
Programm
Heimo Schön
peps für Linux
kein
DOS-
Programm
kein Windows-Programm mit ioperm()
meine Version
(haftmann#software)

Windows:
peps.exe
win9x/peps.exe
win64/peps.exe

Linux:
peps.x86
peps.amd64
-d0: Parallelport, Direktzugriff ja mit Portzugriffs-Treiber DirectNT (eincompiliert) geht nicht, giveio64 war noch nicht erfunden mit ioperm()
-d1: Parallelport, inpout32.dll ja ja ja
(64-bit-EXE benötigt InpOutX64.dll)
via /dev/parportX
-d2: USB->Paralleldrucker-Konverter, Adapter, für Notebooks ja
ab Win98
W: 30 kByte/s
R: 0,8 kByte/s
Keine Admin-Rechte erforderlich!
W: 17 kByte/s
R: 1 kByte/s
via /dev/usb/lpX
-d3: USB2LPT High-Speed, für Notebooks ohne Firmware W: 20 kByte/s, R: 8 kByte/s
mit Firmware W: 100 kByte/s, R: 100 kByte/s
TODO (Treiberzertifizierungszwang deaktivieren) geplant: libusb

Für Parallelport unter Windows XP und Linux gibt es bereits auf der Conitec-Seite entsprechende Software.

Diese von mir überarbeitete Software hat folgende Features

Was noch fehlt:

Der derzeitige Quelltext setzt wahrscheinlich Intel-Architektur voraus, was wegen des Parallelports auch sinnvoll erscheint:

Siehe auch

Es gibt Leute, die das Fahrrad gerne nochmal erfinden, ohne vorher das WWW auf vorhandenes abzuklopfen.