4.3.a EPROM-Programmierer

Einleitung

Mikrocomputer und andere mikroprozessorgesteuerte Anlagen besitzen zwei Arten von Speicherbausteinen: RAM- und ROM-Speicher; vgl. Kapitel 4.3.

RAM-Speicher sind Schreib/Lese-Speicher, in die Informationen geschrieben und aus denen Informationen gelesen werden können. Nach dem Ausschalten des Gerätes gehen alle Informationen eines RAM-Speichers verloren, wenn die Betriebsspannung nicht z.B. durch Batterien erhalten bleibt.

ROM-Speicher (Read Only Memory, Nur-Lese-Speicher) verlieren ihren Inhalt nicht. Sie können nur gelesen, nicht aber mit aktuellen Daten beschrieben werden. Es gibt verschiedene Arten von ROM-Speichern: solche, die bereits ab Werk programmiert (»maskenprogrammiert«) sind, und solche, die zunächst unprogrammiert geliefert und erst später bei der Verarbeitung programmiert werden. Diese werden PROM genannt (Programmable ROM, programmierbares ROM).

Maskenprogrammierte ROMs werden wegen des hohen Fertigungsaufwandes nur bei großen Stückzahlen (ab mehreren tausend Exemplaren) hergestellt und besitzen innerhalb einer Serie stets den gleichen Speicherinhalt. Angewendet werden diese ROMs in Serienprodukten, die bestimmte feste Funktionen besitzen (z.B. Heim- und Personalcomputer, Videorecorder, Taschenrechner und Telespiele).

Bei den PROMs gibt es Bauarten, die nur einmal programmiert werden, und solche, die wieder gelöscht und dann erneut programmiert werden können. Der zweite Typ wird EPROM genannt; dies stammt von Erasable PROM, löschbares PROM.

EPROMs speichern Informationen auf Dauer. Falls es erforderlich ist, können sie etwa 10 – 50mal gelöscht und danach wieder neu programmiert werden. Dieser Vorteil hat zu einer breiten Anwendung von EPROMs geführt. Hinzu kommt, dass bestimmte EPROM-Typen »pinkompatibel« zu RAM-Bausteinen sind, d. h. sie besitzen das gleiche Anschlussschema wie diese. Hierdurch können Speicherbaugruppen wahlweise mit RAM- oder EPROM-Speichern bestückt werden, je nach Bedarf.

In diesem Abschnitt wird eine Baugruppe beschrieben, mir der EPROMs des Typs 2716 programmiert werden können. Zunächst wird der Programmiervorgang und das Löschen dieser EPROMs beschrieben. Anschließend werden Schaltung und Funktion der EPROM-Programmier-Baugruppe vorgestellt. Die softwaremäßige Ansteuerung geht dagegen über den Rahmen dieses Buches hinaus, da sie stark vom verwendeten Mikrocomputer-System abhängt.

Das EPROM 2716

Das EPROM vom Typ 2716 gehört zu einer ganzen Serie von EPROMs, deren Bezeichnung mit 27 beginnt. Die weiteren Bezeichnungsziffern geben die zur Verfügung stehende Speicherkapazität an. So besagt die 16 hier, dass es 16 K (genau 16 x 1024 = 16.384) Speicherzellen besitzt. Da diese entsprechend der Datenbusbreite in 8-Bit-Speicherzeilen (Bytes) angeordnet sind, lassen sich 2048 Datenworte mit je 8 Bits in diesem EPROM speichern. Andere EPROMs dieser Typenreihe, auf die jedoch hier nicht näher eingegangen wird, haben die Bezeichnungen 2732, 2764, 27128 und 27256 mit den entsprechenden Speicherkapazitäten von 32, 64, 128 und 256 K Bit. Bild 39 zeigt die Pin-Belegung des EPROMs 2716. Die Bedeutung der einzelnen Anschlüsse wird anschließend erklärt.

Bild 39: Die Pin-Belegung des EPROM-Bausteins 2716.

A0 bis A10 (11 Adress-Eingänge):
Hier werden die Adressleitungen A0 bis A10 des MC-Systembus angeschlossen. Mit Hilfe der 211 möglichen Signalkombinationen auf diesen Leitungen lassen sich die vorhandenen 2048 Speicherzeilen des EPROMs beim Programmieren und Lesen anwählen.

00 bis 07 (8 Daten-Ein/Ausgänge):
Hier werden die Datenleitungen des MC-Systembus angeschlossen. Beim Lesen des EPROMs erscheint an diesen Anschlüssen der Inhalt derjenigen Speicherzeile, die über die Adressleitungen angewählt ist. Beim Programmieren des EPROMs ist an die Datenleitungen die Information (Datenwort) anzulegen, mit der die adressierte Speicherzeile beschrieben (»programmiert«) werden soll.

Vcc und GND:
Anschlüsse für 5 V und 0 V (Versorgungsspannung).

V PP (Programmierspannungs-Anschluss):
Während der Programmierung des EPROMs muss die Spannung an diesem Anschluss 25 V betragen. Im übrigen Betrieb, d. h. im Lese- oder im Standby-Betrieb (EPROM nicht angesprochen), muss an VPP eine Spannung von 5 V anliegen.

CE und OE (Steuereingänge):
Mit Hilfe der Pegel an diesen Eingängen wird das Programmieren und das Lesen des EPROMs gesteuert.

Die Betriebsarten des 2716

Abhängig von den Signal-Pegeln an den Steuereingängen und von der Spannung am Anschluss V PP ergeben sich für das EPROM 2716 die in Bild 40 dargestellten vier Betriebsarten, die anschließend erläutert werden.

Bild 40: Die Betriebsarten des EPROMs 2716

Lesen:
An den Datenanschlüssen wird der Inhalt der durch die Signalkombination an den Adresseingängen ausgewählten Speicherzeile ausgegeben. Dies ist die »normale« Betriebsart für ein programmiertes EPROM.

Standby:
In dieser Betriebsart befindet sich das EPROM im Bereitschaftszustand. Es ist jedoch nicht aktiv, da die Daten-Ein/Ausgänge hochohmig geschaltet sind. Im Standby-Betrieb hat der Speicherbaustein nur eine Leistungsaufnahme von etwa 130 mW gegenüber 520 mW im aktiven Betriebszustand. Dies trägt bei großen Speichereinheiten zu einer erheblichen Entlastung der Stromversorgung bei.

Programmieren:
Während der Programmierung muss die Spannung am Anschluss V PP 25 V betragen; dies ist die Programmierspannung des EPROMs. Beim Programmieren müssen die Pegel der Steuer-, Adress- und Datenanschlüsse des EPROMs einen bestimmten zeitlichen Verlauf besitzen, der weiter unten näher erklärt wird.

Programmierung prüfen:
Nach der Programmierung eines EPROMs ist es üblich, seinen Inhalt mit dem gewünschten Inhalt, den Quelldaten, zu vergleichen. Dies kann entweder nach jedem programmierten Byte oder zum Schluss der gesamten Programmierung geschehen. Das Ergebnis dieser Überprüfung führt zu einer Meldung, die besagt, ob der Programmiervorgang erfolgreich war oder nicht. Beim Prüfen des EPROMs kann die Programmierspannung in Höhe von 25 V weiterhin angelegt bleiben.

Der Programmiervorgang beim 2716

In den Datenbüchern der EPROM-Hersteller findet man Signal-Zeit-Diagramme zur Programmierung der Bausteine. Wichtig ist die Einhaltung der in Bild 40 gezeigten Signalpegel: Zum Programmieren muss der Eingang OE einen H-Pegel besitzen, und die Spannung am Anschluss VPP muss 25 V betragen. Durch einen H-Impuls von 50ms. dauer am Anschluss CE wird die Programmierung bewirkt; siehe Bild 41.

Bild 41 : Das Signal-Zeit-Diagramm beim Programmieren des 2716

Beschreibung des Signal-Zeit-Diagramms von Bild 41:

(1) Zunächst wird das Signal am Steuereingang OE auf H-Pegel geschaltet und die Spannung an V PP von 5 V auf 25 V erhöht.
(2) Nun wird die Adresse der ersten zu programmierenden Speicherzeile (hier z.B. Adresse 0) auf die Adressleitungen A0 bis A10 gelegt.
(3) Zu diesem Zeitpunkt gelangt das zu programmierende Datenbyte an die Bausteinanschlüsse D0 bis D7; es wird aber noch nicht sofort programmiert.
(4) Nach einer Wartezeit, die garantiert, dass das Datenbyte stabil anliegt, wird das Signal am Steuereingang CE für 50ms auf H-Pegel geschaltet.
(5) Nach Ablauf der 50ms führt CE wieder L-Pegel. Das Datenbyte ist nun im EPROM gespeichert. Vor der Programmierung des nächsten Bytes muss wieder eine Pause von einigen μs abgewartet werden. Die Spannung an V bleibt dabei PP auf 25 V geschaltet, und OE führt weiterhin H-Pegel.
(6) Der weitere Ablauf gleicht dem ab (2): Zur Programmierung der nächsten Speicherzeile wird die neue Adresse auf die Leitungen A0 bis A10 geschaltet usw.

Da die Wartezeiten zwischen den einzelnen Schritten mit einigen μs gegenüber der 50-ms-Programmierzeit sehr gering sind, wird zur Programmierung eines Bytes (einer Speicherzeile) eine Gesamtzeit von etwa 50 ms benötigt. Die Programmierung aller 2048 Speicherzeilen dauert ungefähr 2 Minuten.

Die in Bild 41 angegebene Reihenfolge beim Anlegen der einzelnen Signale kann auch geändert werden. Zu beachten ist, dass der Programmiervorgang beginnt, wenn die Signale an OE und CE H-Pegel annehmen und an VPP 25 V anliegen.

Das Löschen des 2716

Die einzelnen Speicherzellen innerhalb eines EPROMs sind aus MOS-Feldeffekt-Transistoren aufgebaut. Ein leitender Transistor stellt den Informationsgehalt einer logischen 0, ein gesperrter den einer logischen 1 dar. Bei einem fabrikneuen EPROM sind alle Transistoren gesperrt, d. h. jede Speicherzeile (8 Bits) enthält den Inhalt 11111111; dies entspricht hexadezimal FF.

Durch die Programmierung werden diejenigen Transistoren, die logisch 0 annehmen sollen, in den leitenden Zustand gebracht. Infolge der hohen Programmierspannung gelangen hierbei Ladungsträger auf das isolierte Gate des bisher gesperrten Transistors und sorgen für eine leitende Verbindung zwischen Source und Drain. Durch die extrem gute Isolierung des Gates bleibt die nur einmal aufgebrachte Ladung und damit der programmierte Zustand des Transistors nach Angaben der EPROM-Hersteller für etwa 10 Jahre erhalten .

Durch intensive Bestrahlung der Transistoren mit ultraviolettem Licht ist es möglich, die Gate-Ladung aller Transistoren wieder zu beseitigen. Zu diesem Zweck besitzen EPROMs ein Quarzglasfenster, das UV-Licht durchlässt. Die verwendetete UV-Lichtquelle muss bezüglich ihrer Strahlungswellenlänge, Strahlungsdichte und Leistung bestimmte Anforderungen erfüllen. Die im Handel angebotenen EPROM-Löschgeräte sind hierfür ausgelegt und meist für die gleichzeitige Löschung mehrerer EPROMs geeignet. Ein Löschvorgang dauert etwa 15 bis 25 Minuten. Da das Sonnenlicht und Leuchtstofflampen ebenfalls UV-Anteile besitzen, ist eine Bestrahlung programmierter EPROMs mit diesen Lichtquellen zu vermeiden. Leuchtstofflampen können EPROMs bei direkter Einwirkung innerhalb von 2 bis 3 Jahren löschen; bei Sonnenlicht ist dies schon innerhalb einer Woche möglich. Das Quarzglasfenster eines programmierten EPROMs ist deshalb grundsätzlich mit einem Aufkleber abzudecken, der mit Hinweisen zum einprogrammierten EPROM-Inhalt versehen werden sollte. Vor dem Löschen eines EPROMs ist das Quarzglasfenster sorgfältig von Klebstoffresten zu reinigen (z.B. mit Spiritus).

Der Mikrocomputer als Programmiergerät für EPROMs

Aus der Beschreibung des Programmiervorgangs ergibt sich die grundsätzliche Arbeitsweise eines Programmiergerätes; es muss unter Einhaltung bestimmter Zeiten der Reihe nach alle Speicherzeilen des EPROMs adressieren, ferner das für jede Speicherzeile vorgesehene Datenbyte bereitstellen und mit Hilfe einiger Steuersignale den Programmiervorgang auslösen. Vor, während und nach der Programmierung des EPROMs können Meldungen über den Betriebszustand des Programmiergerätes und das Ergebnis einer Programmierkontrolle ausgegeben werden.

Da sich viele der Arbeitsschritte ständig wiederholen, liegt es nahe, zu ihrer Bewältigung einen Mikrocomputer einzusetzen. Bild 43 zeigt den Blockaufbau eines Programmiergerätes, das auf der programmierbaren Parallel-Schnittstelle basiert.

Die Baugruppe EPROM-Programmierer enthält einen von außen zugänglichen Spezial-IC-Sockel, der das zu programmierende (oder zu lesende) EPROM 2716 aufnimmt. Die erforderliche Programmierspannung muss von einem separaten Netzgerät zur Verfügung gestellt werden. Außerdem sind im EPROM-Programmierer einige LEDs für Betriebszustandsanzeigen und die erforderliche Steuerelektronik vorhanden.

Bild 42: Der Mikrocomputer als EPROM-Programmiergerät.

Im ROM-Speicher des Mikrocomputers befindet sich innerhalb des Betriebssystems oft ein spezielles EPROM-Programmierprogramm, das alle erforderlichen Signale für die Programmierung eines EPROMs bereitstellt; vgl. Bild 41.

Die Bytes, mit denen ein EPROM programmiert werden soll, befinden sich meistens im RAM des Mikrocomputers. Der Benutzer des Programmiergerätes muss vor dem Programmieren dafür sorgen, dass sie dorthin gelangen. Wie schon erwähnt, kann die Software hier nicht behandelt werden.

Blockschaltbild und Arbeitsweise des EPROM-Programmierers

Bild 43 zeigt das Blockschaltbild der Baugruppe. Sie besteht aus den Schaltungsteilen
Adressvergleicher, programmierbare Parallelschnittstelle, Betriebszustandsanzeige,
Steuersignaltreiber und Programmierspannungs-Umschalter.

Bild 43: Das Blockschaltbild des EPROM-Programmierers

Die programmierbare Parallelschnittstelle (vgl. Seite 35lff.) enthält drei Datenkanäle, die durch Laden eines Steuerwortes in das Steuerwortregister (innerhalb der Steuerlogik) als Eingabe- oder als Ausgabe-Ports programmiert werden können. Dieses Einschreiben des Steuerwortes in das Steuerwortregister nennt man Initialisieren des Bausteins. Da mit dem EPROM-Programmierer sowohl leere EPROMs programmiert als auch programmierte EPROMs überprüft oder gelesen werden sollen, sind die Betriebsfälle Programmieren und Prüfen oder Lesen eines 2716 zu unterscheiden.

Für das Programmieren des 2716 müssen die Kanäle A, B und C als Ausgabeports initialisiert sein, weil

  • die acht Leitungen von Kanal A und drei Leitungen von Kanal C als Adressleitungen für das zu programmierende EPROM dienen sollen,
  • die restlichen Leitungen von Kanal C als Steuer- und Signalleitungen vorgesehen sind,
  • die acht Leitungen von Kanal B die Datenbytes zum EPROM übertragen sollen.

Für das Prüfen oder Lesen des 2716 müssen die Kanäle A und C ebenfalls als Ausgabeports, Kanal B jedoch als Eingabeport initialisiert sein, weil die Leitungen der Kanäle A und C wie beim Programmieren benutzt werden die Leitungen von Kanal B die Daten vom EPROM zum Systembus übertragen sollen.

Die Adresse des Steuerwort-Registers und die Portadressen sind durch den schaltungstechnischen Aufbau der Baugruppe bestimmt. Der Adressvergleicher (siehe Bild 2) gibt den Schnittstellenbaustein nur dann für den Datenaustausch mit dem Mikroprozessor frei, wenn auf dem Adressbus eine gültige Adresse für eines der drei Ports oder das Steuerwortregister ausgegeben wird.

Über die Portleitungen PC3 und PC6 wird die Betriebszustandsanzeige (siehe Bild 43) gesteuert, die mit zwei LEDs die drei folgenden Meldungen ausgibt:

  • LED grün, wenn das Programmiergerät initialisiert wurde,
  • LED rot, wenn gerade ein EPROM programmiert wird,
  • beide LEDs, wenn das Programmiergerät nicht initialisiert ist, d.h. direkt nach dem
    Einschalten des Gerätes.

Die Steuersignaltreiber, die durch die Portleitungen PC4 und PCS angesteuert werden, haben die Aufgabe, die erforderlichen Signalpegel und Ströme für die EPROM-Steueranschlüsse OE und CE bereitzustellen.

Der elektronische Programmierspannungs-Umschalter, der durch die Portleitung PC7 gesteuert wird, schaltet während des Programmiervorgangs 24 V und während des Prüf- oder Lesevorgangs 5 V auf den EPROM-Anschluss V PP. Hierzu muss dem Umschalter eine externe Gleichspannung von 27 V zugeführt werden. Die gegenüber den Herstellerangaben um 1 V geringere Programmierspannung (statt 25 V nur 24 V) ist ausreichend.

Bild 44: Der Stromlaufplan des EPROM-Programmierers

Die Programmierbare Parallelschnittstelle und der Adressvergleicher

Es wird der Schnittstellenbaustein 8255 verwendet. Bild 45 zeigt ein vereinfachtes Innenschaltbild dieses Bausteins, die zu seinem Betrieb notwendigen Verbindungen zum System-Bus und den Anschluss des Adressvergleichers.

Bild 45: Der Anschluss des Schnittstellenbausteins 8255 und des Adressvergleichers.

Grundsätzlich können die Datenkanäle A, B und C als Eingabe- oder Ausgabeports programmiert werden. Je nach gewünschter Betriebsart ist zur Programmierung ein vom Bausteinhersteller vorgeschriebenes Steuerwort in das Steuerwort-Register des 8255 zu laden, das sich in der Lese/Schreib- und Steuer-Logik des Bausteins befindet. Dieses Laden des Steuerwortes nennt man Initialisieren des Bausteins (initial = am Anfang stehend).

Um den Baustein für das Programmieren eines EPROMs zu initialisieren, muß das Steuerwort 80H verwendet werden. Für das Prüfen oder Lesen eines EPROMs ist das Steuerwort 82H erforderlich. Die Bildung der Steuerworte wurde ab Seite 360 erklärt.

Das Einschreiben des Steuerwortes in das Steuerwort-Register erfolgt wie die Übergabe eines Datenwortes an ein Ausgabeport: Man gibt zuerst die Port-Adresse auf dem Adress-Bus aus und stellt dann das Steuerwort auf dem Daten-Bus bereit. Mit dem Steuersignal IOW wird anschließend die Übernahme des Steuerwortes in das Steuerwort-Register ausgelöst.

Ein Datentransport zwischen Daten-Bus und Baustein ist nur möglich, wenn der CS-Eingang (Chip Select = Bausteinauswahl) L-Pegel führt (Bild 45). Das Signal an diesem Eingang, das Bausteinfreigabe-Signal, kommt vom Adressvergleicher und wird durch IC2.1 invertiert, weil der Adressvergleicher an seinem Ausgang OUT einen H-Pegel abgibt.

Dieser H-Pegel tritt jedoch nur auf, wenn die Signalkombination auf den Adressleitungen A4 bis A 7 gleich derjenigen Signalkombination ist, die mit den Schaltern S1 bis S4 eingestellt wurde. Mit der in Bild 45 dargestellten Schalter-Einstellung ergeben sich die Adressen für die drei Ports A, B und C und für das Steuerwort-Register wie in Bild 46 dargestellt.

Bild 46: Die Bildung der Port-Adressen

Die Adreßleitungen A2 und A3 werden hier nicht benutzt. Da ihr Pegel 0 oder 1 sein kann, ergeben sich mehrere gültige Adressen für die Ports bzw. das Steuerwort-Register. In diesem Buch werden nur die hardwaremäßigen Anforderungen und Bedingungen behandelt, jedoch nicht die softwaremäßige Ansteuerung des EPROM-Programmierers.

Die Betriebszustands-Anzeige

Dieser Funktionsblock besteht aus den Invertern IC10.1 und IC10.4, den beiden Widerständen R1 und R4, sowie den LEDs D1 und D2 (Bild 44). Die LEDs leuchten nur, wenn die Inverterausgänge (open collector) L-Signal führen. Dies ist immer dann der Fall, wenn an den Portleitungen PC3 und PC6 ein H-Signal ausgegeben wird oder wenn sie sich im hochohmigen Zustand befinden. Die LEDs sind folgendermaßen anzusteuern:

BetriebszustandPegel an
PC3
Pegel an
PC6
LED
BEREIT
LED
PROG
Bemerkungen
Baugruppe nicht
initialisiert
ZZ**Zustand nach Einschalten der Netzspannung, Programmierer nicht betriebsbereit (Z = hochohmig)
Baugruppe
initialisiert und lesebereit
HL*Zustand nach Aufruf des Programmierprogramms, EPROM kann in
Prog.-Sockel gesteckt werden
Programmieren
u. Prüfen
LH*EPROM wird programmiert und darf nicht gezogen werden, Prüfen erfolgt automatisch

Die Steuersignal-Treiber

Die Steuersignaltreiber haben die Aufgabe, die erforderlichen Signalpegel an den EPROM-Steuereingängen OE und CE für die verschiedenen Betriebsfälle des Programmiergerätes
bereitzustellen. Sie bestehen aus den Invertern IC10.2 und IC10.3 (open collector) und den zugehörigen Arbeitswiderständen R2 und R3 (Bild 44). Das EPROM-Programmierprogramm steuert. Die Treiber sind wie folgt anzusteuern:

Betriebszustand Pegel an PC4 Pegel an PC6Pegel an CSPegel an CEBemerkungen
Baugr. nicht init.ZZLLProgrammierer nicht
betriebsbereit
Baugr. initialisiertLLHHIn diesem Zustand sind die
EPROM-Ausgänge hochohmig
Programmieren LL-ImpulsHH-ImpulsVPP wird hierbei von 5 V auf 24 V erhöht
Prüfen/LesenHHLL

Der Programmierspannungs-Umschalter

Der Programmierspannungs-Umschalter hat die Aufgabe, die Spannung am EPROM-Anschluss VPP während des Programmiervorgangs auf 24 V und während aller anderen Betriebszustände auf 5 V zu schalten. Er wird hierzu (durch das Betriebsprogramm) über die Portleitung PC7 gesteuert: Bild 47.

Bild 47: Der Programmierspannungs-Umschalter

Die Funktion beim Programmieren:
Das Betriebsprogramm gibt an PC7 einen H-Pegel aus. Hierdurch sperrt der Ausgangstransistor von IC10.6. Die 27-V-Spannungsquelle treibt über die Verpolungsschutzdiode D3 und über R6 einen Basisstrom in den Transistor T1. Der Transistor leitet und gibt an seinem Emitter eine Spannung von ca. 25,2 V ab. Der Widerstand R7 begrenzt den Strom für die Z-Diode D5, die an den EPROM-Anschluss VPP eine Spannung von 24 V abgibt. Die Diode D4 verhindert beim Programmieren einen Stromfluss vom Emitter zur 5-V-Spannungsquelle.

Die Funktion in allen anderen Betriebszuständen:
Das Betriebsprogramm gibt an PC7 einen L-Pegel aus. Der Ausgangstransistor von IC10.6 leitet und verbindet die Basis des Transistors T1 mit 0V, wodurch T1 sperrt. Über die Diode D4 fließt nun ein Strom in den Arbeitswiderstand R8 und bewirkt am Anschluss VPP eine Spannung von ca. 4,5 V. Diese Spannung reicht nicht aus, um die Z-Diode in den leitenden Zustand zu steuern.

Platine

Bestückungsplan

Verdrahtungsplan


Weitere Informationen

Dokumente

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert