*************************************************************** * * * Aufbauanleitung des EPROM-Programmiergerät * * der IG-HC TU Dresden (n.electronica 227/228) * * * *************************************************************** (c) by Dr.U.Hinz 1989 Inhaltsverzeichnis __________________ 0. Einleitung 1. Software zum Programmiergeraet 1.1. Allgemeiner Aufbau des EPROM-HANDLER V 2.9 1.1.1. Typauswahl 1.1.2. Lesen 1.1.3. Programmieren 1.1.4. Vergleichen 1.1.5. Loeschtest 1.1.6. Wiederholen 1.1.7. Fortsetzen 2. Hardware des EPROM-Programmiergeraetes 2.1. Allgemeiner Aufbau 2.2. Fassung und Typstecker 2.3. Adresszaehler 2.4. Read/Write-Logik 2.5. Programmierspannungserzeugung 2.6. Relaisblock 2.7. Anschluss an den Z 1013 2.8. Netzteil Anmerkungen Literaturverzeichnis EPROM-PROGRAMMIERGERAET ----------------------- 0. Einleitung Obwohl in der letzten Zeit die Bedeutung von Festprogrammen wegen der weitverbreiteten Disketten zurueckgegangen ist, bleibt es vor allem fuer Computeramateure wichtig, EPROMs einzusetzen, zumal ihre Preise stark sinken und die Speicher- kapazitaet pro Schaltkreis steigt. Um sich fuer ein Programmiergeraet entscheiden zu koennen, sind mehrere Auswahlkriterien zu beachten: - Anzahl der zu programmierenden Typen (maximal) - automatische Typerkennung - Art und Umfang des Interfaces (minimal) - Portabilitaet bezueglich der Rechnertypen (maximal) - Softwareunterstuetzung (maximal) - Preis-Leistungsverhaeltnis (optimal) - Vorleistungen (maximal) Bei den zu Programmiergeraeten erschienenen Veroeffentli- chungen lassen sich zwei Kategorien unterscheiden. Die erste Kategorie umfasst Programmiergeraete, die auf einen Typ von EPROMs zugeschnitten sind /2/ /3/ /4/. Sie kommen fuer hoehere Ansprueche nicht in Betracht. In der zweiten Kategorie fin- den sich Beispiele, die den o. g. Kriterien besonders gut ge- recht werden /1/ /5/ /6/. Hervorzuheben ist das Programmierge- raet nach /1/. Von V. LUEHNE wurde innerhalb der Z 1013-Gruppe der IG Heimcomputer am Informatikzentrum der TU Dresden eine Leiterplatte entwickelt. R. BROSIG hat ein sehr anspruchsvolles Programmierprogramm namens EPROM-HANDLER V 2.9 beigesteuert. 1. Software zum Programmiergeraet 1.1. Allgemeiner Aufbau des EPROM-HANDLER V 2.9 von R. BROSIG Der EPROM-HANDLER V 2.9 ist ein komfortables, menueorientier- tes, fuer den Z 1013 entwickeltes Werkzeug. Er belegt den Adressraum von 100H bis 08FBH, wird mit J 100 gestartet und ist selbst nicht EPROM-faehig. Das im Anhang befindliche HEX-Li- sting gibt das Programm vollstaendig wieder, wobei darauf zu achten ist, dass es mit einem Adress-Offset von 1000H ausge- druckt wurde. Die vier I/O-Adressen: PIO-Port A/Daten 30H D0...D7 " Port A/Code 31H " Port B/Daten 32H Steuersignale " Port B/Code 33H entsprechen denen des PIO-Zusatzmoduls von robotron Riesa und ordnen sich in die Empfehlung fuer I/O-Adressen fuer den Z 1013 ein, welche auf der Nachfolgetagung der "1. Z 1013-Ta- gung" bekanntgegeben wurde. Der EPROM-HANDLER V 2.9 bietet dem Nutzer insgesamt sieben Funktionen, wie: 1. Typauswahl 2. Lesen 3. Programmieren 4. Vergleichen 5. Loeschtest 6. Wiederholen 7. Fortsetzen an. Kernstueck dieser Funktionen sind die Leseroutine (03FAH bis 0422H) und die Zellen-Programmierroutine (060BH bis 063EH). Sie erzeugen unter Nutzung der beschriebenen Hardware ein Sig- nalspiel, das auf die international gebraeuchliche EPROM-Fa- milie 27xxx anwendbar ist. Bild 6 gibt einen Ueberblick fuer das Signalspiel der Zellen-Programmierroutine. 1.1.1. Typauswahl Nachdem man den EPROM-HANDLER V 2.9 mit J 100 gestartet hat, wird nach dem EPROM-Typ gefragt, was sich jedoch auf die EPROM-Groesse bezieht. Nicht die Typen einzelner Hersteller sind gemeint, denn diese unterscheiden sich meist nach dyna- mischen Kennwerten, der Programmierspannung oder der Betriebs- stromaufnahme. Stellvertretend fuer die EPROM-Groesse werden deshalb die international ueblichen Endnummern: 08 fuer 1 KByte-EPROMs 1) 16 fuer 2 KByte-EPROMs 32 fuer 4 KByte-EPROMs 64 fuer 8 KByte-GPROMs 128 fuer 16 KByte-EPROMs 256 fuer 32 KByte-EPROMs zur Unterscheidung herangezogen. In den Arbeitszellen 0128H und 0129H wird die Byteanzahl, die sich aus der EPROM-Groesse ergibt, abgelegt. Diese Byteanzahl ist die einzige Unterscheidungsmoeglichkeit fuer die EPROM- Groesse innerhalb der internen Ablaeufe des EPROM-Handlers. Sollen andere EPROM-Groessen durch den EPROM-Handler V 2.9 be- arbeitet werden, so ist darauf zu achten, dass sie in ihrer Programmiervorschrift dem Signalspiel nach Bild 6 entspre- chen. 1/2 KByte- und 64 KByte-EPROMs liessen sich also mit dem EPROM- HANDLER V 2.9 bei vorhandenem Typstecker (vgl. Bild 5.1...5.6) ebenfalls programmieren, doch werden sie im Typauswahldialog nicht beruecksichtigt. Ehe man die eingegebene Endnummer durch ENTER gueltig macht, sollte man sich in jedem Falle noch einmal ueberzeugen, ob der richtige Typstecker gewaehlt wurde. Hat man irrtuemlicherweise eine falsche Groesse bestaetigt, dann laesst sich mit dem Kom- mando N (NEU) zur Typauswahl zurueckkehren. 1.1.2. Lesen Nachdem die Typauswahl erfolgt ist, bietet der EPROM-Handler ein"Funktionswahlmenue an. Hierin steht die Kennziffer 1 fuer "Lesen". Nachdem man die Kennziffer eingegeben hat, stellt der EPROM-Handler die Frage, ob man den steckenden EPROM vollstaen- dig oder teilweise lesen moechte. Mit ENTER entscheidet man sich fuer vollstaendiges Lesen und mit N (NEIN) fuer bereichsweises. Nachdem man sich fuer das letztere entschieden hat, ist der in- terne EPROM-Adressbereich ("rel. EPROM-Adresse (HEX):?") anzu- geben. Vor Fehleingabe, wie: - Anfangsadresse groesser als Endadresse und - Endadresse groesser als EPROM-Groesse, besteht Schutz. Soll nur eine einzelne EPROM-ZELLE gelesen wer- den, dann sind die Angaben fuer Anfangs- und Endadresse gleich. Nachdem der einzulesende EPROM-Adressbereich endeutig und feh- lerfrei feststeht, bestaetigt man mit ENTER, sodass das Pro- gramm nach dem Ziel des EPROM-Inhaltes fragen kann. Obwohl in der Frage der Text "nach RAM-Adresse (HEX)?:" erscheint, be- steht kein Schutz vor Angabe einer ROM-Adresse. Man koennte al- so als Ziel die Adresse angeben, auf der bereits der Z 1013-Mo- nitor steht. Auch der RAM-Bereich, in dem der EPROM-Handler selbst steht, kann bei Fehlangabe vom eingelesenen EPROM-Inhalt ueberschrie- ben werden! Nachdem die (Anfangs-) RAM-Adresse mit ENTER quit- tiert ist, beginnt der Lesevorgang. Hierfuer wird zunaechst der EPROM-Adresszaehler mit Hilfe des CLEAR-Impulses rueckgesetzt. Gegebenenfalls schliesst sich dann ein Hochzaehlen auf die ge- waehlte Anfangsadresse an, wenn man den EPROM nicht vollstaen- dig auslesen will. Als naechstes folgt das Einschalten der Betriebsspannungen UCC und UDD (ob beide verwendet werden, bestimmt der Typstecker). Mit Hilfe eines Zeit-Unterprogrammes ab Adr. 0595H bis 05A0H wird eine Wartezeit von ca. 70 ms eingeschoben, in der alle Einschwingvorgaenge, welche mit der Zuschaltung zusammenhaen- gen, abklingen koennen. Unmittelbar darauf folgt das Auslesen der ersten EPROM-Zelle. Mit Hilfe eines COUNT-UP-Impulses wird der EPROM-Adresszaehler inkrementiert, sodass ein neuer Lese- vorgang eingeleitet werden kann. Ein Zellen-Lesezyklus bean- sprucht insgesamt 190 us. Fuer einen 1 K-EPROM entsteht so ei- ne effektive Lesezeit von 0,2 s. Die anschliessende Checksum- menbildung mit etwa gleicher Dauer laesst fuer die Funktion "Lesen" eines 1 K-EPROMs etwa 0,5 s zusammenkommen. Hierbei ist zu beachten, dass die Checksumme des RAM-Inhaltes gebildet wird. Hat man irrtuemlicherweise als Ziel einen Adressbereich mit Festwertspeicherbelegung angegeben, erhaelt man eine fal- sche Angabe. Gleiches geschieht natuerlich auch, wenn die Lese- operationen durch Hardwarefehler gestoert sind. Nach Abschluss der Pruefsummenbildung wird das Ergebnis dargestellt und mit OK die abgearbeitete Funktion "Lesen" fertiggemeldet. Erst mit ei- ner beliebigen Tastenbedienung gelangt man wieder ins Funktions- menue. 1.1.3. Programmieren Die Funktion "Programmieren" ruft man mit der Kennziffer 2 auf. In der sich unmittelbar anschliessenden Frage, ob der EPROM vollstaendig oder teilweise zu programmieren ist, muss man sich mit N (NEIN) fuer teilweise entscheiden. Wie beim "Lesen" folgt dann die Frage nach Anfangs- und Endadresse des Teilbereiches, der nur eine einzige EPROM-Zelle lang sein kann. Ist alles feh- lerfrei, mit CTRL C gelangt man wieder ins Funktionsmenue, wird durch ENTER quittiert. Ehe das Programm aber nach der Quellad- resse des zukuenftigen EPROM-Inhaltes fragt, wird der genannte EPROM-Adressbereich nach geloeschten Zellen abgefragt, die den Inhalt FFH besitzen. Erst danach erscheint der Text "von RAM- Adresse (HEX)?:", wobei das Programm alle Angaben akzeptiert, die eine Adresse im Adressraum des U880 bezeichnen, gleichguel- tig, ob mit RAM, ROM oder ohne Speicher besetzt. Ist die Quell- adresse mit ENTER bestaetigt, wird der Bildschirm geloescht. Ehe programmiert werden kann, folgt ein Vertraeglichkeitstest. Waehrend der Loeschtest nach dem EPROM-Inhalt FFH fragt, sucht der Vertraeglichkeitstest alle diejenigen Bits der EPROM-Zelle, die eine 0 haben, obwohl sie nicht programmiert werden sollen, z. B.: programmierbar unvertraeglich EPROM FF: 1111 1111 F7: 1111 0 111 RAM 3E: 0011 1110 3E: 0011 1 110 Fehlerhafte EPROMs, Kontaktprobleme, mangelhafte Loeschung und Bedienfehler zeigt dieser Vertraeglichkeitstest mit grosser Si- cherheit an. Zusaetzlich wird nicht nur die Unvertraeglichkeit konstatiert, sondern auch alle unvertraeglichen EPROM-Zellen im Tabellenvergleich zu den RAM-Zellen angezeigt. Mit CTRL C kann man anschliessend wieder ins Funktionswahlmenue zurueckkehren. Erst nach erfolgreichem Vertraeglichkeitstest schliesst sich der erste Programmierzyklus an. Er ist im Bild 6 als Zeit-Zu- standsdiagramm dargestellt, wobei sich alle Zeitangaben auf den MONITOR Z1013/2.02 beziehen. Zu Beginn sind alle Randbedingun- gen, wie anliegende erste EPROM-Adresse, anliegende Daten fuer die erste EPROM-Zelle, passiver Programmierimpuls, Umschaltung in den Schreibmodus (LED VB 2 leuchtet, Programmierimpuls IMP noch passiv), erfuellt. Erst wenn all dies geschehen ist (bis zum Zeitpunkt 1), kann der EPROM-Handler den Programmierimpuls durch eine L/H-Flanke des Signales IMP anstossen. Bis zum Zeit- punkt 2 schliesst sich eine Wartezeit (Pauschalzeit) von 256 us an. Unabhaengig vom EPROM-Handler verlaeuft die restliche Zeit des Programmierimpulses bis zum Zeitpunkt 3. Laenger als dieser Impuls dauert aber die Tastaturabfrage, die vor Ende des Pro- grammierimpulses begonnen wird und ca. 10 ms in Anspruch nimmt (Zeitpunkt 4). Vom Zeitpunkt 4 an beginnt bereits der folgende Zyklus, was durch den COUNT-UP-Impuls und die sich einstellende naechste EPROM-Adresse zum Zeitpunkt 5 erkennbar ist. Die Zeit- spanne zwischen 5 und 6 benoetigt der EPROM-Handler, um den In- halt der naechsten Zelle aus dem RAM zu holen, die internen Adressregister zu erhoehen, auf "Ende" zu testen und zu fragen, ob die Zelle ueberhaupt programmiert werden muss. Ist eine Pro- grammierung nicht noetig (RAM: FFH, EPROM: FFH), dann faellt der eigentliche Programmiervorgang aus und der Uebergang zur naechsten Zelle dauert nur 210 us. Soll keine Zelle ueber- sprungen werden, dann sind ab Zeitpunkt 7 wieder alle Vorbe- dingungen erfuellt und der naechste Zellen-Progammierzyklus kann mit der L/H-Flanke von IMP beginnen. 2) Fuer die Programmierung einer EPROM-Zelle stehen, wie im Bild 6 zu erkennen ist, ca. 13 ms zur Verfuegung. Fuer einen 1 K-EPROM entsteht eine reine Programmierzeit von 13,4 s, an die sich noch der Erfolgstest anschliesst. Dieser vergleicht den nunmehr vorliegenden EPROM-Inhalt mit dem Quellbereich im RAM. Stellt der Erfolgstest fuer eine EPROM-Zelle Ungleichheit fest, dann unterscheidet er zusaetzlich, ob Vertraeglickeit vorliegt, also weiterprogrammiert werden kann, oder wegen Unvertraeglichkeit unterbrochen werden muss. Unvertraeglichkeit kann trotz vorhe- riger ausreichender Loeschung dann auftreten, wenn die Program- mierspannung UPRG zu gross gewaehlt wurde und dadurch benach- barte Bitpositionen auf dem EPROM-Chip unbeabsichtigt auf "0" gebracht werden. Die erste un- vertraegliche EPROM-Zelle wird mit Angabe von RAM- und EPROM-Adresse angezeigt, so dass man danach mit CTRL C zum Funktionswahlmenue zurueckkehren oder mit einer beliebigen anderen Taste fortsetzen kann. Verlaeuft der Erfolgstest so, dass Ungleichheit verbunden mit Vertraeglichkeit festgestellt wird, dann bestaetigt der EPROM- Handler einen vollstaendig abgearbeiteten Programmierzyklus mit einem ungefuellten Kreis als Quittungssymbol. Danach folgen bis maximal 100 Programmierzyklen, ehe gaenzlich abgebrochen wird. Wenn vorher bei einem Erfolgstest Uebereinstimmung aller Zellen festgestellt wird, schliesst der EPROM-Handler Sicherheits(pro- grammier)zyklen an. Insgesamt die dreifache Anzahl (jedoch mindestens zwölf) der benoetigten Programmierzyklen folgen, bis ein abschließender Erfolgstest und eine Checksummenberchnung das "Programmieren" abschließt. Als zugehoerige Fertigmeldung schließt sich ein OK an. 1.1.4. Vergleichen Die Funktion "Vergleichen" wird mit der Kennziffer 3 innerhalb des Funktionswahlmenues aufgerufen. Sie entspricht in ihren Grundlagen dem "Lesen", ohne dass der EPROM-Inhalt in den Spei- cher des Z 1013 uebergeben wird. So wie bei allen vorher beschriebenen Funktionen kann man den gesamten EPROM-Inhalt oder Teile davon auswaehlen. Mit N (NEIN) entscheidet man sich fuer Teilbereiche des EPROM. Anschliessend werden die Bereichsadressen, als "rel. EPROM-Adresse" bezeich- net, abgefordert (rel.= relative). Nach abgeschlossener Eingabe derselben fragt der EPROM-Handler nach der (Anfangs-)RAM-Adres- se, von der an verglichen werden soll. Faellt der Vergleich po- sitiv aus, dann meldet sich der EPROM-Handler mit einem OK, sodass man mit einem beliebigen Tastendruck zum Funktionswahl- menue zurueckkehren kann. Treten jedoch Abweichungen auf, dann wird die erste festge- stellte Zelle mit RAM-Adressangabe, dazugehoerige EPROM-Adresse und deren nicht uebereinstimmenden Inhalten in einer Bild- schirmzeile angezeigt und der Vergleichsvorgang danach unter- brochen. Mit jeder beliebigen Taste faehrt das Programm mit der Arbeit fort, bis die naechste Abweichung auftritt. Nachdem alle Zellen ueberprueft sind, meldet sich der EPROM-Handler mit OK zurueck. Durch Druck einer beliebigen Taste erreicht man, wie oben gesagt, das Funktionswahlmenue. Vorher laesst sich mit CTRL C (S4-K) ein Zwangsabbruch der Funktion "Vergleichen" herbei- fuehren. 1.1.5. Loeschtest Die Funktion "Loeschtest" wird ueber die Kennziffer 5 erreicht. Ebenso wie beim "Lesen", "Programmieren" und "Vergleichen" sind Bereichsangaben moeglich. Bei einem erfolgreichen Test, der Loeschtest ist ein abgewandeltes "Vergleichen", wobei alle EPROM -Zellen den Inhalt FFH haben sollen, folgt das uebliche OK. Andernfalls wird die erste ungeloeschte Zelle mit EPROM-Adresse und dem Hinweis "no blank" angezeigt. Nach jedem Tastendruck wird der Loeschtest fortgefuehrt, bis die naechste ungeloeschte Zelle ermittelt ist oder bis alle Zellen ueberprueft worden sind. Nach OK kehrt man mit beliebigem Tastendruck zum Funk- tionswahlmenue zurueck. 1.1.6. Wiederholen Alle oben beschriebenen Funktionen lassen sich unter Aufruf der Kennziffer 5 wiederholen. Hierbei bleiben alle Parameter, also: gewaehlte Kennziffer, Typ (EPROM-Groesse), EPROM-Anfangsadresse, EPROM-Endadresse und RAM-Adresse unveraendert erhalten. Das ist besonders vorteilhaft, wenn man groessere Serien von EPROMs bearbeitet, oder ein EPROM-Exemplar überprogammieren will. Die Fehler durch falsche Eingabe aller Art reduzieren sich merklich. 1.1.7. Fortsetzen Besonders bei den Funktionen "Lesen" und "Programmieren" ist es guenstig, beim Bearbeiten von EPROM-Saetzen den Parameter RAM-Adresse fortlaufend vor jedem naechsten EPROM des Satzes automatisch weiterzustellen. Unter Kennziffer 6 ist dies moeglich und kann jederzeit mit CTRL C abgebrochen werden. 2. Hardware des EPROM-Programmiergeraetes 2.1. Allgemeiner Aufbau Das EPROM-Programmiergeraet findet auf einer Zweiebenenleiter- karte von Format 135 mm x 72,5 mm Platz. Der Leiterbildentwurf stammt von V. LUEHNE und weist bereits Aenderungen zum Vorbild aus /1/ auf. Insgesamt fuenf Baugruppen - Fassung und Typsteckverbinder - Adresszaehler - Read/Write-Logik - Programmierspannungserzeugung und - Relaisblock finden auf der Leiterkarte Platz. Im Bild 1 ist der Stromlaufplan des EPROM-Programmiergeraetes ausgewiesen. Er stellt ausser Netzteil und Verbindungselemente zum Z 1013 alle oben genannten Baugruppen dar. Die Bestuek_ kungszeichnung ist unter Bild 2 angegeben. So wie in beiden Abbildungen dargelegt, ist das EPROM-Program- miergeraet bereits funktionsfaehig. Ueber einen 26poligen EFS- Steckverbinder (X1) kann es an eine PIO gemaess der Tabellen 3 und 4 angeschlossen werden, wobei es nicht zwingend ist, einen Z 1013 als Master zu benutzen. Lediglich alle betriebssystembe- dingten Besonderheiten des unter Punkt 1 beschriebenen EPROM- Handlers sind zu beruecksichtigen. 2.2. Fassung und Typsteckverbinder Den EPROM nimmt eine mindestens 28polige Schwenkhebelfassung auf. Sie ist so angeordnet, dass der EPROM einen sicheren Halt hat und vom Bediener leicht zugaenglich bleibt. Besonders emp- fehlenswert ist es, die Fassung nicht direkt auf die Leiter- platte zu loeten, sondern sie etwas erhoeht anzubringen, damit sie von keinem anderen Bauelement auf der Leiterplatte ueber- ragt werden kann. Wenn man auf eine gesonderte Befestigung der Fassung verzichten moechte, ist es unbedingt notwendig, die verlaengerten Zuleitungen auch auf der Leiterseite anzuloeten. Auf die Fassung werden acht festverdrahtete Adressleitungen und acht festverdrahtete Datenleitungen gefuehrt. Das sind dieje- nigen Signale, deren Anschlusslage bei allen EPROMs von 2708 bis 27512 gleich ist (vgl. Tab. 1 und 2). Alle anderen Leitun- gen, ausser dem Masseanschluss, haben von Typ zu Typ andere Sig- nalbelegung oder andere elektrische Kennwerte. Um diese Haupt- probleme der Mehrtypen-EPROM-Programmiergeraete zu loesen, be- nutzen die Autoren aus /1/ einen Typstecker als variablen Lei- tungsverteiler fuer Adress-Signale, Betriebsspannungen, Pro- grammierimpulse, Programmierspannung und Schaltkreissteuerung. Bild 3 zeigt die Belegung der Signale, die bei geeigneter Ver- bindung fuer die jeweilige EPROM-Groesse die geforderten An- schlussbedingungen ergeben. In den Bildern 4.1 bis 4.6 sind die Typstecker aufgefuehrt. Ihre Schaltungen sind teilweise der Li- teratur entnommen. Die Typstecker der Bilder 4.1...4.2. stammen aus /1/, wobei jedoch zu bemerken ist, dass der Typstecker des 4 K-EPROMs (2732) auf S. 84 fehlerhaft ist. Der im Bild 4.2. wurde korrigiert. Fuer die Typen 2764 und 27128 stammt die Schaltung aus /7/ und musste ebenfalls berichtigt werden. Die uebrigen zwei Typstecker wurden vom Autor entworfen, wobei je- doch nur der fuer 32 K-EPROMs getestet werden konnte. Zum Typ- stecker nach Bild 4.6. sei vermerkt, dass er vom EPROM-HANDLER V 2.9 nur indirekt gestuetzt wird (siehe 2.3). Als Typsteckver- bindertyp wurde ein 26poliger direkter Steckverbinder (TGL 29331/01) gewaehlt, wie ihn auch die Autoren in /1/ vor- schlagen. Dies gestattet es, sich die Typstecker relativ leicht selbst herzustellen. Solche Abweichungen koennen Poten- tiometer sein, die anstelle des Festwiderstandes stehen und so die Programmierspannung kontinuierlich zu veraendern gestatten. Auch zusaetzliche Leuchtdioden, die die anliegende Betriebs- spannung signalisieren, sind denkbar, wenn man VB 4 in Bild 1 nicht auf der Leiterplatte unterbringen will. Selbstverstaend- lich kann auf der Typsteckerleiterplatte eine Hilfsspannungs- quelle (Batterie, Transverter) untergebracht werden. 2.3. Adresszaehler Die EPROM-Adress-Signale von einem Zaehler zu erzeugen, ist ein erheblicher Vorteil des EPROM-Programmierens nach /1/. Gegen- ueber anderen Varianten aus /2/, /3/, /4/ reduzieren sich die Anzahl Steuerleitungen von mindestens 16 auf nur zwei, naemlich COUNT-UP und /CLEAR. Ehe die Signale auf die vier Zaehlerschalt- kreise D1, D2, D3 und D4 gelangen, werden sie von Treibern, D6.2 und D6.4 fuer den COUNT-UP- und D.6.3 fuer den /CLEAR-Im- puls, elektrisch gepuffert. In /1/ werden fuer die Adresszaehlerschaltkreise die Typen D193 genannt. Sie besitzen den Nachteil, insgesamt ca. 250 mA Be- triebsstrom aufzunehmen. Aus diesem Grunde wurde durch V. LUEHNE dem Typ DL093 (74LS93) der Vorzug gegeben. Er bela- stet das Netzteil lediglich mit 4 und 7 mA. Auf den Rueckwaerts- zaehleingang wurde verzichtet, da er nicht unmittelbar notwen- dig ist. Insgesamt hat der Adresszaehler einen Zaehlumfang von 15 bit, so dass man ohne zusaetzliche Massnahmen nur EPROMs bis zu ei- nem Fassungsvermoegen von 32 K-Byte bearbeiten kann. Mit Hilfe des Typsteckers nach Bild 5.1. laesst sich die Einschraenkung ueberwinden, da der Bankschalter ein Signal am A15-Pin des 27512 nachbildet. 2.4. Read/Write-Logik Unter Read/Write-Logik sind alle Bauelemente zusammengefasst, die unmittelbar zu VT4 gehoeren. Gemeinsam sorgen sie dafuer, dass mit Hilfe des Typsteckers eine uebliche Transistorschalt- stufe (VT4, R12 (R13)) hergestellt werden kann. Wenn VT4 durch- gesteuert ist, entsteht an seinem Kollektor Low-Potential. Ueber den Typstecker gelangt das Signal an die Freigabe-Ein- gaenge CE (CS) oder OE, so dass der jeweils gesteckte EPROM ge- lesen werden kann. Die VT4 ansteuernden zwei Negatoren D6.1 und D6.5 arbeiten als Leuchtdiodentreiber und sichern dem Anschluss /WRITE (A4:X1) einen TTL-gerechten Eingang. Der Widerstand R18 sorgt dafuer, dass das Highpotential den Vorrang hat, auch wenn der steuernde PIO-Ausgang, nach dem Einschalten des Z 1013, ein undefiniertes Signal fuehrt. Durch diese als Sicherheitsvorkehrung zu verste- hende Massnahme sichert den Vorrang des Modus' "EPROM-Lesen". Die LED VB2 ist in diesem Zustand dunkel. /WRITE: low /WRITE: high Programmieren Lesen VB2 hell VB2 dunkel Im Programmiermodus, wenn die Read/Write-Logik mit einem stati- schen Low-Signal angesteuert wird, geht die Emitter-Kollektor- Strecke von VT4 in den hochohmigen Zustand ueber. Je nach Her- stellervorschrift laesst sich an den OE-Pins der EPROMs nun ver- mittels der Typstecker ein gewuenschtes Potential herstellen. Sicherheitshalber sollte abweichend von SS 218 im Bild 1 ein Typ gewaehlt werden, der eine maximale Kollektor-Emitter-Span- nung von groesser als 30 V (UPRGmax. = 30 V) besitzt. 2.5. Programmierspannungserzeugung Die Programmierspannungserzeugung verlaeuft in mehreren Stufen und beginnt mit der Rohspannungserzeugung ausserhalb der Pro- grammiererleiterplatte. Sie kann bis zu 0,5 V verbrummt sein und sollte mit mehr als 60 mA belastbar sein, ohne um mehr als 1 V zurueckzugehen. Diese Werte haben sich bei Untersuchungen ergeben, die davon ausgehen, dass EPROMs mit einer Programmier- spannung von groesser als 26 V sehr selten sind. Im un- guenstigsten Falle sollte der Spannungsstabilisator-Schaltkreis N1 noch eine Regelreserve von 3 V haben. N1 besorgt die zweite Stufe der Programmierspannungserzeugung, indem er eine typgerechte Gleichspannung bereitstellt. Ueber den Spannungsteiler R1, R2 wird sie wunschgemaess justiert. Die Widerstandswerte von R1 und R2 sind so gewaehlt, dass ohne Typ- stecker und ohne bestaetigten Paketschalter 12 V am Ausgang des MAA 723 (N1) erscheinen. Als besonderer Grund ist hierfuer der Umstand zu nennen, dass die niedrigste bekannte Programmier- spannung bei 12,5 V liegt. Alle anderen geforderten Werte bewe- gen sich oberhalb dieser Grenze und koennen erzielt werden, indem man den Widerstand R2 vermindert. Diese Verminderung ist nach /1/ am leichtesten durch einen Paralellwiderstand zu errei- chen, der zwischen den Anschluessen B1 und B6 des Typsteckers angebracht wird. Hieran ist nachteilig, dass nicht nur fuer n EPROM-Groessen, sondern auch fuer m verschiedene Programmier- spannungen Typstecker herzustellen sind. Im Extremfall muessten n x m Typstecker angefertigt werden. Der Ausweg bietet sich hier durch einen zusaetzlichen Schalter an, durch den sich die Pro- grammierspannung unabhaengig vom Typstecker einstellen laesst. Nicht nur der Umstand der eingesparten zusaetzlichen Typstecker, sondern auch die Moeglichkeit bei unbekannter Programmierspan- nung sich an einen akzeptablen Wert heranzutasten, lassen diesen Paketschalter als attraktiv erscheinen. Neben den sieben Schaltstufen fuer Festspannungen von: 12,5 V 13,0 V 16,0 V 18,5 V 21,0 V 24,0 V 26,0 V, hat der Schalter eine achte Stellung, die keinen Widerstand bedient. Sie ist dafuer vorgesehen, um vorhandene Typstecker mit Widerstand einsetzen zu koennen. Vom Ausgang des Programmierspannungserzeugers N1 wird auf zwei Stellen verzweigt. Die erste ist der Typsteckverbinderkontakt B2:X2. Von hier aus koennen die EPROM-Typen 2716 2764 27128 und 27256 fuer die Programmierung versorgt werden, denn sie benoetigen eine Gleichspannung /8/, /9/ der vom Hersteller geforderten Hoehe. Als zweite Stelle ist ein Chopper zu nennen, der als Gegentakt- Komplementaer-Stufe aufgebaut ist und aus den Transistoren VT 1, 2, 3 nebst den Widerstaenden R4...R10 besteht. Alle EPROM- Typen, die eine pulsierende Programmierspannung benoetigen (2708, 2732 und 27512), werden ueber den Anschluss A1:X2 von diesem Chopper versorgt. Er schaltet fast restspannungslos mit steiler Flanke zwischen 0 V und der durch R2 eingestellten Programmierspannung UPRG hin und her. Eventuelles Ueberschwin- gen soll das RC-Glied R4, C2 unterdruecken, da es empfindliche EPROM-Exemplare zerstoeren kann. Um den Chopper zu bedienen, wird an den Basen von VT1 und VT2 als Steuerspannung eine gegenphasige Impulsfolge benoetigt. Ein monostabiler Trigger (D5) mit komplementaeren Ausgangssignalen ist hierfuer besonders geeignet. Er sichert naemlich, dass sein stabiler Zustand fuer die ausgeschaltete Programmierspannung steht und im Falle von Programmabstuerzen UPRG auf 0 V zurueck- kehrt. Die Dauer eines Programmierspannungsimpulses wird von der R/C- Kombination C3, R14 bestimmt und liegt nach Empfehlung aus /1/ bei 1 ms. Sollte naemlich ein EPROM z. B. nach bereits zwei Pro- grammierzyklen zu je 1 ms schon stabile Inhalte haben, dann kann auf den geforderten Rest von 48 ms Programmierzeit zumin- dest teilweise verzichtet werden. Eine laengere Lebensdauer dieses EPROM-Exemplares ist dann eine angenehme Folge jenes Ver- zichtes. Vom Rechner wird der Programmierspannungs-Impulserzeuger ueber Pin 5 des Schaltkreises D5 mit einer Low-High-Flanke ange- stossen (vgl. Bild 6). Nach der Ausloeseflanke durchlaeuft das Programmirprogramm EPROM-HANDLER V 2.9 eine Warteschleife. Nach dieser Warteschleife (Pauschalzeit) erfolgt zunaechst eine Ta- staturabfrage nach dem Abbruchzeichen CTRL C. Bei einer Rechner- taktfrequenz von 2 MHz dauert eine solche Tastaturabfrage ca. 10 ms, so dass das nachfolgende Lesen des /READY-Signales einen beendeten Programmierimpuls anzeigt. Der Inhalt der Speicher- zelle 061FH ist fuer die Pauschalzeit verantwortlich und liefert beim Wert von 20H 256 us. EPROM-Typen, die keine pulsierende Programmierspannung benoeti- gen, haben einen TTL-gerechten Programmierimpuls. Er gibt die Progrmmierspannung erst im Inneren des EPROMs zur Wirkung frei. Von den gegenphasigen Ausgaengen des 74121 werden diese Program- mierimpulse auf den Typsteckverbinder X2 (Bild 3) gefuehrt, um je nach Typstecker zur Anwendung zu kommen. Die Leuchtdiode VB1 soll nach Absicht der Verfasser aus /1/ den aktivierten Impulsgeber D5 hervorheben. Jedoch ist dies nicht guenstig gewaehlt, denn die Impulsfolge an Pin 6 von D5 hat ein Tastverhaeltnis von 0,08. Die maessig glimmende LED steht daher im Schatten von VB2, zumal beide ohnehin gleichzeitig leuchten, weil der Zustand "aktive Programmierimpulserzeugung" an den Zu- stand "/WRITE" gebunden ist. Man koennte auf VB1 verzichten, wenngleich die Leuchtdiode eine willkommene Testhilfe bei der Inbetriebnahme ist. 2.6. Relaisblock Vom Programmierprogramm EPROM-HANDLER V 2.9 werden zwei Relais (K1 und K2) bedient. K1 besitzt einen Arbeitskontakt und schal- tet damit die Programmier(gleich)spannung auf den Typsteckver- binder X2. Um einen geschlossenen Kontakt anzeigen zu koennen, wird der Spulenstrom ueber die Leuchtdiode VB3 gefuehrt. Der Widerstand R24 liefert einen Nebenschluss, um einen Teil des Spulenstromes umzuleiten. Seine Groesse richtet sich nach der verwendeten Leuchtdiode und nach der gewuenschten Helligkeit. Das Relais K2 verfuegt ueber zwei Arbeitskontakte und hat hier- mit die Aufgabe, die EPROM-Betriebsspannungen UCC (+5 V) mit K1.1 und UDD (+12 V) mit K1.2 einzuschalten. Leider haben die Autoren aus /1/ hier keinen Indikator vorgesehen. Es waere durchaus ratsam, die eingeschalteten EPROM-Betriebsspannungen anzuzeigen, denn das kann ein Achtungszeichen sein, bei span- nungsfuehrender Fassung, z. B. bei der Funktion 3 (Vergleichen), den EPROM nicht abzunehmen. VB4 ist nicht auf der Bestueckungs- zeichnung enthalten. 2.7. Anschluss an den Z 1013 Der Anschluss des Programmiergeraetes an den Z 1013 geschieht vermittels einer zusaetzlichen PIO, da das USER-Port am Steck- verbinder X4 nicht ausreicht. Von den 16 Portanschluessen der PIO (A0...A7; B0...B7) werden 15 verwendet. Die ihnen zuge- teilten logischen Signale mit ihren Spezifikationen sind in Tab. 3 aufgefuehrt. Mit Hilfe eines mehradrigen Kabels wird das EPROM-Programmier- geraet an die zusaetzliche PIO angeschlossen, wobei man aus Bild 8 erkennen kann, dass die Anschlussleitung kuerzer als 60 cm sein muss, da sich ansonsten Adressversatzfehler ergeben. Die Laengenangabe gliedert sich in einen fixen Anteil von 30 cm, der sich aus den Leitungen auf dem Programmiergeraet und der PIO-Baugruppe zusammensetzt, und aus einem variablen Teil, der die Laenge des Kabels angibt. Um ohne Zusatzmassnahmen fehler- frei zu arbeiten, muss das Anschlusskabel also kuerzer als 30 cm sein! Ist man gezwungen, laengere Anschlusskabel einzusetzen, ergeben sich Schwierigkeiten. Diese sind durch die Anpassungsverhaelt- nisse an der Anschlussleitung bedingt, denn sie ist bei 200 Ohm Wellenwiderstand durch niederohmige Sender (50 Ohm) und durch hochohmige Empfaenger (6 kOhm) beschaltet. Nach einem graphi- schen Loesungsverfahren, das in /11/ beschrieben ist, wurde der Signalverlauf am Leitungsende ermittelt (Bild 7). Bemerkenswert ist hierbei das positive Ueberschwingen. Es kann nach einer H/L-Flanke unerwuenschte zusaetzliche Schaltvorgaenge ausloesen, was namentlich am COUNT-UP-Eingang zu Fehlern fuehrt, da anstel- le eines Zaehlimpulses zwei wirken. Mitten im "Lesen" oder "Programmieren" scheint dann eine EPROM-Adresse ausgelassen zu sein! Ob der Zusatzimpuls zur Wirkung kommt, haengt vorrangig von seiner Dauer ab, und diese wird von der Leitungslaenge bestim- mt. Bei 60 cm Leitungslaenge entsteht eine Impulsbreite von 6 ns, bei 90 cm 9 ns und bei 1,4 m 14 ns. Betrachtet man nun noch den minimalen Schaltabstand eines LS-TTL-Gatters von 9 ns, dann wird klar, dass dadurch Schaltvorgaenge ausloesten werden koenen. Aus Bild 8 ergibt sich, dass nach durchschnittlich 1100 COUNT-UP-Impulsen ein stoerender Zusatzimpuls wirkt. Als Gegenmassnahme, die nur fuer die COUNT-UP-Leitung noetig ist, bietet sich als Minimalvariante ein "Entprellkondensator" gemaess Bild 10 an. Nach Empfehlung aus /12/ darf er eine Kapa- zitaet von bis zu 1 nF haben. Mit ihm lassen sich Ueberschwing- impulse bis zu einer Breite von 20 ns sicher unterdruecken. Die sich daraus ergebende Anschlusskabellaenge von 1,7 m duerf- te fuer die meisten Anwendungsfaelle ausreichen. Weniger auffaellig, jedoch gefaehrlicher, ist das negative Ueberschwingen. Fuer den Fall, dass man einen EPROM program- miert, liegt an seinen Dateneingaengen kurzzeitig negatives Potential an, was kleiner als der zulaessige Grenzwert von -0,3 V ist. Um den EPROM vor negativen Eingangsspannungen zu schuetzen, empfiehlt es sich, in die Daten-Anschlussleitungen einen Leitungstreiber-IC einzufuegen (siehe Bild 9). Das hat neben dem EPROM-Schutz den guenstigen Nebeneffekt, dass bei der Funktion "Lesen" die Datenausgaenge des EPROMs nicht das An- schlusskabel treiben muessen. Selbstverstaendlich entsteht das negative Ueberschwingen auch an den PIO-Eingaengen beim "Lesen". Hier bietet sich an, die PIO-Pins des Ports A mit Germanium-Dioden gegen Masse zu sich- ern. 2.8. Netzteil Zum Netzteil lassen sich lediglich Empfehlungen geben, denn je- der Amateur ist hierbei durch seine speziellen Gegebenheiten gebunden. Als Entscheidungshilfe sollen hierzu die Gegenueber- stellung von externer und interner Stromversorgung dienen. extern intern Stromaufnahme problemlos, uebliche problematisch, Schaltungen drei Spannungen im Rechner noetig Programmierspannung problemlos, uebliche problematisch, Schaltungen Verwendung des Koppelbusses bei K 1520-kompatib- len Baugruppen, Abweichungen von der Systembusbe- legung (auf alle Faelle vermeiden), Aufbau eines Transver- ters auf dem PIO- Modul, separate Zufuehrung Schaltungsaufwand mittlerer Aufwand mittlerer Aufwand mechanischer Aufwand sehr hoch gering Anschluss lange Leitungen kurze Leitungen Handhabbarkeit gut, an anderen Orten eingeschraenkt, Rechnertypen einsetz- da an Ort und bar Aufbau gebunden In Bild 4 ist der Vorschlag eines externen Netzteiles abgebil- det. Die Stromergiebigkeit der 17 V-Gleichspannungsquelle soll- te mindestens 500 mA betragen. Nachstehend aufgefuehrte Tabel- le gibt ueber die Stromaufnahme des EPROM-Programmierers Aus- kunft: passiv aktiv + 5 V 65 mA 140 mA + ICC-EPROM +12 V 0 mA 40 mA + IDD-EPROM - 5 V 0 mA IBB-EPROM +30 V kleiner 2 mA kleiner 50 mA Anmerkungen ----------- 1) Fuer 1 KByte-EPROMs kann auch die Kennziffer 55 angegeben werden, da der der internationale Typ 2708 in der DDR die Bezeichnung U 555 C trägt. 2) Das Verlassen des EPROM-Handlers mit RESET ist während des aktiven Progammierens zu vermeiden, da ansonsten die EPROM-Zelle "0" einen falschen Inhalt annehmen kann. Literaturverzeichnis ____________________ / 1/ Huebler, H.; Evert, K.-P.: Amateurreihe "Elektronika" Nr. 227 u. 228/ Huebler, H.; Evert, K.-P. - Berlin, 1985 S. 76 / 2/ LC-80 Systemunterlagen / 3/ Buerger, B.: Reihe "Information Applika- tion" Nr. 41 Halbleiterspei- cher Teil 3 / Buerger, B. - KdT Frankfurt/O., 1987 S. 42 / 4/ Buerger, B.: Reihe "Information Applika- tion" Nr. 41 Halbleiterspei- cher Teil 3 / Buerger, B. - KdT Frankfurt/O., 1987 S. 40 / 5/ Mueller, M.; Krueger, S.: EPROM-Programmiergeraet / Mueller, M.; Krueger, S. Radio Fernsehen Elektronik. - Berlin 31 (1982) 10. S. 621 / 6/ Kuehnel, Th.: Einfacher EPROM-Programmier- modul / Kuehnel, T. Radio Fernsehen Elektronik. - Berlin 35 (1986) 10. S. 633 / 7/ Brosig, R.: CODIERSTECKER 4. Textfile / 8/ Mueller, M.: EPROM-Programmiergeraet / Mueller, M. Radio Fernsehen Elektronik. - Berlin 37 (1988) 7. S. 429 / 9/ Buerger, B.: Reihe "Information Applikation" Nr. 41 Halbleiterspeicher Teil 3 / Buerger, B. - KdT Frankfurt/O., 1987 /10/ Brosig, R.: Z-1013-Tastatur mit Raffines- sen. Mikroprozessortechnik 7/88, S. 215 /11/ Turinsky, G.: Leitungsabschlussschaltungen / Turinsky, G. Radio Fernsehen Elektronik. - Berlin 32 (1983) 8. S. 182 /12/ Kuehn, E.; Schmied, H.: Handbuch Integrierter Schalt- kreise / Kuehn, E.; Schmied, H. - Berlin, 1979 S. 113 Autor: U. Hinz Dresden, 06. 03. 1988 *************************************************************** ^^^^^