Vor einiger Zeit blätterte ich in älteren Fachbüchern aus dem Franzis-Verlag und fand in einem Exemplar von Rolf-Dieter Klein [1] die Schaltung eines einfachen EPROM-Programmiergeräts für Handbetrieb für die Typen 2716 bzw. 2732, während in einem älteren Fachbuch von Burkhard Kainka [2] ein EPROM-Programmiergerät für EPROMs des Typs 2764 bzw. 27128 beschrieben ist, das von einem PC über dessen serielle Schnittstelle über ein Basic-Programm angesteuert wird. Ich beschloss aus beiden vorgefundenen Schaltungen Teile zu verwenden und ein EPROM-Lese- und Programmiergerät auf einem Steckboard aufzubauen. Ich suchte zusätzlich im Internet und fand dort auch Datenblätter der o. a. EPROMs [3]. Dies sind diejenigen Einzelheiten der Schaltung, die mit der Einstellung und Anzeige der Daten zu tun haben.
Dies ist die Ausführung auf einem Steckboard. Der weiße Mini-Dip-Schalter dient der Dateneingabe, während mit beiden blauen die EPROM-Adressen eingestellt werden. Befindet sich einer der acht einzelnen Miniaturschalter in der oberen Stellung, hat die zugehörige Ausgangsleitung High-Pegel und im anderen Fall Low-Pegel. Das eingestellte Bitmuster wird bei der Programmierung an der gerade eingestellten Adresse in das EPROM übernommen. Rechts daneben befinden sich der Baustein 74LS541 und die 8 Leuchtdioden, die vom darüber sitzenden IC 74LS540 angesteuert werden. Die orangenen Leitungen sind jeweils mit +5V verbunden, während die blauen an Masse, GND angeschlossen sind.

Die einzelnen Miniaturschalter der blauen Mini-Dip-Schalter sind alle außer A14 und A15 über die gelben Leitungen an die Adress-Pins des EPROMs angeschlossen. Über ihnen befindet sich jeweils wie beim weißen Mini-Dip-Schalter ein Widerstandsnetzwerk mit 8 parallelen Einzelwiderständen von je 10 k, deren gemeinsamer Anschluss an + 5 V liegt. Die andere Seite jedes der Mini-Dip-Schalter ist komplett, das heißt je Pin mit Masse, GND (blanke Drahtstücke unter ihnen) verbunden.

Die Ablaufsteuerung der Programmierung übernimmt ein ATtiny13 zusammen mit einem Baustein 7406, der sechs Inverter mit offenen Kollektorausgängen besitzt, von denen fünf in dieser Schaltung genutzt werden.



Das Zusammenwirken von Mikrocontroller und Baustein 7406 in der Schaltung geschieht folgendermaßen:
Beim Einschalten der Versorgungsspannung von 5 V nimmt PB1 kurz High- und dann Low-Pegel an. Die rote LED leuchtet nur kurz auf und geht wieder aus. Nun kann die Programmierspannung Vpp, die von einem äußeren einstellbaren Netzgerät bereitgestellt wird, angeschlossen werden. Sie wird nur beim Programmiervorgang über das Relais mit dem Anschluss Vpp des EPROMs verbunden. Beim Lesevorgang hat der Pin Vpp des EPROMs über die Diode D1, deren Anode an Pin 28 des EPROMs angeschlossen ist, High-Pegel.
Beim Einschalten nimmt außerdem PB2 High-Pegel an. Die gelbe LED leuchtet, und an den Pins 8 und 5 des 7406 stellt sich Low-Pegel ein. Die Diode D3 zieht den Anschluss /CE des EPROMs ebenfalls auf Low-Pegel.
Zum Lesen des EPROMs muss zusätzlich der Anschluss /OE Low-Pegel aufweisen. Dies wird dadurch erreicht, dass PB0 beim Einschalten Low-Pegel annimmt. An Pin 12 des ICs 7406 stellt sich High-Pegel ein. Dieser Anschluss ist mit den Pins 1 und 19 des ICs 74LS541 verbunden. High-Pegel bedeutet für diesen Baustein, dass er an seinen Ausgängen hochohmig ist. Das an dem Mini-Dip-Schalter gerade eingestellte Bitmuster wird also nicht an die Dateneingänge des EPROMs, das sich gerade im Lese-Zustand befindet, übertragen.
Für den Programmiervorgang wird über die blauen Mini-Dip-Schalter die Adresse der zu beschreibenden EPROM-Zelle ausgewählt und das gewünschte Bitmuster mit dem weißen Mini-Dip-Schalter eingestellt.
Danach wird die Taste PROGRAMMIEREN betätigt. Die grüne LED leuchtet. Der Pin /OE hat jetzt High-Pegel , die Pins /G1 und /G2 aber Low-Pegel. Das eingestellte Bitmuster gelangt nun an die Datenpins des EPROMs.
Danach leuchtet die rote LED. Vpp ist jetzt über das Relais mit dem Pin Vpp des EPROMs verbunden. Anschließend geht die gelbe LED während der für die Programmierung des EPROMS nach dem Datenblatt des Herstellers festgelegten Zeit von 50ms aus, wobei sein Pin /PGM Low-Pegel annimmt, und die LED leuchtet wieder. Dies bedeutet, dass der Programmiervorgang beendet ist. Der Anschluss /PGM des EPROMs weist nun wieder High-Pegel auf. S1 ist dient als RESET-Taste für den Mikrocontroller. In einem Fachbuch von Roland Walter [4] wird u. a. in einem Kapitel die Auswertung von Tastendrücken in Bascom-AVR [5] behandelt. In Anlehnung daran habe ich das folgende Listing zur Ablaufsteuerung des Vorgangs der EPROM-Programmierung entworfen.
$regfile = "attiny13.dat"
$crystal = 1200000
' Monoflop mit 50 ms Verweildauer
' Verwendung zur EPROM-Programmierung, Programmierung von einzelnen Bytes
' 11.09.2008
Declare Sub Taste
Ddrb = &B00110111 ' Eingang ist PB3
Portb.3 = 1 'PullUp von PB3 aktiv
'Anfang, EPROM im Lese-Modus
Portb.0 = 0 'Low-Pegel an OE
Portb.1 = 0 'Vpp aus
Portb.2 = 1 'Hig-Pegel an PGM
Do
Debounce Pinb.3 , 0 , Taste , Sub 'Èntprellung von Taste An Pb0
Loop
' EPROM wird programmiert
Sub Taste
Portb.0 = 1 ' High-Pegel an OE
Waitms 100
Portb.1 = 1 'Vpp ein
Waitms 100
Portb.2 = 0 'Low-Pegel an PGM
Waitms 50 '50 ms warten
Portb.2 = 1
Waitms 100 'Hig-Pegel an PGM
Portb.1 = 0 'wieder Low-Pegel an OE
Waitms 100
Portb.0 = 0 'Vpp aus
End Sub
' EPROM wieder im Lese-Modus
Die Wartezeiten wurden bewusst mit den angegebenen Werten eingefügt, um den Programmiervorgang besser beobachten zu können.
Das Netzgerät, das je nach EPROM-Typ gemäß seinem Datenblatt die erforderlich Spannung Vpp bereitstellt, kann ein einzelnes einstellbares Netzgerät sein, oder man kann z. B. durch Reihenschaltung der Ausgangsspannungen von einstellbaren Netzgeräten die Höhe des jeweiligen Spannungswerts von Vpp erreichen. Eine andere Möglichkeit für ein einstellbares Netzgerät ist in dem Beitrag zum ELO-Magazin mit dem Titel „ Einstellbares Netzgerät mit Attiny13" zu finden.
Bedienung des einfachen EPROM-Programmiergeräts
EPROM-Inhalte kann man lesen, wenn die Adresse der betreffenden Speicherzelle mit den blauen Mini-Dip-Schaltern engestellt wird. Das Bitmuster (leuchtende LED =1, nicht leuchtende LED=0) lässt sich mit einem Taschenrechner, der die Anzeige von Zahlen im Dezimal-, Hexadezimal- und im Binärsystem gestattet, umrechnen, wenn man die Einsen und Nullen von links nach rechts im Binär-Modus eintippt und sich dann mit der Mode-Taste die Zahl z. B. als Dezimal- oder Hexadezimalzahl anzeigen lässt.
Möchte man an eine bestimmte Speicherzelle einen bestimmten Wert programmieren, geht man umgekehrt vor. Der eingetippte Hexadezimal- oder Dezimalwert wird mit dem Taschenrechner beim Betätigen der Mode-Taste und derjenigen für die Binäranzeige als eine Folge von Nullen und Einsen angezeigt. Danach werden die einzelnen Miniaturschalter des weißen Mini-Dip-Schalters mit einem kleinen Schraubendreher oder einem Kugelschreiber dem Bitmuster entsprechend eingestellt.
Wenn die Adresse mit den blauen Mini-Dip-Schaltern eingestellt ist, kann durch Betätigen der Taste PROGRAMMIEREN der Programmiervorgang gestartet werden. Das Bitmuster wird nach erfolgreicher Programmierung an den acht LEDs angezeigt.
Dieses einfache EPROM-Lese-und -Programmiergerät bietet mir zwar nicht den Komfort eines gekauften Geräts, da vor dem Programmiervorgang jedes einzelne Byte auf die oben beschriebene Weise einzugeben ist, und das Lesen von EPROM-Inhalten auch nicht so komfortabel ist, wie es den bisherigen Erläuterungen zu entnehmen ist.
Es ist daher nur z. B. zur Eingabe von Programm-Bytes für kleinere Mikroprozessor- oder Mikrocontroller-Programme mit externem EPROM geeignet oder zur Eingabe von Bitmustern für die Darstellung von Ziffern, bestimmten Zeichen und bestimmten Buchstaben auf Siebensegmentanzeigen, die nach Ablauf des Programmiervorgangs in einer Schaltung mit dem betreffenden EPROM z. B. als Laufschrift o. ä. angezeigt werden.
Es hat mir aber enorme Freude bereitet, in Anlehnung an die oben genannten Vorlagen Schritt für Schritt eine solch einfache Lese-und Programmier-Möglichkeit für die EPROMs 2764 bzw. 27128 zu entwickeln und unter Verwendung eines ATtiny13 auf einem Steckboard aufzubauen.
Literatur:
[1] Rolf-Dieter Klein „Mikrocomputer selbstgebaut und programmiert", Franzis-Verlag, 1984
[2] B. Kainka „Messen, Steuern, regeln über die serielle Schnittstell", Franzis-Verlag, 1992
[3] www.datasheetcatalog.com
[4] Roland Walter „AVR-Mikrocontroller-Lehrbuch", www.rowalt.de
[5] www.mcselec.com