Das Modul M030 (EPROMMER) ist ausgelegt, um EPROMs von 2KByte (2716) bis 64KByte (27512) zu programmieren.
In vielen älteren Geräten (nicht im KC85 selbst) sind aber auch 1K-EPROMs 2708 bzw. deren DDR-Vergleichstyp U555C eingesetzt.
Dazu wird hier ein Adapter vorgestellt.
1K-EPROMs mit dem M030 auslesen und brennen
Um 1K-EPROMs ebenfalls am M030 nutzen zu können, müssen einige zusätzliche Voraussetzungen geschaffen werden.
Das sind von der Hardware:
- Bereitstellung einer zusätzlichen Betriebsspannung von -5V (Ubb, Pin 21)
- Bereitstellung einer zusätzlichen Betriebsspannung von +12V (Udd, Pin 19)
- Einhaltung einer definierten Einschaltreihenfolge der Spannungen: zuerst die -5V und danach die +5V und +12V
- Abschaltung in umgekehrter Reihenfolge, die -5V also zuletzt.
- Programmierspannungsimpuls von +25V an Pin 18
- +12V an Pin 20 um den Programmiermodus des EPROMs zu erreichen
Und von der Software Einhaltung eines fest vorgeschriebenen Programmieralgorithmus:
- je Adresse ein Programmierimpuls von 1ms
- 100maliger Durchlauf aller 1024 Adressen
Längere Programmierimpulse und kürzere Wiederholungen der gleichen Adresse könnten diese ältere Generation EPROMs zerstören.
Zur Realisierung gibt es zwei Ansätze.
1.
Erstellung eines Programmieradapters, der die Signale beim Lesen und Brennen eines 2K-EPROMs 2716 verwendet und daraus die nötigen Signale für den 1K-EPROM 2708 erzeugt. Diese Variante hat Wolfgang Harwardt verfolgt und einen Adapter mit zwei kleinen Platinen entwickelt, der auch auf anderen EPROM-Brennern funktionieren könnte. Zur Sicherheit wird dort selbst der Programmierimpuls in Hardware auf eine maximale Länge von 1ms begrenzt.
2.
Erstellung eines Programmieradapters speziell NUR für das M030. Dabei können alle Hardwaremöglichkeiten des M030 ausgenutzt werden um die Zusatzhardware des Adapters so einfach wie möglich zu halten. Den Rest übernimmt die Software.
Diese Variante habe ich verfolgt und einen Adapter auf einer einzigen Platine entwickelt.
Zur Schaltung meines Adapters:
Das M030 besitzt einen 28poligen Programmiersockel, bei dem sich Pin 26 (für die kleineren EPROMs 2716 und 2732) separat als Versorgungsspannung zuschalten lässt. Pin 28 ist dagegen immer an +5V sobald irgend ein EPROM mit Ucc versorgt wird. Diese Tatsache nutze ich aus, indem ich aus den +5V an Pin 28 mittels DC/DC-Converter die -5V erzeuge und direkt an Pin 21 der 2708-Fassung anlege. Außerdem wird aus diesen +5V mit einem zweiten DC/DC-Converter eine +12V-Spannung erzeugt, aber noch nicht am EPROM angelegt.
Die Software wartet jetzt eine kurze Zeit, bevor die +5V auch an Pin 26 angelegt werden. Diese +5V gehen jetzt direkt zu Pin 24 der 2708-Fassung und schalten ein Reedrelais, welches die +12V an Pin 19 der 2708-Fassung anlegt.
Damit wird die verzögerte Zuschaltung der +5V und +12V realisiert.
Beim Abschalten ist ebenfalls eine kleine Verweilzeit in der Software realisiert um sicherzustellen, dass die -5V auch als letztes noch anliegen am 2708.
Das Pin 22 des M030-Programmiersockels kann einen Vpp-Impuls liefern, da dieser für die EPROM-Typen 2732 und 27512 dort benötigt wird. Demnach habe ich mich dazu entschieden, den Programmierimpuls direkt an diesem Pin der M030-Fassung abzuleiten und zu Pin 18 der 2708-Fassung zu leiten.
Nun fehlt noch die +12V-Spannung für das Pin 20 der 2708-Fassung. Dazu schalte ich einen Widerstand von +12V zu diesem Pin 20. Um diesen High-Pegel beim Lesen des EPROMs auf Low umzuschalten, ist ein npn-Transistor von Pin 20 nach Masse geschaltet. Wird dieser Transistor nun angesteuert, dann ist Pin 20 des 2708-Adapters auf dem benötigten Low-Pegel. Die Ansteuerung des einzigen Transistors auf der Adapterplatine erfolgt durch ein High-Signal von Pin 20 des M030-Adapters. Die entsprechende Steuerung der Signale ist in der Software realisiert.
Damit ist die Funktion des einfachen Adapters bereits realisiert.
Zur Erhöhung des Komforts habe ich dann noch drei LEDs zur Anzeige der am 2708 anliegenden drei Versorgungsspannungen vorgesehen.
Je eine Z-Diode am Ausgang der DC/DC-Converter soll dafür sorgen, dass die Spannungen im Leerlauf nicht über die maximal zulässige Spannung ansteigen. Drei optionale Kondensatoren sind am Eingang und an den Ausgängen der DC/DC-Converter vorgesehen um die Spannungen bei Bedarf noch etwas zu stabilisieren.
Die Schaltung findet auf einer kleinen Platine Platz, welche an der Unterseite zwei 14polige Stiftleisten hat, die in die 28polige Fassung des M030 gesteckt werden.
Diese beiden Stiftleisten sind als erstes zu bestücken und die Lötstellen genau zu prüfen. Denn nach der Bestückung der Schwenkhebelfassung auf der anderen Seite der Platine kommt man nachher nicht mehr an die Lötstellen der einen Stiftleiste heran. Die Kerbe in der Platine ist für den Platz des Schwenkhebels der unteren Fassung des M030. (Übrigens passt mein 2708-Adapter nur auf M030-Module, bei denen die Fassung ebenfalls mit Hebel nach rechts bestückt ist, sonst lässt sich die Adapterplatine nicht aufstecken!)
Die Bestückung der anderen Bauelemente einschließlich der 24poligen Schwenkhebelfassung für den 1K-EPROM erfolgt auf der Oberseite der Platine. Komplett bestückt sieht das dann so aus:
Und so sieht der Adapter auf dem im KC85 gesteckten M030 aus. Rechts sind die beiden nach unten geschwenkten Hebel der EPROM-Fassungen erkennbar:
Übrigens sind in der M030-Programmiersoftware (Stand 29.02.2016) beide Varianten der 2708-Adapter berücksichtigt worden.
Bei der Auswahl des 1K-EPROMs wird der Adapter einfach mit ausgewählt durch Angabe eines zusätzlichen Parameters:
>EPROM 1 A wählt meinen Adapter aus und
>EPROM 1 B wählt den Adapter von Wolfgang Harwardt aus.
Der gewählte Adapter wird dann auch in der Statuszeile der am Bildschirm mit angezeigt zur Kontrolle.
Der Funktionstest meiner Schaltung erfolgte durch Auslesen eines U555C mit bekannter Prüfsumme und brennen dieses Inhalts in einen leeren EPROM vom gleichen Typ U555C. Andere EPROM-Typen stehen mir zum Testen momentan nicht zur Verfügung.
Mario Leubner
01.03.2016