mtr9 Programmiergerät - Emulator
mtr9A Standard-Programmiergerät

© 2015 by mtr, Dr.-Ing. Roland Ranfft
mtr9, mtr9A, Rev. 10a

mtr, Dr.-Ing. Ranfft, Erkelenzer Str. 98, D-41844 Wegberg
Tel  01575 2840629
E-mail: info@ranfft.de
Internet: http://www.ranfft.de

DEUTSCH
ENGLISH


mtr9 / mtr9A EPROM-Programmiergerät

Bedienungsanleitung

____________________________________________________
Inhalt

1  Übersicht
2  Inbetriebnahme: Stromversorgung, Daten-Pufferung
3  Benutzerführung
4  Adreß-Behandlung
5  Festlegung des EPROM-Typs
6  Typabhängige Funktionen
6.1  Lesen
6.2  Programmieren
6.3  Leertest
6.4  Vergleichen
6.5  Emulieren
7  Editor
7.1  Anzeigen, Ändern
7.2  Suchen
7.3  Füllen
7.4  Verschieben
7.5  Split, Shuffle
8  Datenübertragung
8.1  Daten-Format
8.2  Adreßeingabe
8.3  Empfang (down load)
8.4  Senden (up load)
9  V.24-Schnittstelle konfigurieren
9.1  Baudrate
9.2  Bitmuster
9.3  Handshake
9.4  Test
10  Fernbedienung
11  Steckerbelegung der V.24-Schnittstelle
12  Betrieb mit Sockeladaptern
13  Fehlermeldungen
14  Programm-Optionen
15  Austausch des Betriebsprogramms
16  Betriebsstörungen


 
1 Übersicht

Das mtr9 dient zum Programmieren, Testen, Editieren und Emulieren von EPROMs, Flash-EPROMs und EEPROMs bis 1 Mbit. Mit den Speicher-Erweiterungen mtr9-2A (2Mbit), -2B (4Mbit), 2C (8Mbit) und -2D (16Mbit) ist auch die Unterstützung größerer Speicher möglich. Außerdem sind für viele spezielle Bauelemente, insbesondere Ein-Chip-Mikrocomputer Sockeladapter lieferbar.
Da das mtr9 einschließlich Prozessor und Analyse-RAM weitgehend in CMOS-Technik aufgebaut ist, kann man es z.B. für Service-Zwecke ausreichend lange mit dem eingebauten Akkumulator betreiben. Die V.24-Schnittstelle ermöglicht die Kommunikation z.B. mit einem Hostrechner, einem Entwicklungssystem oder einem weiteren mtr9. Außerdem kann das mtr9 über diese Schnittstelle bedient werden.
Die Bedienung erfolgt unter Benutzerführung mit jederzeit abrufbarer Kurzanleitung über die aktuell verfügbaren Funktionen. Schutzfunktionen für Gerät und Bauelemente erlauben die Inbetriebnahme ohne Vorkenntnisse; denn nach einer Fehlbedienung gibt eine Fehlermeldung Hinweise über die Art des Fehlers. Vom zu bearbeitenden EPROM muß nur die auf jedem Exemplar aufgedruckte Typkennzahl (z.B. 2764) bekannt sein, und selbst diese wird meist vom mtr9 erkannt . Weitergehende Unterschiede werden i.a. automatisch erkannt, so daß auf Datenblätter und Tabellen verzichtet werden kann.
Die Low-Cost-Version mtr9A ist weitgehend funktionsgleich mit dem mtr9. Es bestehen lediglich folgende Einschränkungen: Sockeladapter werden mit Ausnahme einfacher passiver Umsetzer z.B. für SMD-Gehäuse nicht unterstützt. Außerdem wurde auch auf die Emulator-Funktion (Abschnitt 6.5) verzichtet.


2 Inbetriebnahme: Stromversorgung, Daten-Pufferung

Vor der Inbetriebnahme überprüfen Sie bitte, ob der Netzadapter für Ihre Netzspannung ausgelegt ist, und lassen Sie ihn ggf. austauschen. Sie können aber auch ein handelsübliches Universal-Steckernetzteil verwenden, wenn dies eine Wechselspannung von 6V bis 12V oder eine Gleichspannung von 9V bis 16V bei ca. 200mA abgibt (die Polarität bei Gleichspannung ist ohne Bedeutung).
Sobald das mtr9 an den Netzadapter angeschlossen ist, wird die Batterie geladen, gleichgültig ob das mtr9 eingeschaltet ist oder nicht. Das Aufladen einer leeren Batterie dauert ca. 3 Stunden. Mit einer vollen Batterie kann ca. eine Stunde lang programmiert werden (reine Programmierzeit). Dies genügt aufgrund der schnellen Programmierverfahren für viele Programmiervorgänge, denn bei allen anderen Funktionen reicht eine Batterieladung für ca. acht Stunden. Zwar ist eine Überladung der Batterie nicht möglich, dennoch sollte im Sinne einer hohen Lebensdauer die ständige Dauerladung vermieden werden.
Rechtzeitig vor der völligen Entladung der Batterie schaltet sich das mtr9 automatisch ab. Die verbleibende Batteriekapazität reicht dann immer noch aus, sowohl den Inhalt des Analyse-RAM als auch die vom Anwender eingestellten Betriebsdaten für einige Wochen zu sichern; lediglich bei Daten, für die hier bzw. im Hilfstext des Bedienungsmenüs darauf hingewiesen wird, werden bei jedem Einschalten Vorwahlwerte eingesetzt.
Nach dem Einschalten läuft zunächst ein Selbsttest ab und es erscheint eine Copyright-Meldung mit Typangabe mtr9 bzw. mtr9A. Nach wenigen Sekunden fordert die Anzeige "Taste D: Deutsch" / "key E: English" zur Wahl der Sprache für alle weiteren Texte auf. Nach der Wahl erscheint kurz ein Hinweis über die verfügbare RAM-Größe (1, 2, 4,8 oder 16Mbit) und anschließend der erste Menütext.


3 Benutzerführung

Im folgenden wird eine Tastenbetätigung durch <TASTE> und ein Anzeigeinhalt durch "Anzeige" gekennzeichnet.
Die Bedienung erfolgt mit Hilfe von Menüs. Mit den Pfeiltasten kann ein Wert, eine Funktion oder ein Untermenü aus einem Menü gewählt werden. Enthält die Anzeige mehrere Eingabefelder, so wird mit den Pfeiltasten zwischen den Feldern gewählt und erst nach Erreichen des ersten bzw. letzten Feldes auf den vorherigen bzw. nachfolgenden Menütext gewechselt.
Mit <ENTER> werden alle Werte einer Anzeige festgelegt, eine Funktion gestartet oder ein angebotenes Untermenü aufgerufen. Mit <EXIT> wird eine laufende Funktion abgebrochen. Wurden mit <ENTER> zuvor Untermenüs aufgerufen, so kehrt man mit <EXIT> schrittweise zum Hauptmenü zurück.
Ist eine Zahleneingabe notwendig oder möglich, so wird dies durch einen blinkenden Cursor angezeigt; Adressen und Daten müssen hexadezimal eingegeben werden. Wird bei der Eingabe die zulässige Feldlänge erreicht, so erfolgt ein Wechsel auf das nächste Eingabefeld; ist kein weiteres Feld vorhanden, so bleibt der Cursor im letzten bzw. einzigen Feld. Unzulässige Eingabewerte werden entsprechend dem zulässigen Bereich korrigiert, und ein intermittierender Piep-Ton signalisiert diese Korrektur.
Zu jedem Menü gibt es eine Kurzanleitung, die mit der Taste <?/0> aufgerufen werden kann. Außerdem werden Texte, die nicht in die Anzeige passen mit dieser Taste fortgesetzt; auf diese Fortsetzungsmöglichkeit wird durch ein inverses Fragezeichen unten rechts in der Anzeige hingewiesen. Auch wenn die Taste <?/0> für die Zahleneingabe benötigt wird, kann man damit den Anleitungstext aufrufen, indem man die Taste ca. eine Sekunde lang drückt.
Meldungen werden durch einen Piep-Ton angekündigt. Sie müssen durch Drücken irgendeiner Taste quittiert werden, gleichgültig, ob es sich um einen Betriebshinweis (kurzer Dauerton) oder eine Fehlermeldung (langer intermittierender Ton) handelt. Ist keine Zifferneingabe vorgesehen (kein Cursor), so kann man mit den Ziffern-Tasten <1>...<F> direkt einen der ersten 15 Texte eines Menüs wählen.


4 Adreß-Behandlung

Zur Vereinfachung der Bedienung sind die eingegebenen Adreßbereiche gleichermaßen für EPROM und mtr9-RAM gültig (Ausnahme s. 6.5); man braucht also keinerlei Adreß-Offset zu berücksichtigen.
Der Speicherraum seitenadressierter EPROMs (27513, 27011) wird fortlaufend im Adreßraum des mtr9-RAM abgebildet; d.h. Seite 0 belegt dem Bereich 0...3FFF, Seite 1 den Bereich 4000...7FFF usw.
Für die meisten Bauelemente besteht zusätzlich die Möglichkeit der Satzbearbeitung. Hierzu kann in der ersten Zeile des Adreß-Eingabefeldes eine Satz-Nr. von 0 bis F eingegeben werden; es kann also unter bis zu 16 Datensätze gewählt werden, sofern der installierte Speicher ausreicht. Die Adreßbereiche werden dabei automatisch eingestellt.
Adressen, die im Zusammenhang mit der Programmierung oder der Datenübertragung (vgl. 6.2 bzw. 8.2) eingegeben wurden, werden gesondert gespeichert und stehen für weitere gleichartige Funktionen zur Verfügung. Bei den übrigen Funktionen wird jeweils der Adreßbereich aus der letzten Funktion übernommen, gleichgültig, ob das mtr9 zwischenzeitig ausgeschaltet wurde oder nicht.


5 Festlegung des EPROM-Typs

Die erste Funktion im Hauptmenü ist "Typ eingeben". Die EPROM-Typ-Nummer kann mit den Pfeiltasten aus dem Menü ausgewählt werden. Das Menü enthält in der Regel nur die Kenn-Nummer, nicht aber Zusätze, die die Programmierspannung oder den Herstellungsprozess kennzeichnen. Entsprechend können nach Wahl des Typs 2764 ebenfalls z.B. die Typen 2764A und 27C64 mit beliebiger Programmierspannung Vpp bearbeitet werden oder sogar ein 87C64 (27C64 mit Multiplex-Bus). Die Wahl der Programmierspannung sowie die Anpassung an herstellerspezifische Unterschiede bei der Zugriff-Steuerung erfolgen automatisch. Das mtr9 enthält eine Typkode-Tabelle, die laufend aktualisiert wird. EPROMs mit einem Typkode (silicon signature), der in der Tabelle enthalten ist, werden automatisch erkannt.
Die eingegebene oder automatisch erkannte Typ-Nummer bleibt bis zur Neueingabe oder bis zur automatischen Erkennung eines anderen Typs erhalten. Wird eine typabhängige Funktion mit <ENTER> gestartet, so erscheint in der Anzeige kurzzeitig die aktuell gültige Typ-Nummer; auf die automatische Typerkennung wird durch einen Piepton und die zusätzliche Anzeige des Hersteller-Namens hingewiesen.

Beispiel 5

Es sollen mehrere EPROMs vom Typ 2764 mit dem Inhalt eines Muster-EPROMs programmiert werden:
1) Aus Hauptmenü "Typ eingeben" wählen und mit <ENTER> starten. Es wird der zuletzt verwendete Typ angezeigt.
2) Mit <é>/<ê> Anzeige "2764" wählen und mit <ENTER> oder <EXIT> Wechsel zum Menütext "Lesen"; man kann nun sofort mit dem Lesen des Muster-EPROMs fortfahren und später die Duplikate erstellen.
3) Versehentlich wird ein Intel D27128A in den Sockel gesteckt. Nach Start der Programmierung erscheint "27128 Intel", begleitet von einem Signalton.
4) Man muß nun erneut bei 1) beginnen, da durch die Typerkennung auf den Typ 27128 gewechselt wurde.


6 Typabhängige Funktionen

Aus dem Hauptmenü kann eine der folgenden Funktionen zur EPROM-Bearbeitung ausgewählt werden:

1) Lesen,
2) Programmieren,
3) Leertest,
4) Vergleichen,
5) Emulieren.

Mit <ENTER> wird die gewählte Funktion gestartet und in der Anzeige erscheint kurzzeitig der zuletzt festgelegte Typ, bzw. wenn sich ein EPROM mit Typkode (silicon signature) im Sockel befindet, dessen Typ- und Hersteller-Angabe. Anschließend erscheint der erste Menütext zu dieser Funktion.
    Wird eine Funktion bis zum Ende fehlerfrei abgearbeitet, so erscheint eine Schlußmeldung mit der Prüfsumme des bearbeiteten Datensatzes (vierstellige arithmetische Summe aller Daten-Bytes ohne Überträge).
Nach Abarbeitung der Funktion erfolgt normalerweise ein Rücksprung ins Hauptmenü an die ursprüngliche Stelle, d.h. nach Abschluß einer Programmierung und Löschen der Prüfsumme durch irgendeine Taste erscheint wieder "Programmieren" und es kann sofort das nächste EPROM programmiert werden.
Eine Ausnahme bildet die häufig benötigte Folge: Typ eingeben, Muster lesen, Duplikate erstellen. Entsprechend steht in der Anzeige nach Abschluß der Typeingabe "Lesen" und nach dem Lesen "Programmieren".

6.1 Lesen

Ein Quell-EPROM (Master) kann wahlweise ganz oder teilweise gelesen werden; d.h. sein Inhalt wird in das RAM übertragen. Das Menü enthält die Angabe "Komplett" und die Eingabefelder für Start- und Endadresse. Mit <ENTER> nach "Komplett" wird das EPROM vollständig gelesen. Nach <ê> erscheint der zuletzt bei dieser oder einer anderen Funktion verwendete Adreßbereich; dieser kann erneut verwendet oder mit neuen Werten überschrieben werden. Nach <ENTER> wird der so spezifizierte Bereich gelesen.

Beispiel 6.1
Ein 2764 soll vollständig gelesen werden:
1) Aus Hauptmenü mit Pfeiltasten "Lesen" wählen.
2) <ENTER> -> kurzzeitig "2764", dann "Komplett".
3) <ENTER> -> kurzzeitig "Warten", dann "Prüfsumme".
4) <Taste> -> "Programmieren" (Hauptmenü).

6.2 Programmieren

Ein Ziel-EPROM kann wahlweise ganz oder teilweise (vgl. 6.1) programmiert werden; d.h. der RAM-Inhalt wird in das EPROM übertragen. Falls zulässig, wird als Vorwahl-Adreßbereich der bei der letzten Programmierung verwendete Bereich eingesetzt, auch wenn zwischenzeitlich andere Funktionen genutzt wurden. Auch der zuletzt verwendete Programmieralgorithmus kann erneut verwendet werden.
Beides erreicht man, indem man die Programmierung direkt ausgehend vom Menütext "Programmierdaten wie zuvor" startet. Dieser Text wird jedoch nicht angeboten, wenn gegenüber der letzten Programmierung der EPROM-Typ gewechselt wurde (es darf aber z.B. zwischenzeitlich ein anderer Typ gelesen werden).
Soweit nicht durch den EPROM-Typ ein bestimmter Programmieralgorithmus vorgeschrieben ist, bietet das mtr9 folgende Algorithmen an:
1) Schnell (mtr): Wie "inteligent", jedoch mit einer Zeitbasis von 0,1ms anstelle von 1ms.
2) "inteligent" (nach Intel): Es wird zunächst mit 1ms-Pulsen programmiert. Steht nach n Pulsen das Daten-Byte korrekt im EPROM, so wird zusätzlich mit einem Puls der Dauer 3n x 1ms nachprogrammiert.
3) "Quick-Pulse" (nach Intel): Es wird mit 0,1ms-Pulsen programmiert, bis das Daten-Byte korrekt im EPROM steht; eine Nachprogrammierung erfolgt nicht. Dieser Algorithmus ist derzeit nur für wenige Intel-Typen zugelassen; dieser Algorithmus sollte aus Gründen der Datensicherheit bei EPROMs mit Vpp=21V oder 25V nicht verwendet werden.
4) "SNAP!" (nach TI) bzw. "RAPID" (nach Atmel).
5) "Quick Pro" (nach Fujitsu): Wie "inteligent", Nachprogrammierdauer jedoch nur n x 1ms.
6) Standard (50ms): Programmierung mit 50ms je Byte. Dieser bei weitem langsamste Algorithmus bietet durchaus nicht immer die größte Datensicherheit.

Vor der Programmierung wird geprüft, ob der zu programmierende Bereich gelöscht ist. Erscheint "nicht gelöscht", so kann die Programmierung mit <EXIT> abgebrochen oder mit irgendeiner anderen Taste dennoch gestartet werden; allerdings erlaubt die Programmierung je Bit nur den Wechsel von 1 (gelöscht) auf 0 (programmiert), sie wird daher mit einer Fehlermeldung abgebrochen, wenn ein Byte nicht programmierbar ist.
Die Datensicherheit der programmierten EPROMs hängt ganz erheblich von der Versorgungsspannung Vcc ab, bei der verifiziert (geprüft und für richtig befunden) wird. Z.B. kann eine auf Null programmierte Speicherzelle bei Vcc=5V korrekt als 0 gelesen werden, bei zunehmender Spannung Vcc aber als gelöscht (Bit=1) erscheinen, da die ausgelesene Information von der Differenz zwischen Vcc und der (durch die Programmierung verschobenen) Schwellspannung der Speicherzelle abhängt. Deshalb verifiziert das mtr9 bei Vcc=6,25V, wie von den meisten Halbleiterherstellern empfohlen; dieser Wert bietet optimale Datensicherheit auch mit den modernen Schnellprogrammierverfahren.
Da die Verifizierung der einzelnen Bytes direkt nach der Programmierung keine Sicherheit gegen eine spätere Änderung durch Zellenkopplung oder Adreßbusfehler bietet, wird der gesamte Datensatz nach dem Ende der Programmierung nochmals unter normalen Betriebsbedingungen geprüft (Vcc=5V, Vpp abgeschaltet).
Mit Ausnahme des "Quick-Pulse" wird bei allen Algorithmen die Datensicherheit durch zusätzliche Programmierimpulse nach bereits korrekter Verifizierung erhöht; beim "Quick-Pulse"-Algorithmus ist daher Vorsicht bei EPROMs geboten, für die er vom Hersteller nicht zugelassen wird. Je nach innerem Aufbau der Programmierlogik des EPROMs kann das Verifizier-Ergebnis von der Programmierspannung abhängen, d.h. ein bei anliegender Programmierspannung korrekt als 0 gelesenes Bit kann ohne Programmierspannung (Normalbetrieb) als unprogrammiert (=1) gelesen werden. Da dieser Einfluß von Vpp jedoch gering ist, können EPROMs mit Vpp=12,5V i.a. mit "Quick-Pulse" programmiert werden.
Die übrigen Algorithmen sind dagegen hinsichtlich der Datensicherheit etwa gleichwertig. Insbesondere bietet der mtr-Schnell-Algorithmus etwa die gleiche Datensicherheit wie der weit verbreitete "inteligent"-Algorithmus, ist aber drei- bis zehnfach schneller; er kann für nahezu jedes EPROM empfohlen werden.
Dennoch ist es sicher nicht falsch, genau das Programmierverfahren zu verwenden, das der jeweilige Hersteller vorschlägt, um dessen Angaben über die Datenzuverlässigkeit sicherzustellen. Andererseits ist es dort, wo die Langzeit-Datensicherheit nicht im Vordergrund steht, wie etwa in der Entwicklung, durchaus sinnvoll, durch Verwendung des schnellsten Algorithmus ("Qick-Pulse") Zeit zu sparen; z.B. werden dann für einen 27128 nur ca. 6s benötigt, drei Sekunden für die Programmierung selbst und drei Sekunden für die in allen Algorithmen durchgeführten umfangreichen Tests:
1) Tests vor der Programmierung:
1.1) Versorgungsstrom prüfen.
1.2) Vpp-Anschluß bei Vpp=5V und Vcc=0V prüfen.
1.3) Ist der Datenbus hochohmig, wenn kein EPROM-Zugriff erfolgt?
1.4) Sind die Datenbuspegel bei einem EPROM-Zugriff logisch definiert?
1.5) Adreßbus auf Kurzschlüsse prüfen.
1.6) Sind alle zu programmierenden Bytes gelöscht?
1.7) Vcc auf 6,25V erhöhen, Versorgungsstrom testen.

2) Tests während der Programmierung (je Byte):
2.1) Adreßbus auf Kurzschlüsse prüfen (Stichproben).
2.2) Ist der Datenbus während des Programmierimpulses als Eingang geschaltet?
2.3) Ist das Byte programmierbar?
2.4) Automatische Bestimmung der zum Verifizieren erforderlichen Signale.
2.5) Verifizieren und ggf. weiter programmieren.
2.6) Test auf Maximalwerte für Impulsdauer und Anzahl.
2.7) Automatische Bestimmung von Vpp, solange die Programmierung erfolglos ist.
Hierfür wird ein komplizierter Algorithmus verwendet, da viele EPROMs bei zu
geringer Programmierspannung nicht verifiziert werden können.

3) Tests nach der Programmierung:
3.1) Vcc auf 5V verringern und warten bis Vcc stabil.
3.2) Adreßbus auf Kurzschlüsse prüfen.
3.3) Gesamten programmierten Bereich verifizieren.

Für einen Aufwand von drei Sekunden beim 27128 erhält man also nicht nur ein programmiertes, sondern auch ein sorgfältig getestetes EPROM. Außerdem ist es aufgrund dieser Tests nahezu unmöglich, irgendein Bauelement, das in den mtr9-Sockel paßt, zu beschädigen, weil nach einer Fehlererkennung sofort Vcc abgeschaltet wird und Vpp nur angelegt wird, wenn das Bauelement sich hinsichtlich der Adreß-, Daten- und Zugriffsanschlüsse so verhält wie das per Typeingabe festgelegte EPROM.

Beispiel 6.2

Von mehreren 2764 soll die erste Hälfte (00...0FFF) unter Verwendung des mtr-Schnell-Algorithmus programmiert werden:
1) Aus Hauptmenü "Programmieren" wählen.
2) Erstes EPROM einsetzen
3) <ENTER> -> kurzzeitig "2764", dann letzter Algorithmus.
4) <é> / <ê> -> "Schnell (mtr); 0,1ms-Pulse" .
5) <ENTER> -> "Komplett".
6) <ê> -> "Adreßbereich 0: ssssss...eeeeee"
(zuletzt verwendeter Bereich).
7) <0><ê> -> "Adreßbereich 0: 0...eeeeee", (neue Startadresse).
8) <F><F><F> -> "Adreßbereich 0: 0... FFF", (1. Hälfte 2764).
9) <ENTER> -> "Warten" (Programmierzeit), dann "Prüfsumme".
10) EPROM herausnehmen und nächstes einsetzen; für alle weiteren EPROMs genügt
die nachstehende Bedienung.
11) <Taste> -> "Programmieren".
12) <ENTER> -> kurzzeitig "2764", dann "Programmierdaten wie zuvor".
13) <ENTER> -> "Warten" (Programmierzeit), dann "Prüfsumme".

6.3 Leertest

Ein EPROM kann wahlweise ganz oder teilweise (vgl. 6.1) auf Löschung geprüft werden. Als Ergebnis wird nur gemeldet, ob der spezifizierte Bereich gelöscht ist (Prüfsummenanzeige) oder nicht ("nicht gelöscht"). Der Leertest wird zwar vor jeder Programmierung automatisch durchgeführt, ist aber dennoch als separate Funktion sinnvoll, z.B. um EPROMs nach dem Löschen zu prüfen.
 
6.4 Vergleichen

Der Inhalt eines EPROMs kann wahlweise ganz oder teilweise (vgl. 6.1) mit dem RAM-Inhalt verglichen werden. Abweichungen werden im Format "Adresse n: aaaaaa, RAM:rr, EPROM:ee" angezeigt, wobei n die Satz-Nr., aaaaaa die Adresse, rr die RAM-Daten und ee die EPROM-Daten sind. Mit den Pfeiltasten kann die Liste aller Abweichungen vorwärts bzw. rückwärts abgefragt werden. Die Startadresse für die Abfrage kann per Tastatur eingegeben werden; nach <ENTER> werden dann EPROM- und RAM-Daten dieser Startadresse angezeigt. Wurde keine Abweichung festgestellt, so erscheint nach Abschluß des Vergleichs "Prüfsumme".

Beispiel 6.4

Ein im Service veränderter 2764 soll mit dem ursprünglichen Original verglichen werden:
1) Original lesen, aus Hauptmenü "Vergleichen" wählen.
2) EPROM mit unbekannter Änderung einsetzen.
3) <ENTER> -> kurzzeitig "2764", dann "Komplett".
4) <ENTER> -> kurzzeitig "Warten", dann "Abweichungen".
5) <Taste> -> "Adresse 0: aaaaaa, RAM:rr, EPROM:ee", mit der gesuchten
Adresse aaaaaa, den Originaldaten rr und dem geänderten Byte ee.

6.5 Emulieren (nicht verfügbar im mtr9A)

*** Achtung:
Ein zuverlässiger Schutz gegen Verpolung ist mit vertretbarem Aufwand nicht möglich. Bei Verpolung der Versorgungsspannung über das DIL-Kabel sind daher Schäden am Zielsystem oder am mtr9 nicht auszuschließen.
Beim Betrieb des mtr9 als EPROM-Emulator wird dessen RAM-Inhalt als Inhalt des nachzubildenden EPROMs verwendet. Es kann während der Emulation zwischen bis zu 16 Datensätzen gewählt werden, sofern der installierte Speicher ausreicht. EPROMs mit Seiten-Adressierung (z.B. 27513, 27011) können nicht emuliert werden.
Nach dem Start der Funktion erscheint zunächst kurz die Typ-Nr. und dann ein Hinweis auf die Verpolungsgefahr. Mit einer weiteren Taste gelangt man zur Auswahl des Datensatzes. Das mtr9 verhält sich nun wie ein EPROM mit einer Zugriff-Zeit von ca. 100ns, solange dessen Programmiersockel über ein geeignetes DIL-Kabel mit dem EPROM-Sockel des Ziel-Systems verbunden ist.
Beim Wechsel des Datensatzes durch Eingabe einer neuen Satz-Nr. (0...9, A...F) wird der zugehörige Adreßbereich im RAM angezeigt; seine Länge entspricht dem Speicherumfang des emulierten EPROM. Es ist zu berücksichtigen, daß das Zielsystem in der Regel abstürzt, wenn während des Betriebes der Programm-Code gewechselt wird; bei Daten-Code ergeben sich dagegen normalerweise keine Probleme durch einen Bereichswechsel.
Die Emulation ist keine exakte Nachbildung des simulierten EPROM. Neben der begrenzten Zugriffszeit (ca. 100ns) sind insbesondere parasitäre Impedanzen zu berücksichtigen: In umfangreichen Systemen treten aufgrund hoher Leitungsimpedanzen Einschwingvorgänge auf Adreß- und Enable-Leitungen auf; die Erhöhung der Impedanzen durch das Emulatorkabel kann dann dazu führen, daß die Spannungen an diesen Leitungen nicht rechtzeitig vor dem Prozessorzugriff stabil anliegen

Beispiel 6.5


Der Einfluß verschiedener Zünd-Kennfelder auf das Verhalten eines Motors soll untersucht werden; zwei Felder sollen sich in zwei 27256-Dateien befinden:
1) Mit "Lesen" zunächst die zweite Datei auf den Bereich 0...7FFF des mtr9 laden.
2) Mit "Verschieben" (Editor-Menü) diese Datei auf die Zieladresse 8000 schieben.
3) Mit "Lesen" die erste Datei laden.
4) Aus Hauptmenü "Emulieren" wählen.
5) <ENTER> -> kurzzeitig "2764", dann "ACHTUNG! VERPOLUNG KANN...".
6) <Taste> -> "Adreßbereich n: ssssss...eeeeee"; mit dem zuletzt
benutzten Bereich.
7) <0> -> "Adreßbereich 0: 0... 7FFF";
nun wird die erste Datei für die Simulation genutzt.
6) <1> -> "Adreßbereich 1: 8000... FFFF";
nun wird die zweite Datei für die Simulation genutzt.

7 Editor

Mit <ENTER> bei der Anzeige "Editor starten" gelangt man zur ersten Funktion des Editormenüs: Anzeigen, Ändern (s. 7.1). Erneut <ENTER> liefert die weiteren Editorfunktionen, die wie gewohnt mit den Pfeiltasten aus dem Menü gewählt werden:

1) Anzeigen, Ändern (Funktion mit <ENTER> verlassen)
2) Suchen,
3) Füllen,
4) Verschieben,
5) Split, Shuffle.

Mit <ENTER> wird die gewählte Funktion gestartet und in der Anzeige erscheint der erste Menütext zu dieser Funktion.
Nach Abarbeitung der Funktion wird mit "Prüfsumme" die Summe aller bearbeiteten Daten-Bytes angezeigt. Nach Quittierung dieser Meldung mit einer beliebigen Taste erfolgt ein Rücksprung ins Editormenü an die ursprüngliche Stelle, d.h. nach Abschluß z.B. einer Verschiebung erscheint wieder "Verschieben".

7.1 Anzeigen, Ändern

Mit der Editierfunktion kann der RAM-Inhalt angezeigt und geändert werden. Anzeigen und Eingaben erfolgen dabei hexadezimal. Nach dem Start der Funktion erscheint in der Anzeige "Adresse: aaaaaa, Daten: dd"; darin ist aaaaaa (=0 beim Start) die zuletzt eingegebene Adresse und dd der zugehörige Datenwert.
Der Cursor kann nun mit den Pfeiltasten zwischen oberem (Adresse) und unterem (Daten) Feld bewegt werden, und es kann der Wert im entsprechenden Feld geändert werden. Bewegt man nach Eingabe einer Adresse den Cursor zum Datenfeld, so erscheint unmittelbar der zur eingegebenen Adresse gehörige Daten-Wert, der nun ggf. überschrieben werden kann.
Befindet sich der Cursor bereits im Datenfeld, so wird mit <ê> die Adresse um eins erhöht; mit dem Cursor im Adreßfeld bewirkt umgekehrt <é> eine Verringerung der Adresse um eins.

7.2 Suchen

Nach Eingabe eines Adreßbereichs und einer Folge von bis zu fünf Daten-Bytes wird der so spezifizierte Bereich des RAM nach dem eingegebenen Datenwort durchsucht.
Ist die Suche erfolgreich, so wird die Funktion Anzeigen/Ändern (s.o.) bei der Startadresse des gefundenen Datenwortes gestartet. Wird die Such-Funktion erneut gestartet, so kann man mit 2x <ENTER> die Suche nach weiteren Übereinstimmungen fortsetzen, denn die Startadresse wird hierzu entsprechend verändert und das eingegebene Datenwort bleibt unverändert. Werden keine Übereinstimmungen gefunden, so erscheint die Meldung "Nicht gefunden: aa bb cc dd ee" mit dem zuvor eingegebenen Datenwort aa bb cc dd ee.

7.3 Füllen

Nach Eingabe eines Adreßbereichs und einer Folge von bis zu fünf Daten-Bytes wird der so spezifizierte Bereich des RAM fortlaufend mit dem eingegebenen Datenwort gefüllt. Nach Abschluß der Funktion steht in der Anzeige die Prüfsumme des gefüllten Bereichs, die allerdings meist keine praktische Bedeutung hat.

7.4 Verschieben

Nach Eingabe eines Adreßbereichs und einer Zieladresse wird der durch den Adreßbereich festgelegte Datensatz auf den Zielbereich verschoben, der bei der eingegebenen Zieladresse beginnt. Unabhängig von den Adreßwerten (auch bei Überschneidung von Quell- und Zielbereich) bleibt der verschobene Datensatz unverändert.

7.5 Split, Shuffle

Nach <ENTER> steht ein Untermenü mit den nachfolgend beschriebenen Funktionen zur Unterstützung größerer Wortlängen als 8bit zur Verfügung. Die Funktion wird jeweils im RAM-Adreßbereich von 0 bis zur eingegebenen oberen Grenze ausgeführt.

1) Split: Mit dieser Funktion werden Bytes aus geraden Adressen fortlaufend auf die untere Hälfte des Adreßbereichs transformiert und Bytes aus ungeraden Adressen auf die obere Hälfte. Man kann so ein 16bit-Programm, das sich in einem EPROM für ein System mit 8bit-Datenbus befindet (z.B. 8088-Prozessor), auf zwei EPROMs für ein äquivalentes System mit 16bit-Datenbus aufteilen (z.B. 8086-Prozessor). Durch mehrmalige Anwendung dieser Funktion werden so Wortlängen von 8, 16, 32, 64bit ... unterstützt.

2) Shuffle: Dies ist die Umkehrung der split-Funktion.

3) Tauschen: Es werden untere und obere Hälfte des Adreßbereichs gegeneinander ausgetauscht. Diese Funktion ist nützlich, um beide Hälften zu bearbeiten. Würde man etwa die Funktion Verschieben (7.4) verwenden, um die obere Hälfte auf die untere zu bringen, so ginge die ursprünglich untere Hälfte durch Überschreiben verloren.

4) A0 invertieren: Diese Funktion ist z.B. hilfreich, wenn bei der Übertragung auf das mtr9 in einer 16-Bit-Datei jeweils das H-Byte vor dem L-Byte steht, der Ziel-Prozessor es jedoch umgekehrt benötigt. Bei Verwendung zweier 8-Bit-EPROMs können diese vertauscht werden, bei einem 16-Bit-EPROM geht dies natürlich nicht.

8 Datenübertragung


Die Datenkommunikation zwischen mtr9 und einem anderen Gerät erfolgt über die V.24-Schnittstelle. Voraussetzung ist die richtige Konfiguration der Schnittstelle (s. 9).
Nach Auswahl von "Datenübertragung" und <ENTER> erfolgt ein Sprung auf "Adreßbereiche, Richtung"., und man kann mit der Adreßeingabe fortfahren. Nach der Adreßeingabe wird die Übertragungsrichtung gewählt und die Übertragung gestartet. Sowohl für die Adressen als auch für die Übertragungsrichtung werden zunächst die Parameter aus der letzten Datenübertragung angeboten; diese können beibehalten werden, so daß für mehrere gleichartige Übertragungen keinerlei Neueingabe bzw. Neuauswahl erforderlich ist, gleichgültig, ob zwischenzeitlich andere Funktionen verwendet wurden oder das mtr9 abgeschaltet wurde.
Es wird davon ausgegangen, daß irgendwann zuvor das üblicherweise verwendete Daten-Format festgelegt wurde (es bleibt auch bei zwischenzeitigem Abschalten des mtr9 gespeichert). Ist dies nicht Fall oder soll das Format geändert werden, so wählt man mit <ê> die Funktion "Daten-Format" (s.u.).

8.1 Daten-Format

Nach Aufruf der Funktion kann man unter folgenden Formaten auswählen:

1) Intel-Hex (automatische Anpassung an Adreß-Umfang),
2) Motorola-S-Record (automatische Anpassung an S1/S9- und S2/S8-Format),
3) Standard Tekhex (Tektronix, Millenium)
4) Extended Tekhex (Tektronix, Millenium)
5) ASCII-Hex; Empfang: mit oder ohne beliebige Trennzeichen,
Senden: mit einer Leerstelle nach je zwei Zeichen (einem Byte),
6) Binär; hier sind natürlich keine Steuerzeichen zulässig, und eine
Übertragung mit 7 Datenbits ist nicht möglich.

Lauffähige Programmdateien liegen meist in einem der ersten vier Formate im Hostrechner vor. Auch bei der Datenfernübertragung (DFÜ, z.B. über Akustikkoppler) und bei der Archivierung von EPROM-Dateien (z.B. auf Disketten) sollten diese Formate verwendet werden, da sie eine ausreichend sichere Fehlererkennung bieten.
Die beiden anderen Formate sind dann nützlich, wenn der Hostrechner kein Standard-Kopierprogramm für die serielle Schnittstelle bietet. Man kann dann z.B. die Datei in den Arbeitsspeicher übertragen und von dort mit einer Binär- oder ASCII-Dump-Routine zum mtr9.

8.2 Adreßbereiche

Nach dem Start der Funktion "Adreßbereiche, Richtung" werden die Hostadresse (nur bei Intel-Hex, Motorola-S-Record und Tekhex) sowie der Adreßbereich im mtr9-RAM festgelegt. Die richtige Eingabe von Host- und Startadresse ist außerordentlich wichtig, da die Differenz Hostadresse - Startadresse die Lage der Datei im mtr9 und damit im EPROM bestimmt, und da nur wenige Programme an beliebigen Adressen lauffähig sind.
Ist die Hostadresse nicht bekannt, so kann man sie u.U. durch eine Bildschirmausgabe der Datei ermitteln, da jeder Block seine Ladeadresse (Zieladresse für erstes Byte) enthält.

Beispiel 8.2

Mittels Bildschirmausgabe soll die Ladeadresse eines Intel- bzw. Motorola-Blocks ermittelt werden. Nachfolgend sind die beiden Blockanfänge dargestellt und die Adreßangaben fett gedruckt. Beide Blöcke sind gleichbedeutend und enthalten die Ladeadresse C000:
Intel: :20C000003E7FD681 ...
Motorola: S123C0003E7FD681 ...

8.3 Empfang (down load)

Nach Wahl von "mtr9 empfängt" und <ENTER> erscheint die Anzeige "mtr9 empfängt / wartet" und ein blinkender Cursor zeigt an, ob tatsächlich Daten empfangen werden oder auf Daten gewartet wird.
Im Falle von Intel-, Motorola- oder Tektronix-Code wird grundsätzlich der gesamte Quell-Datensatz zum mtr9 übertragen, wobei das zur eingegebenen Hostadresse gehörige Byte auf der Startadresse des eingegebenen RAM-Bereichs abgelegt wird usw., d.h. die Differenz zwischen Startadresse und Hostadresse ist die bei der Übertragung entstehende Verschiebung der EPROM-Adresse gegenüber der Original-Programmadresse. Falls Daten übertragen werden, die aufgrund der Adreßverschiebung außerhalb des eingegebenen Adreßbereichs landen würden, so werden diese zwar auf korrekte Übertragung geprüft, im übrigen aber ignoriert.
Nach Empfang des Schluß-Blocks wird die Übertragung abgeschlossen; ein Datei-Ende-Zeichen (ctrl-Z) ist also nicht erforderlich.
ASCII-Hex und Binär enthalten keine Adreßinformation; deshalb wird das erste Byte auf die erste Adresse des eingegebenen Bereichs übertragen und anschließend die Adresse nach jedem Byte (zwei ASCII-Zeichen bzw. ein 8-bit-Binärwert) um eins erhöht. Wird dabei die Endadresse erreicht, so wird die Übertragung beendet. Ist der Datensatz dafür zu kurz, so muß die Übertragung mit <EXIT> beendet werden.
Die in der Fertig-Meldung enthaltene Prüfsumme der in das RAM übertragenen Daten unterscheidet sich in der Regel von der EPROM-Prüfsumme nach späterer Programmierung, da die Programmierung meist zusätzliche bedeutungslose Füll-Bytes einschließt.
Motorola-, Intel- und Tektronix-Format dürfen außerhalb eines Blocks beliebige Steuerzeichen z.B. zur Formatierung einer Drucker- oder Bildschirmausgabe enthalten, da nach Abschluß eines Blocks nur das Block-Startzeichen (":", "S" bzw. "/", vgl. Beispiel 8.2) ausgewertet wird. Eine ASCII-Hex-Datei darf sogar innerhalb eines Blockes beliebige Zeichen außer 0...9, A...F enthalten. Dagegen sind in einer Binärdatei keinerlei Steuerzeichen zulässig, da alle Werte zwischen 00 und FF als Daten interpretiert werden.

Beispiel 8.3

Ein Intel-Hex-Programm, das unter "NAME" im Laufwerk B: eines MSDOS-Rechners gespeichert ist und das mit der Adresse C000 beginnt, soll auf ein 2764 übertragen werden, das aufgrund der Dekodierung den Adreßbereich C000...DFFF belegt. Das mtr9 sei auf 9600 Baud, keine Parität, 8 Daten-, 2 Stopbits eingestellt (vgl. 9) und mit der Schnittstelle "COM1" des Rechners verbunden:
1) Mit dem MSDOS-Befehl mode com1:9600,n,8,2,p wird die Schnittstelle auf
die gleichen Parameter sowie Ausgabewiederholung eingestellt.
2) Aus Hauptmenü "Datenübertragung" wählen.
3) <ENTER> -> "Adreßbereich, Richtung".
4) <ê> -> "Daten-Format".
5) <ENTER> -> "altes Format".
6) <é>, <ê> -> "Intel-Hex".
7) <ENTER> -> "Adreßbereiche, Richtung".
8) <ENTER> -> "Hostadresse: alter Wert"
9) <C><0><0><0> -> "Hostadresse: C000".
10) <ENTER> -> "Adreßbereich: alter Bereich".
11) <0><ê> -> "Adreßbereich: 0...altes Ende".
12) <1><F><F><F> -> "Adreßbereich: 0... 1FFF".
13) <ENTER> -> "alte Richtung"".
14) <é>, <ê> -> "mtr9 empfängt"".
15) <ENTER> -> "mtr9 empfängt / wartet", ein blinkender Cursor zeigt an,
ob das mtr9 Daten empfängt oder auf Daten wartet.
16) Mit dem MSDOS-Befehl copy b:name com1 wird die Übertragung gestartet.
Anschließend kann das EPROM direkt programmiert werden (vgl. 6.2).

8.4 Senden (up load)

Nach Wahl von "mtr9 sendet" und <ENTER> erscheint die Anzeige "mtr9 sendet / wartet" und ein blinkender Cursor zeigt an, ob tatsächlich Daten gesendet werden oder ob das mtr9 auf die Empfangsbereitschaft des Hostrechners wartet.
Der Quell-Datensatz aus dem eingegebenen Adreßbereich des mtr9-RAM wird nun zum Hostrechner übertragen. Im Falle des Intel-, Motorola- oder Tektronix-Codes ist die eingegebene Hostadresse die Ladeadresse für das erste Byte des Adreßbereichs.
Die Formate ausgenommen Binär enthalten beim Senden zusätzlich nach jedem Block Wagenrücklauf (CR, 0D) und Zeilenvorschub (LF, 0A). Ein Block umfaßt 32 Bytes bei Intel-, Motorola- und Tektronix-Format bzw. 16 Bytes bei ASCII-Hex; diese Formatierung erlaubt eine übersichtliche Protokollierung einer EPROM-Datei auf Drucker oder Bildschirm mit 80 Zeichen pro Zeile.
Am Schluß der Datei wird ein Datei-Ende-Zeichen (ctrl-Z, 1A) gesendet, das (mit Ausnahme der Binär-Übertragung) auf der Hostrechner-Seite zum geordneten Abschluß der Übertragung führt. Die in der Fertig-Meldung des mtr9 enthaltene Prüfsumme der aus dem RAM übertragenen Daten stimmt mit der entsprechenden EPROM-Prüfsumme überein, wenn ein vollständiger EPROM-Datensatz übertragen wurde.

Beispiel 8.4
Der Inhalt eines 2764-Musters soll zur Archivierung als Intel-Hex-Datei unter "NAME" im Laufwerk B: eines MSDOS-Rechners abgelegt werden. Zur Vereinfachung einer Untersuchung am Bildschirm (vgl. Beispiel 8.2) sollen Hostadresse und Startadresse 0000 sein. Schnittstelle und Format aus 8.3 sollen unverändert bleiben:
1) 2764-Muster lesen und dann aus dem Hauptmenü "Datenübertragung" wählen.
2) Nach dem MSDOS-Befehl copy com1 b:name ist der Hostrechner empfangsbereit
3) <ENTER> -> "Adreßbereiche, Richtung".
4) <ENTER> -> "Hostadresse: alter Wert"
5) <0> -> "Hostadresse: 0".
6) <ENTER> -> "Adreßbereich: alter Bereich".
7) <0><ê> -> "Adreßbereich: 0...altes Ende".
8) <1><F><F><F> -> "Adreßbereich: 0... 1FFF"
13
9) <ENTER> -> "alte Richtung"".
10) <é>, <ê> -> "mtr9 sendet"".
11) <ENTER> -> "mtr9 sendet / wartet", ein blinkender Cursor zeigt, ob das mtr9
Daten sendet oder auf die Empfangsbereitschaft des Host-
Rechners wartet.

9 V.24-Schnittstelle konfigurieren

Das Konfigurations-Menü bietet folgende Einstellmöglichkeiten, unter denen mit den Pfeiltasten gewählt werden kann:
Baudrate,
Bitmuster (Daten-, Stop-, Paritäts-Bits),
Handshake,
Test.

9.1 Baudrate

Es kann einer der Werte 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400 Baud mit den Pfeiltasten gewählt werden. Nach <ENTER> erfolgt der Übergang zur Bitmuster-Eingabe.
Normalerweise wird man die höchstmögliche Baudrate wählen, d.h. unter MS-DOS ohne spezielle Schnittstellen-Treiber 9600 Baud, unter Windows 38400 Baud. Die niedrigen Baudraten werden verwendet für die Datenübertragung über Telefonleitungen sowie die Ausgabe von Dateien auf Druckern, die keine Handshake-Möglichkeit bieten.

9.2 Bitmuster

Die Übertragung erfolgt wahlweise mit 7 oder 8 Datenbits, 1 oder 2 Stopbits sowie gerader, ungerader oder keiner Parität. Bei Eingabe unzulässiger Bit-Zahlen wird automatisch auf den zulässigen Wertebereich begrenzt, die Wahl des Paritäts-Bits erfolgt wieder mit den Pfeiltasten.

9.3 Handshake

Es kann mit den Pfeiltasten zwischen keinem, CTS/DTR-Handshake (Hardware-Handshake) und XON/XOFF-Handshake (Software-Handshake) gewählt werden.
Verzichten sollte man nur dann auf Handshake-Signale, wenn diese von der angeschlossenen Schnittstelle nicht zur Verfügung gestellt werden. Das mtr9 kann bei Empfang mit bis zu 9600 Baud meist ohne Handshake betrieben werden; beim Senden hängt die Grenze natürlich vom jeweiligen Hostrechner ab.
Unabhängig vom Handshake-Verfahren kann des mtr9 mindestens noch vier Bytes empfangen nachdem es das Signal "nicht empfangsbereit" abgegeben hat, d.h. nach DTR=0 bzw. nach Sendung von XOFF (Ctrl-S, hex-13) zum Hostrechner. Empfangsbereit ist das mtr9 unmittelbar nach Abgabe des entsprechenden Signals, d.h. nach DTR=1 bzw. nach Sendung von XON (Ctrl-Q, hex-11).
Umgekehrt unterbricht das mtr9 eine Sendung zum Hostrechner unmittelbar nach Empfang des entsprechenden Signals vom Hostrechner, d.h. nach CTS=0 bzw. nach Empfang von XOFF. Der Hostrechner benötigt also keinerlei Empfangspuffer.
Beim XON/XOFF-Protokoll kann es Unstimmigkeiten mit der Steuer-Software des Hostrechners geben. Deshalb gibt es die Möglichkeit, den XOFF-Status zu ignorieren: Wenn das mtr9 auf Daten vom Hostrechner wartet (Anzeige durch Cursor, vgl. 8.3), wird mit <ENTER> das Signal XON zum Hostrechner gesendet, was diesen ggf. zum Senden von Daten veranlaßt. Wartet das mtr9 vergeblich auf das XON vom Hostrechner (Anzeige durch Cursor, vgl. 8.4), so kann mit <ENTER> das Senden dennoch gestartet werden, und es wird erst erneut unterbrochen, wenn das mtr9 XOFF vom Hostrechner empfängt.

9.4 Test

Für den Test werden DTR (Pin 20) mit CTS (Pin 5) sowie TD (Pin 2) mit RD (Pin 3) verbunden. Nach <ENTER> wird dann ein Schnittstellen-Test mit der zuvor eingestellten Baudrate durchgeführt und das Ergebnis angezeigt.


10 Fernbedienung

Das mtr9 kann über die V.24-Schnittstelle fernbedient werden, wobei die zuvor eingestellten Schnittstellenparameter gelten (Baudrate, Bitmuster, Handshake); diese können nicht per Fernsteuerung geändert werden, da der nachfolgende Fernsteuerbefehl nicht mehr entschlüsselt werden könnte. Ebenso ist die Fortsetzung nach einem Schnittstellenfehler nur über die eigene Tastatur möglich. Auch während des Empfangs einer Datei ist die Fernsteuerung gesperrt, da nicht zwischen Steuer-Code und Empfangsdaten unterschieden werden könnte. Von diesen Ausnahmen abgesehen kann das mtr9 ohne Einschränkung fernbedient werden.
Der Wechsel zwischen Fernbedienung und Autonom-Betrieb erfolgt automatisch: Nach Empfang eines Fernsteuer-Codes wird auf Fernsteuerung umgeschaltet, nach Betätigung einer mtr9-Taste auf Autonom-Betrieb; d.h., beide Betriebsarten sind gleichzeitig möglich.
Die Fernbedienung entspricht der Bedienung über die Tastatur, wobei zwischen den an das mtr9 gesendeten Hexadezimal- bzw. ASCII-Zeichen und den Tastenfunktionen folgende Zuordnung besteht:

Hex. ASCII  Taste   Hex.  ASCII Taste
30      0         0          41      A        A
31      1         1          42      B        B
32      2         2          43      C        C
33      3         3          44      D        D
34      4         4          45      E         E
35      5         5          46      F         F
36      6         6          2D      -         é
37      7         7          2B      +        ê
38      8         8          1B     ESC    EXIT
39      9         9          0D     CR      ENTER
3F      ?         ?  (Hilfs-Funkt.)

Jeder empfangene Tasten-Code wird durch ein Echo quittiert, und jeder Anzeigetext des Normal-Betriebs wird mit CR/LF nach jeder Sendezeile (je zwei Anzeigezeilen) sowie am Schluß gesendet. An die Stelle des Piep-Tones bei Meldungen tritt das ASCII-Zeichen BEL (hex 07), das bei Terminals i.a. einen Piepton auslöst.
Eingabefelder werden durch < > gekennzeichnet und nach jedem eingegebenen Zeichen wird die gesamte Eingabe mit CR vorweg und nachfolgend wiederholt, d.h., die Bildschirmposition der Eingabe auf einem Terminal bleibt unverändert.
Damit ist das mtr9 nahezu vollständig von einem Terminal aus bzw. mit einem Terminal-Programm von einem Hostrechner aus zu bedienen. Außerdem können auf einfache Weise Programme erstellt werden, die einen höheren Bedienungskomfort bieten, als er mit Tastatur und Anzeige des mtr9 möglich ist.


11 Steckerbelegung der Schnittstelle

Der 25-polige Sub-D-Buchsenstecker des mtr9 ist als Daten-Endeinrichtung (DEE) wie folgt beschaltet:

2: D1 / TD 7: E2 / GND
3: D2 / RD 20: S1 / DTR
5: M2 / CTS übrige: nicht belegt

Hat, wie meist üblich, der Rechner ebenfalls eine DEE-Schnittstelle, so muß ein Null-Modem-Kabel verwendet werden (2 und 3 bzw. 5 und 20 gekreuzt, 7 durchverbunden). Benötigt diese Schnittstelle zusätzlich Aktiv-Pegel auf einem oder mehreren der Stifte 6, 8 oder sogar 22, so werden diese Stifte rechnerseitig mit 5 verbunden.
Ist die Schnittstelle als Daten-Übertragungseinrichtung (DÜE) belegt, wie bei den meisten Druckern und praktisch allen Akustikkopplern, so werden die Leitungen 2, 3, 5, 7 und 20 durchverbunden. Falls die DÜE-Schnittstelle ein RTS-Signal an Stift 4 benötigt, so wird er mit 20 verbunden; liefert Stift 6 anstelle von 20 das Empfangsbereit-Signal, so wird er mit 5 verbunden.
Leider gibt es keine einheitliche Zuordnung zwischen Steckertyp (Stift/Buchse) und Schnittstellentyp (DEE/DÜE). Man muß daher einen Blick ins entsprechende Handbuch werfen oder die richtige Konfiguration durch Probieren ermitteln (falsche Verbindungen führen niemals zu Beschädigungen).


12 Betrieb von Sockeladaptern (nicht verfügbar im mtr9A)

Mit dem mtr9 können spezielle EPROM-Bauelemente mittels geeigneter Sockeladapter bearbeitet werden. Derzeit lieferbare Adapter und die damit zu bearbeitenden Bauelemente können folgender Tabelle entnommen werden:

Adapter-Typ     unterstützte Bauelemente
mtr9-3 (9-3P)    EPROMs mit 16 bit Wortlänge im DIP40 (PLCC44)
mtr9-4               8741(A), 8742(AH), 8748(H), 8749AH
mtr9-5               8744H, 8751H, 87C51, 87C51-Reihe, 89C51-Reihe
mtr9-6               63701 V0
mtr9-7               63701 X0
mtr9-8               63705 V0
mtr9-9               87M12-Reihe , CC460 V1, -V2
mtr9-10             AMD- und Intel-Flash im SOP44
mtr9-11(A, B)   Siemens C500-Reihe

Beim Adapterbetrieb sind folgende Besonderheiten zu beachten:

1) Die Sockeladaptern bieten keine Emulationsfunktion.
2) Der Sockeladapter wird vom mtr9 automatisch identifiziert, d.h. für die Typauswahl wird automatisch das für den Typ gültige Menü eingestellt.
3) Die Programmierspannungsautomatik des mtr9 ist bei Verwendung eines Sockeladapters außer Betrieb, denn nahezu keines der durch Sockeladapter unterstützten Bauelemente ermöglicht einen eindeutig definierten Betriebszustand bei zu geringer Programmierspannung. Zudem sind nicht alle Tests des Normalbetriebs möglich.
Es ist daher möglich, ein Bauelement durch eine zu hohe Programmierspannung zu zerstören. Man sollte also sehr sorgfältig auf die korrekte Typauswahl achten.


13 Fehlermeldungen

Das mtr9 führt bei jeder Funktion Tests durch, die Schäden durch Bauelemente-Fehler und Fehlbedienungen praktisch völlig ausschließen (Ausnahme Emulation). Meist werden diese Fehler automatisch korrigiert. Wo dies nicht möglich oder sinnvoll ist, werden Fehlermeldungen angezeigt, die nachfolgend näher erläutert werden.

"Abweichungen": Beim Vergleichen (6.4) wurden Unterschiede zwischen EPROM- und RAM-Daten erkannt.
"Batterie leer, Daten unsicher": Die Batterie wurde soweit entladen, daß die Daten im batteriegepufferten Analyse- und Arbeitsspeicher nicht mehr gesichert sind.
"EPROM einsetzen": Befindet sich ein EPROM im Sockel, so können ein falscher Typ, ein defektes EPROM oder mangelhafter Kontakt der Grund für den Fehler sein.
"EPROM-Fehler": Grund kann außer einem defekten EPROM der falsche Typ oder das falsche Einsetzen in den Sockel sein.
"nicht gelöscht": Vor dem Programmieren (6.2) bzw. beim separaten Leertest wurde wenigstens ein Bit des EPROM als nicht gelöscht erkannt.
"Programmierfehler": Einer der zahlreichen Tests während und nach der Programmierung wurde mit unzureichendem Ergebnis durchgeführt (vgl. 6.2)
"Sockeltreiber oder RAM defekt": Es liegt ein Gerätefehler vor.
"V.24-Fehler": Beim Empfang einer Datei oder bei Fernbedienung wurde einer der folgenden, in der Anzeige erläuterten Fehler erkannt:
"Parität": Paritätsbit falsch.
"Stopbit=0": Ein oder ggf. beide Stopbits sind Null, meist durch Eingabe einer falschen Anzahl von Daten oder Stopbits.
"SR-Überlauf": Überlauf des Empfangs-Schieberegisters, meist durch fehlerhaftes Handshake oder durch falsche Anzahl der Daten- und/oder Stopbits.
"Überlauf": Überlauf des Empfangspuffers durch fehlerhaftes Handshake.
"Blocksumme": Es wurden bei Prüfbytes (Intel-Hex, Motorola-S-Record, Tekhex vgl. 8.1) Fehler festgestellt.
"CTS/DTR" bzw. "RX/TX": Im Test entdeckter Hardware-Fehler bei Handshake- bzw. Datenleitungen (vgl. 9.4).

 
14 Programm-Optionen

Beim Einschalten werden die Programm-Optionen auf Vorwahlwerte gesetzt. Da sie nur in Sonderfällen geändert werden sollten (z.B. Programmieren in der Schaltung, Lesen defekter Speicher), ist Eingabe des Codes "123" erforderlich, bevor man auf die folgenden Parameter zugreifen kann (Vorwahlwerte in Klammern):

Fernsteuerung: ein/aus (ein),
Vcc-Test: ein/aus (ein),
Vpp-Test: ein/aus (ein),
Adreß-Test: ein/aus (ein),
Zugriff-Test: ein/aus (ein),
Typ-Identifizierung: ein/aus (ein),
6,25V enable: ein/aus (ein).


15 Austausch des Betriebsprogramms


Das Betriebsprogramm des mtr9 wird ständig weiterentwickelt, d.h. an die Bedürfnisse der Benutzer, an neue EPROM-Typen sowie an neue Adaptermodule angepaßt.
Soll Ihr mtr9 an den jeweils letzten Stand angepaßt werden, so ist dies herstellerseitig in kürzester Zeit möglich. Wenn das Gerät ständig benötigt wird, kann es sinnvoller sein, das Programm-EPROM selbst auszutauschen. Dies ist mit wenigen Handgriffen möglich:
Zuerst nehmen Sie die selbstklebenden Gummifüße ab, lösen die darunterliegenden vier Schrauben und heben den Gehäuseboden ab. Nun können sie das am Boden der mtr9-Platine befindliche EPROM auswechseln.
Achtung! Der Kontakt der abgezogenen Batterie-Steckhülsen miteinander oder mit leitenden Teilen der Platine kann zu Schäden führen!
Die jeweils aktuellste Version des Betriebsprogramms und der Fernsteuer-Software kann kostenlos aus dem Internet heruntergeladen werden (URL siehe Umschlagseite).


16 Betriebsstörungen

Durch konstruktive Besonderheiten, bei denen die Erfahrungen aus über tausend Exemplaren des Vorgänger-Modells mtr3 berücksichtigt wurden, ist das mtr9 ausgesprochen widerstandsfähig. Dennoch können natürlich Fehler auftreten. Einerseits sind dies Zufallsausfälle von Bauelementen, die sinnvollerweise werkseitig behoben werden sollten. Andererseits sind derzeit zwei auf die Anwendung zurückführbare Fehler bekannt, die u.U. vom fachkundigen Benutzer schnell selbst behoben werden können:

1) Verschmutzter oder beschädigter Programmiersockel: Daten-, Steuer- und Versorgungsleitungen werden hinreichend zuverlässig auf guten Kontakt geprüft. Ist der Kontakt mangelhaft, so erscheint eine der Meldungen "EPROM einsetzen" oder "EPROM-Fehler"; die Meldung verschwindet meist nach mehrmaliger Betätigung des Sockel-Hebels und Neustart des jeweiligen Programms.
Adreßleitungen können nicht in vergleichbarer Weise geprüft werden, da sie meist zu hochohmig sind. Ein Fehler macht sich hier nur durch eine falsche Prüfsumme und im Falle der Programmierung u.U. durch einen Abbruch bemerkbar.
Der Sockel kann ohne Öffnen des Gerätes von oben demontiert werden: Nach Lösen zweier Schrauben an den Sockel-Enden kann dieser aus einem darunter befindlichen Sockel herausgezogen werden. Er kann nun nach Bedarf in Spiritus gereinigt, oder ausgetauscht werden.
2) Verpolung bei Emulation: Da bei Verpolung des Emulatorkabels das Netzteil des Zielsystems über Schutzdioden in den CMOS-Schaltungen des mtr9 kurzgeschlossen wird, treten hierdurch häufig Schäden auf. Diese äußern sich meist durch die Meldung "Sockeltreiber oder RAM defekt" nach dem Einschalten oder ebenfalls durch o.g. Meldungen. Die Schäden sind jedoch normalerweise nur auf die Sockeltreiber beschränkt (vier um den Programmiersockel angeordnete 74HC245 oder 74HCT245).
Entsprechend kann der Fehler meist durch Erneuern eines oder mehrerer dieser Treiber beseitigt werden. Hilft dies nicht, so sollte die Reparatur in jedem Fall werkseitig durchgeführt werden.

Für den Austausch der Treiber muß die Platine des mtr9 aus dem Gehäuse-Oberteil ausgebaut werden. Hierzu wird zunächst der Batterie-Anschluß abgenommen.
Achtung! Der Kontakt der abgezogenen Batterie-Steckhülsen miteinander oder mit leitenden Teilen der Platine kann zu erheblichen Schäden führen!
Jetzt schrauben Sie die Platine vom Oberteil ab (vier Schrauben an Platinenecken) und heben die Platine an Vorderkante an.
Nach Abziehen des Tastatursteckers (Folienkabel) können Sie die Platine aus dem Gehäuseoberteil herausnehmen und, sofern vorhanden, die RAM-Platine aus ihrem Sockel hebeln. Nun sind alle vier Treiber zugänglich.
Der Zusammenbau erfolgt in umgekehrter Reihenfolge: Beim Einsetzen der Platine muß darauf geachtet werden, daß das Folienkabel der Tastatur S-förmig verläuft und nicht geknickt wird (meist nimmt es von selbst die richtige Form an); außerdem muß der Hebel des Programmiersockels durch die Sockelöffnung im Gehäuse geführt werden. Beim Aufstecken der Batterie-Steckhülsen muß wieder der Kontakt mit leitenden Teilen der Platine vermieden werden und außerdem natürlich auf richtige Polung geachtet werden (Markierung +/- auf der Platine).
 




ENGLISH

© 2015 by mtr, Dr.-Ing. Roland Ranfft
mtr9, mtr9A, Rev. 10a

mtr9 / mtr9A EPROM-Programmer

Operation Manual

_________________________________________________________
Table of Contents page

1  Introduction
2  Getting Started: Power Supply, Battery Backup
3  Menu Operation
4  Address Processing
5  Defining the EPROM Type
6  Type Specific Functions
6.1  Read
6.2  Program
6.3  Erase Test
6.4  Verify
6.5  Emulation
7  Editor
7.1  Edit Single Locations
7.2  Find
7.3  Fill
7.4  Move
7.5  Split, Shuffle
8  File Transfer
8.1  File Format
8.2  Address Entry
8.3  Down Load
8.4  Up Load
9  Serial Interface Configuration

9.1  Baud Rate
9.2  Bit Pattern
9.3  Handshake
9.4  Test
10  Remote Control
11  RS 232 C Connector Pin Out
12  Socket Adapter Options
13  Error Messages
14  Software Options
15  Software Update
16  Malfunctions



 
1 Introduction

The mtr9 comfortably performs programming, testing, editing, and emulation of EPROMs, Flash-EPROMs and EEPROMs up to 1 Mbit (128 Kbyte). With the RAM extensions mtr9-2A (2Mbit), -2B (4Mbit), -2C (8Mbit), and -2D (16Mbit) even very large EPROMs are supported. Moreover, for many special devices, e.g. one-chip-microcomputers, socket adapters are available.
As in the mtr9 CMOS devices are widely used, it can be operated from its rechargable NiCd battery, sufficiently long for maintenance applications.
The RS 232 C interface allows communication in both directions e.g. with a host computer, a development station, or another mtr9. Moreover, it can be configured for remote control.
The mtr9 is operated using a menu technique with help messages which the user can call at any time. Operating- and error messages are plainly displayed and need not to be read from any list or manual. Lots of test functions preventing damages or malfunctions allow you to start with the mtr9 without any knowledge about it; if you do something wrong you are not only told that you failed, but also how to do right. The only knowledge about the EPROMs to be processed is the characteristic type number, printed on every device (e.g. 2764), and even this is usually identified by the mtr9. Thus you don't need any data sheets or tables for proper setting of parameters.

The low-cost version mtr9A is restricted to standard devices, and thus doesn't support socket adapters, except passive adapters for e.g. SMD packages. Moreover the mtr9A has no emulation facility (Section 6.5).


2 Getting Started: Power Supply, Battery Backup

Before connecting the mains adapter to an outlet, make sure that the correct nominal mains voltage is given on the label. You can obtain the right adapter from your dealer; if this is not immediately available, you may use a universal AC adapter with an output voltage of 6...12V AC or 9...16V DC at 200mA.
As long as the mtr9 is connected to the mains adapter the built in NiCd battery is charged, whether the mtr9 is switched on or not. Recharging a fully discharged battery needs about 3 hours. With a fully charged battery real programming time is about one hour; this is enough for lots of EPROMs due to the available fast programming algorithms and the fact that all other functions can be used for about 8 hours. You cannot damage the battery by charging it too long; nevertheless, continuously charging the battery will slightly shorten its life time.
Right before the battery is totally discharged, the mtr9 will power down automatically. The remaining battery capacity will provide for several weeks of battery backup for the contents of the analysis RAM as well as most operating parameters entered by the user. Only data which should only be changed in very special cases are reset to default values with every turn on.
After switching on the mtr9, first a self check is executed; during this check a copyright message is displayed introducing the type of the programmer, mtr9 or mtr9A. After some seconds the question "Taste D: Deutsch"/ "key E: English" will appear. Hit the E key, to set the programmer to English messages for the following session. Now the size of the installed RAM (1, 2, 4, 8 ,or 16Mbit) is displayed, and after a second the first menu text.

 
3 Menu Operation

In the following a key stroke is indicated by <key> and the display contents by "message". The operation of the mtr9 is supported by menus and messages. Each menu includes the actually available functions. With the cursor keys, <é>, <ê>, a value, a function, or a sub menu can be chosen. If the display is containing more than one entry fields you can scroll through them, and the previous or following menu text will appear after having reached the first or last field, respectively.
With <ENTER> all values are fixed, a displayed function is started, or an offered sub menu is called. <EXIT> will break any function, and return the program through the menu tree back to the main menu.
If a numerical entry is possible or necessary, this is indicated by a flashing cursor. Address- and data entry must be hexadecimal. After filling an entry field, the cursor will change to the next field, if available.
The entry of invalid values (e.g. start higher than end, or address higher than the type-dependent maximum) is prevented by automatic adjustment to the permissible ranges. This correction is indicated by an intermitting beep.
In each menu, there is a help instruction available which can be requested by hitting <?/0>. If this instruction or any other text is too long to fit into the display, this key is also used to continue the text, as long as an inverse question mark is displayed in the lower right corner. If <?/0> is needed for numerical entry, it must be held down for about one second to call the help- or continue function.
Messages to the user are indicated by a beep and must be acknowledged by hitting any key, whether it is an operating message (short beep) or an error message (long intermitting beep). Operating messages only appear if they are necessary; e.g. "insert EPROM" does not appear, if an EPROM is already inserted at the start of a type dependent function.
If no numerical entry is possible (no blinking cursor), the numeric keys <1>...<F> can be used to choose directly one of the first 15 items of a menu, in order to speed up operation.


4 Address Processing

In order to simplify operation, all addresses are simultaneously valid for the EPROM and the mtr9 RAM. You have not to distinguish between RAM- and EPROM address; i.e. the RAM can be seen as a copy of the EPROM to be processed (except emulation, s. below).
The memory space of page-mode EPROMs (27513, 27011) is continuously transformed to the mtr9 address range; i.e., page 0 occupies the range 0...3FFF, page 1 the range 4000...7FFF etc.
For the most devices the mtr9 is offering set processing. In the first line of the address-entry display a set number between 0 and F (hex) can by chosen. Thus, up to 16 files are supported if sufficient RAM size is installed. If this feature is used, the address ranges are set automatically.
Address values related to programming or file transfer (cf. 6.2, 8.2 respectively) are stored separately, and thus can be used as default values for following operations of the same kind. For the remaining functions the address range is always defaulting to the recently entered range, even if the mtr9 was powered down meanwhile.


5 Defining the EPROM Type

After entering "type entry" from the main menu, the EPROM type number can be chosen from a new menu using the cursor keys. The menu usually contains only the characteristic number, but no extensions indicating the manufacturer, the programming voltage, and the manufacturing technology; thus, after choosing 2764 also e.g. a 2764A and a 27C64 with any programming voltage Vpp can be processed, or even a 87C64 (27C64 with multiplexed bus). Although the 27XX series EPROMs are available with different Vpp values, Vpp need not be entered because it is set automatically to the right value. Also manufacturer dependent differences of the access control are automatically evaluated; e.g. Intel's 27256 needs other verify enable signals than Toshiba's 27256.
The mtr9 has a device-code ("silicon signature") table which is currently updated. EPROMs with a device code contained in the table will be identified automatically when inserted into the socket before starting a type dependent function.
The manually or automatically selected type number remains valid until it is redefined, either by type entry or by automatic identification. If a type dependent function is started by <ENTER>, the actually valid or just identified type number is displayed for a short time; the automatic identification is indicated by adding the manufacturer name and a beep during the display.

Example 5

Several 2764 samples shall be programmed with the file of a 2764 master:
1) Choose "type entry" from the main menu and start it by <ENTER>. Now the previously used type is displayed.
2) With <é>, <ê> choose "2764" and change to read by <ENTER> or <EXIT>. Now
you can continue with reading the master and later programming the duplicates.
3) By mistake an Intel D27128A is inserted into the socket. After starting the programming the display shows "27128 Intel", accompanied by a beep.
4) Now go to 1) again, because the type number changed to 27128 by automatic identification.


6 Type Specific Functions

From the main menu one of the following EPROM-processing (and thus type dependent) functions can be chosen with the cursor keys:

1) read,
2) program,
3) erase test,
4) verify,
5) emulation.

With <ENTER> the chosen function is started and the display shows shortly the previously defined type number or the just identified one together with the manufacturer name. Then the first menu text of this function appears. If a function is executed without any error, a ready message containing the check sum of the file processed by the function (four-digit arithmetic sum of all data bytes without carry).
After finishing a function the program normally returns to the previous item of the main menu, i.e. after finishing programming and erasing the checksum display by any key, the display returns to "program", and the next EPROM can be programmed immediately. An exception is the frequently used sequence: type entry - reading a master - programming a duplicate; this sequence is performed automatically.

6.1 Read

A source EPROM can be read partly or completely; i.e. it is copied to the RAM. The menu contains the message "completely" and the input fields for start- and end address. With <ENTER> after "completely" the whole EPROM is read. After <ê>, the address range used for the previous operation (reading or anything else) is displayed; it can be used once more or be overwritten. After <ENTER> the EPROM is read as specified.

Example 6.1

A 2764 shall be read completely:
1) Choose "read" from the main menu.
2) <ENTER> -> shortly "2764", then "completely".
3) <ENTER> -> shortly "wait", then "check sum".
4) <key> -> "program" (main menu).

6.2 Program

A destination EPROM can be programmed partly or completely (cf. 6.1), i.e. RAM data are copied to the EPROM. Here, the address range defaults to the range used for the last programming operation. This allows to repeat always the same programming operation, even if other functions, using different ranges, were executed meanwhile. The last-used programming algorithm can be used without redefinition, too.
Both is achieved by starting the programming just from the menu item "programming data as before". However, this item is not offered, if the EPROM type was changed, compared with the last programming operation.
If no special programming algorithm must be applied according to the EPROM type, the mtr9 is offering the following algorithms:

1) mtr high speed: The same as "inteligent" (s. below), but with a 0.1ms time base instead of 1ms.
2) "inteligent" (TM: Intel): Each byte is programmed first with one or more 1ms pulses. The number n of pulses needed until the byte verifies correctly is then taken to calculate the duration (3n times 1ms) of an over-programming pulse following the 1ms pulses.
3) "Quick-Pulse" (TM: Intel): Each byte is programmed with 0.1ms pulses until it verifies correctly. As no additional pulse is applied, this algorithm is only recommended for several Intel devices, and moreover only for types with Vpp=12.5V.
4) "SNAP!" (TM: Texas Instruments) or "RAPID" (TM: Atmel).
5) "Quick Pro" (TM: Fujitsu): The same as "inteligent", but with an additional pulse of only n times 1ms instead of 3n times; thus it only needs half the time.
6) Standard (50ms): Programming is performed with a 50ms pulse for each byte. This by far slowest algorithm does not guarantee the highest reliability.

Before programming is started, the EPROM is tested to be erased in the specified address range. If "not erased" is displayed, reprogramming can be prevented by <EXIT> or restarted by any other key; however, programming can only change a high bit to a low bit, and will be aborted with an error message if only one byte of the file is not programmable.
The programming reliability essentially depends on the Vcc value during verifying. For instance a memory cell programmed to contain a low bit may be read correctly at Vcc=5V. As the information read from the cell depends on the margin between Vcc and the threshold voltage of the cell (shifted by programming), the cell tends to be read as erased (high bit) with rising Vcc. Therefore the mtr9 verifies after each program pulse with Vcc=6.25V, as recommended by the most semiconductor manufacturers; this increased verify voltage gives an optimum data retention reliability even with the modern high-speed algorithms.
However, verifying each byte after programming cannot prevent a previously programmed byte to be altered later on due to cell coupling or address malfunctions. Therefore the whole file is verified at the end under normal operating conditions (Vcc=5V, Vpp switched off).
Except Intel's "Quick-Pulse", all algorithms further increase the reliability by adding programming pulses after verifying correctly. So care should be taken if "Quick-Pulse" is used although not recommended by the EPROM manufacturer. Depending on the internal circuitry of the EPROM the verify result may depend on the Vpp value, i.e. a bit, read correctly as zero if Vpp is applied, may change to one if Vpp is decreased to 5V. As this influence is small, EPROMs with Vpp=12.5V can be programmed with "Quick-Pulse".
The other algorithms are similar with respect to reliability. Especially the mtr high-speed algorithm offers about the same reliability as the widely used "inteligent" algorithm, but it is between three and ten times faster (typically five times); on the other hand it needs only triple the time of Intel's "Quick-Pulse" and can therefore be recommended for almost any EPROM.
However, if the EPROM should meet the reliability specifications of its manufacturer, it is a good way, to use the algorithm recommended by this manufacturer. On the other hand, for moderate life time requirements, e.g. during development, a substantial amount of time can be saved with the fastest algorithm ("Quick-Pulse"). It will program e.g. a 27128 within 6s, three seconds real programming time and three seconds for tests, performed in all algorithms, as listed below:

1) Tests before Programming:
1.1) Test the supply current.
1.2) Test the Vpp input at Vpp=5V and Vcc=0V.
1.3) Is the data bus idle if the EPROM is disabled?
1.4) Is the data bus defined if the EPROM is enabled?
1.5) Is there any address-bus short circuit?
1.6) Are all bytes in the entered address range erased?
1.7) Increase Vcc to 6.25V and test the supply current.

2) Tests during or after programming of each byte:
2.1) Is there any address-bus short circuit?
2.2) Are the data pins configured as inputs during the program pulse?
2.3) Is the byte programmable?
2.4) Find the correct enable signals for verifying.
2.5) Verify the byte and continue programming it if not true. 2.6) Test for max. program-
pulse duration and number.
2.7) Find the correct Vpp value if programming fails. Here a special algorithm is used
because many EPROMs cannot be verified at a Vpp lower than the nominal value.

3) Tests after programming:
3.1) Decrease Vcc to 5V, wait until it is stable.
3.2) Is there any address-bus short circuit?
3.3) Verify the whole specified address range.

For the amount of three seconds for a 27128 you thus obtain not only a programmed EPROM but also a well tested one. Further the tests make it almost impossible to damage any semiconductor device fitting into the mtr9's socket, because all supplies are switched off after detecting an error, and Vpp is only switched on if the device behaves like the specified EPROM type with respect to address-, data-, and access control.

Example 6.2

The first half of some 2764s (0...FFF) shall be programmed with the file stored in the mtr9 RAM, using the mtr high-speed algorithm:

1) Choose "program" from the main menu.
2) Insert first EPROM.
3) <ENTER> -> shortly "2764", then the previous algorithm.
4) As programming parameters are not yet specified:
<é> / <ê> -> "high speed (mtr); ...".
5) <ENTER> -> "completely".
6) <ê> -> "address range 0: ssssss...eeeeee" (last address range).
7) <0><ê> -> "address range 0: 0...eeeeee" (start addr.=0).
8) <F><F><F> -> "address range 0: 0... FFF" (first half 2764).
9) <ENTER> -> "wait" (programming duration), then "check sum".
10) Insert next EPROM; now a rather simple procedure will do:
11) <key> -> "program".
12) <ENTER> -> shortly "2764", then "programming data as before".
13) <ENTER> -> "wait" (programming duration), then "check sum".

6.3 Erase Test

An EPROM can be tested whether it is partly or completely erased (cf. 6.1). As a result it is only displayed whether the specified range is erased (check sum display) or not ("not erased"). Although the erase test is executed automatically before programming procedure, this function is separately useful e.g. to check EPROMs after erasing.

6.4 Verify

The contents of an EPROM can be compared partly or completely (cf. 6.1) with the RAM contents. Differences are displayed in the format "address n: aaaaaa, RAM:rr, EPROM:ee" with the set number n, address aaaaaa, RAM data rr, and EPROM data ee.
With the cursor keys the list of differing values can be run through in both directions. The start address for editing the differences can be entered with the key board; then after <ENTER>, RAM and EPROM data at the start address are displayed, whether they differ or not. If no difference was found, "check sum" appears.

Example 6.4
A 2764, some bytes of which have been changed shall be compared with the original:
1) Read the original, choose "verify" from main menu.
2) Insert EPROM with unknown modification.
3) <ENTER> -> shortly "2764", then "completely".
4) <ENTER> -> shortly "wait", then "differences".
5) <key> -> "address 0: aaaaaa, RAM:rr, EPROM:ee", with the wanted
address aaaaaa, the original byte rr and the modified byte ee.

6.5 Emulation (not available in mtr9A)

*** Attention: A sufficiently reliable protection against reverse supply voltage cannot be achieved by moderate means. Therefore confusing the poles may damage the target system or the mtr9.
Using the mtr9 as emulator means that the RAM contents, possibly processed before, is used as the contents of the EPROM to be simulated, as long as the mtr9 ZIF socket is connected to the target system via appropriate DIL cable. This function is disabled for page-mode devices as 27513 and 27011. Depending on EPROM size and installed RAM you can choose between up to 16 files for emulation with the set number.
After <ENTER> first the type number appears for a short time; the following message reminds you not to confuse poles. After the next key you may choose the number (0...9, A...F) of the file to be employed for emulation. Having entered a new number, the mtr9 immediately will show the corresponding RAM range with the size of the simulated device. However, it should be mentioned that changing a file containing program code will make the system hang, while pure data code usually may be changed during operation.
Emulation will never yield an exact replica of the simulated EPROM. Besides the limited access delay of about 100ns and the loading of the enable pins , there are some minor facts that may lead to difficulties:
Most problems arise in large systems where the enable signals originally already have overshoots which are increased by the emulator cable due to its impedance and to coupling between adjacent lines. Then it can happen that the enable signals (or even addresses) are not stable, sufficiently long before the processor accesses the data bus pa

Example 6.5
The influence of different ignition characteristics on the performance of a motor shall be evaluated; e.g. two data arrays are contained in two 27256 files:
1) Load the second file first to the address range 0...7FFF ("read").
2) Move it to target address 8000 (editor / "move").
3) load the fist file to 0...7FFF ("read").
4) Choose "emulation" from the main menu.
5) <ENTER> -> shortly "27256", then "ATTENTION: REVERSE SUPPLY...",
6) <key> -> "address range 0: x, ssssss...eeeeee", with the previous range.
7) <0> -> "address range 0: 0... 7FFF"; now the first file is used for emulation.
8) <1> -> "address range 1: 8000... FFFF"; now the second file is used for emulation.


7 Editor

Hitting <ENTER> after "run editor" you enter the first editor function: edit single locations (cf. 7.1). The remaining functions of the editor menu are entered pressing <ENTER> again. Further, as usual, the cursor keys are used
to choose from the menu:

1) edit single locations (to next item with <ENTER>),
2) find,
3) fill,
4) move,
5) split, shuffle.

Except the first item each function is started with <ENTER> and the first menu text referring to the chosen function will appear.
After finishing the program returns to the previous item of the editor menu, i.e. after finishing a block move and erasing the checksum display with any key, "move" appears again.

7.1 Edit Single Locations


With this function RAM data can be displayed and modified. Display and entry are hexadecimal. After starting the editor "address: aaaaaa, data: dd" is displayed, with the address aaaaaa (=0 after start) and the data byte dd at this location.
Now, the cursor can be moved between upper (address) and lower (data) field with the cursor keys and the corresponding value can be changed. After entering an address, moving the cursor to the data field will immediately yield the present data byte, which may now be overwritten or not. With the cursor in the data field, an additional <ê> having increment the address, while <é> with the cursor already in the address field will decrement the address.

7.2 Find

After entering an address range and a string of up to five data-bytes, this string is searched for in the specified address range.
Having found the string, the mtr9 will jump to the single-location display (s. above) with the start location of the found string. After restarting the find function, searching can be continued by twice <ENTER>, because the start address is automatically updated and the string remains unchanged.
If no correct strings are found, the message "not found: aa bb cc dd ee" is displayed, with the previously entered string aa bb cc dd ee.

7.3 Fill


After entering an address range and a string of up to five data-bytes, the specified range is continuously filled with the entered string. The check sum of the filled range appearing after finishing has in practice no meaning.

7.4 Move

After entering an address range and the destination address, the source file defined by the address range is moved to the destination range starting at the entered destination address. In any case no address conflict can occur, and thus the file is not altered after shifting.

7.5 Split/Shuffle

In order to support word lengths longer than 8bit, after <ENTER> the utilities described below are available. They are applied each to a RAM address range between 0 and an entered upper limit.

1) Split: This function moves bytes located at even addresses continuously to the lower half of the address range and bytes from odd addresses to the upper half. This allows a 16bit program in an EPROM for a system with 8bit data bus (e.g. 8088 CPU) to be distributed to two EPROMs for a system with 16bit data bus (e.g. 8086 CPU). Multiple use of this function equivalently supports word lengths of 8, 16, 32, 64bit and more.

2) Shuffle: Inverse of the split function.

3) Exchange: Lower and upper half of the address range are exchanged. This function is useful to process both parts of a splitted file. Using the move function (7.4) to shift the upper half to the lower would overwrite the lower half, and thus erase it.

4) A0 Inversion: Dies function is useful e.g. if after transmitting a 16-bit file to the mtr9 the H-byte is positioned before the L-byte, while the target processor needs it just vice versa. Using two 8-bit EPROMs allows to interchange them, with a 16-bit EPROM this is not possible.


8 File Transfer

Data communication between the mtr9 and any host system is performed via RS 232C interface, provided that the interface is configured properly (cf. 9).
After choosing "file transfer" and <ENTER> the display shows "address ranges, direction" and address values can be entered (cf. 8.2). Then the transfer direction is chosen and the actual transfer is started. Address values and direction default to the parameters of the previous transfer operation, allowing to perform a transfer of the same kind without any input or choice of parameters, even if any other function was used or the mtr9 was switched off meanwhile.
It is assumed that the file format, commonly to be used, has been previously defined (it is also permanently stored); if not, or if it has to be redefined, first the function "file format" is chosen (s. below).

8.1 File Format

After starting this function, it can be chosen from the following formats:

1) Intel Hex (self adjusting to address space),
2) Motorola S-record (self adjusting to S1/S9- or S2/S3 format),
3) Standard Tekhex (Tektronix, Millenium),
4) Extended Tekhex (Tektronix, Millenium),
5) ASCII hex; down load: with or without arbitrary separators,
up load: space after each two characters (each byte),
6) binary; here of course control characters are not allowed, because they would be inter-
preted as data bytes, and a transfer with 7 data bits is not possible.

Program files are commonly stored using one of the first four formats. These formats are also best suited for telecommunication and for keeping other EPROM files on disk or tape, due to error detection capability.
The remaining formats are useful if the host computer offers no standard copy program for the serial interface. In this case, it may help to copy a file first into the host computer memory, and then via binary- or ASCII dump routine to the mtr9.

8.2 Address Entry

If format and protocol are defined, the host address (only for Intel, Motorola, or Tektronix), start address, end address, and later on the transfer direction must be chosen (see below).
The correct entry of host- and start address is quite important, because the difference of both determines the position of the file in the mtr9, and because only few programs are executable at any address.
If the host address is unknown it can possibly be found using a screen dump of the file, because each block contains its load address.

Example 8.2

From a screen dump the load address of an Intel- or a Motorola block is to be determined. Below the beginning of both blocks is shown. Both contain the same data, beginning at load address C000 (printed in bold letters):
Intel: :20C000003E7FD681 ...
Motorola: S123C0003E7FD681 ...

8.3 Down Load

After choosing "mtr9 receive" and <ENTER>, the display will change to
"mtr9 receiving / waiting" and a blinking cursor indicates whether the mtr9 is
really receiving data or waiting for data.
If Intel, Motorola, or Tektronix code is used, essentially the whole source file is transferred to the mtr9 with the data of the entered host address to be copied to the start address of the entered range of the mtr9-RAM and so on; i.e. the difference between start address and host address is the offset between EPROM addresses and original addresses.
If a byte would be written to a location outside the entered address range, it is ignored although tested for transfer errors. After receiving an end-of-file block, the transfer is stopped; so an end-of-file character (ctrl-Z) is not necessary.
ASCII-hex and binary code contain no address information; thus the first data byte is copied to the entered start address and then the address is incremented after each byte until reaching the end address. If the source file is shorter than the specified range, the transfer must be stopped by <EXIT>.
The check sum contained in the ready message is usually not the same as the one obtained after burning the file into an EPROM; the reason is that the EPROM file includes non significant bytes from locations to which no data have been transferred.
Intel, Motorola, and Tektronix format may contain any arbitrary characters except the block marks outside the blocks, because after finishing one block only the block mark (":", "S", "/" cf. example 8.2) are recognised. An ASCII file is even allowed to contain any characters except 0...9, A...F within the block, whereas binary allows no additional characters, because all values between 00 and FF are interpreted as data.

Example 8.3

An Intel-Hex file, stored as "NAME" on drive B: of an MSDOS computer, beginning at address C000 shall be copied to a 2764 which will occupy the address range C000...DFFF due to decoding. The mtr9 is configured for 9600 Baud, no parity, 8 data-, 2 stop bits (cf. 9), and is coupled to the serial port "COM1":
1) With the MSDOS command mode com1:9600,n,8,2,p the port is set to the same
parameters and to retry output.
2) Choose "file transfer" from the main menu.
3) <ENTER> -> "address ranges, direction".
4) <ê> -> "file format".
5) <ENTER> -> "last format".
6) <é>, <ê> -> "Intel-Hex".
7) <ENTER> -> "address ranges, direction".
8) <ENTER> -> "host address: last address".
9) <C><0><0><0> -> "host address: C000".
10) <ENTER> -> "address range: last range".
11) <0><ê> -> "address range: 0...last end".
12) <1><F><F><F> -> "address range: 0... 1FFF".
13) <ENTER> -> "last direction".
14) <é>, <ê> -> "mtr9 receive",
15) <ENTER> -> "mtr9 receiving / waiting", with a flashing cursor indicating
whether the mtr9 is receiving or waiting for data, respectively.
16) With the MSDOS command copy b:name com1 the transmission is started.
Lateron the EPROM can be programmed without additional data manipulation.

8.4 Up Load

After choosing "mtr9 transmit" and <ENTER>, the display will change to mtr9 transmit. / waiting" with a blinking indicating whether the mtr9 is really transmitting data or waiting for the host to become ready to receive data.
The source file from the entered address range of the mtr9 RAM is transmitted to the host computer. In the case of Intel, Motorola, or Tektronix code, the load address for the first byte of the address range is the entered host address (cf. 8.3).
The formats except binary contain additionally carriage return (CR, 0D) and line feed (LF, 0A) after each block. Intel, Motorola, and Tektronix blocks are normally 32 byte, ASCII- hex blocks 16 byte long; this allows a properly formatted output on an 80 columns screen or printer.
At the end of a file a ctrl-Z (1A) is sent, stopping the host copy program (except binary format). As normally complete EPROM files are loaded, the check sum displayed after execution is the same like the one after processing the appropriate EPROM.

Example 8.4

A 2764 source shall be stored as Intel-Hex file called "NAME" on drive B: of an MSDOS computer. To simplify the screen evaluation (cf. example 8.2) host- and start address are set to 0000. Interface parameters and format are the same as in section 8.3:
1) Read the 2764 and choose "file transfer" from the main menu.
2) After the command copy com1 b:name the host computer is ready to receive.
3) <ENTER> -> "address ranges, direction".
4) <ENTER> -> "host address: last address".
5) <0> -> "host address: 0".
6) <ENTER> -> "address range: last range".
7) <0><ê> -> "address range: 0...last end".
8) <1><F><F><F> -> "address range: 0... 1FFF".
9) <ENTER> -> "last direction".
10) <é>, <ê> -> "mtr9 transmit",
11) <ENTER> -> "mtr9 transmit. / waiting", with a flashing cursor indicating
whether the mtr9 transmitting data or waiting for the host to
become ready to receive.


9 Serial Interface Configuration

The configuration menu offers the following parameters to be chosen by the cursor keys:
baud rate,
bit pattern (data-, stop-, parity bits),
handshake,
test.

9.1 Baud Rate

One of the values 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400 Baud is chosen with the cursor keys, and after <ENTER> the menu continues with bit-pattern entry. Normally the highest baud rate is chosen, e.g. for MS-DOS without special interface drivers 9600 Baud, for Windows 3800 Baud. The lower baud rates are used for data communication via telephone or for output to printers without handshake capability.

9.2 Bit Pattern
The ranges of bit pattern variables are 7 or 8 data bits, 1 or 2 stop bits, even, odd or no parity. After entering invalid bit numbers, they are automatically adjusted to the permissible ranges; the kind of parity bit is chosen from a menu with the cursor keys.

9.3 Handshake

It can be chosen between none, CTS/DTR (hardware) handshake and XON/XOFF (software) handshake, the former of which is only recommended if the host interface has not any handshake capability. The mtr9 normally is able to receive data up to 9600 Baud without handshake; vice versa the limit is of course given by the host computer.
Independent of the handshake method, the mtr9 can receive minimum four bytes after having sent the not-ready-to-receive signal, i.e., after setting DTR=0 or sending XOFF (ctrl-S, hex 13) to the host computer, respectively. Ready to receive is the mtr9 immediately after having sent the appropriate signal, i.e., DTR=1 or XON (ctrl-Q, hex 11), respectively.
Vice versa, the mtr9 stops transmission immediately after receipt of the appropriate host computer signal, i.e., after CTS=0 or XOFF from the host computer. Thus, the host computer needs no receive buffer.
XON/XOFF protocol sometimes will make transmission hang. For this reason the mtr9 is offering the possibility to ignore the XOFF state: If it is waiting for data from the host computer (indicated by the cursor, cf. 8.3), after <ENTER> the signal XON is sent to the host computer, making it to continue transmission. If the mtr9 is waiting for the XON signal from the host computer (indicated by the cursor, cf. 8.4), <ENTER> will force it to continue transmission and stop again after the next XOFF signal from the host computer.

9.4 Test

Before starting the test DTR (pin 20) with CTS (pin 5) as well as TD (pin 2) with RD (pin3) must be connected. After <ENTER> then the interface is tested with the baud rate chosen before, and the result is displayed


10 Remote Control

The mtr9 can be remote controlled via its RS 232 C interface using the previously entered interface parameters (baud rate, bit pattern, handshake). Of course, the mtr9 inhibits changing these parameters by remote control, because after a change no further remote instruction will be understood. By the same reason the recovery from an interface error is not possible by remote control. Moreover, remote control is disabled as long as the mtr9 is receiving a data file, because it could not distinguish between control code and data to be received. Besides these exceptions, the mtr9 can be remote controlled without restrictions.
Changing between local and remote control is done automatically in a quit simple way: After having received a control code, the mtr9 is changing to remote control, and after hitting any key, it is changing to local control. This means that the mtr9 can be simultaneously controlled locally and remotely.
For remote control, the keys of the mtr9 are replaced by hex- (ASCII-) codes, representing the key functions after the following table:
 
hex. ASCII  key        hex. ASCII  key
30      0         0          41      A        A
31      1         1          42      B        B
32      2         2          43      C        C
33      3         3          44      D        D
34      4         4          45      E         E
35      5         5          46      F         F
36      6         6          2D      -         é
37      7         7          2B      +        ê
38      8         8          1B     ESC    EXIT
39      9         9          0D     CR      ENTER
3F      ?         ?  (help funct.)

Every received byte is acknowledged by an echo, and every display text is transmitted completely with CR/LF after each line (two display lines per line) at the end. The buzzer signal is replaced by ASCII-BEL (hex 07), on which most terminals respond with a short beep.
Input fields are enclosed by < > and after each entered character the whole input is sent with a leading and a trailing CR, making it staying on the same screen position of a terminal.
Thus the mtr9 can simply be controlled by a terminal or a host computer with terminal program. And it is quite easy to realize a control program offering more comfortable operation as possible with the keyboard and the display of the mtr9.


11 Connector Pin Out

The Interface has a 25-pin sub-D female connector configured as data terminal equipment (DTE) as follows:

2: TD 7: GND
3: RD 20: DTR
5: CTS others: n.c.

Most computers have also a DTE interface. Therefore, in the most cases a cable with the following pin interconnections will do: 2-3, 3-2, 5-20, 20-5, 7-7. Your DTE interface may additionally need high level on one or more of the pins 6, 8, or 22, in order to start communication or to prevent an error message. In this case connect these pins to pin 5 in the connector at the host side.
If you have an interface configured as data communication equipment (DCE), like many printers have and almost all acoustic couplers, you must use a cable where 2, 3, 5, 7, and 20 are connected straightly. A DCE interface may need a request-to-send signal on pin 4; then connect this to 20. If pin 6 is used for handshaking, connect it to 5 in any connector.
Unfortunately, there is no commonly used relation between connector- (male/female) and interface type (DTE/DCE). Thus the interface type must be found out using the manual of the host or by trial and error. However, a well designed RS 232 interface cannot be damaged by wrong connections.


12 Socket Adapter Options (not available in mtr9A)

Non standard EPROM devices can be processed with the mtr9 using appropriate socket adapters. The available adapter types and the device types they support can be taken from the following table:

adapter type       supported devices
mtr9-3 (9-3P)    word-wide EPROMs, DIP40 (PLCC44)
mtr9-4               8741(A), 8742(AH), 8748(H), 8749AH
mtr9-5               8744H, 8751H, 87C51, 87C51FA, 8752BH
mtr9-6               63701 V0
mtr9-7               63701 X0
mtr9-8               63705 V0
mtr9-9               87M12, CC460
mtr9-10             AMD- and Intel-Flash, SOP44
mtr9-11(A, B)   Siemens C500 series

If socket adapters are used, care should be taken with respect to the following details:

1) The socket-adapter have no emulation capability.

2) The socket adapter is identified automatically, i.e. for type entry the type menu changes to the types supported by the adapter. If only a single type is supported a type entry is not necessary.

3) The programming voltage is not automatically adjusted if a socket adapter is used, because almost none of the supported devices allows a sufficiently well defined operation if the programming voltage is too low. Moreover the testing capabilities, quite extensive without adapter, are restricted to the most important tests.

Thus, it is possible to damage a device with a programming voltage above the maximum rating. Therefore, choose the device type quite carefully from the menu!


13 Error Messages


All functions of the mtr9 are accompanied by automatic tests which make damages due to device malfunctions or operating errors quite impossible (except emulation). Most errors are corrected automatically. Where this is senseless or not possible error messages are displayed as described below.

"differences": Differences between EPROM- and RAM data have been found by
the verify function (6.4).
"EPROM error": Besides a defective EPROM, a wrong type or a wrong insertion into the socket can be the reason.
"insert EPROM": If the socket contains an EPROM, a wrong type, a defective device, or a bad connection can be the reason.
"low battery, backup invalid": The battery was discharged so far that valid backup data of analysis- and processor RAM cannot be guaranteed any longer.
"not erased": Before programming (6.2) or in a separate erase test (6.3), minimum one bit within the specified range was registered as not erased.
"progr. error": One of the various tests during and after programming has been executed without a sufficient result (cf. 6.2).
"socket-buffer or RAM error": A device within the mtr9 is damaged.
"RS 232 error": When receiving a file or a remote control code one of the following errors given by the display has been registered:
"Parity": Parity bit wrong.
"Stop bit=0": One or two stop bits were zero, usually due to wrong entry of data- or stop bits.
"SR overrun": Overrun of receive shift register, usually due to handshake malfunction, or possibly wrong number of data- and/or stop bits.
"Overrun": Overrun of receive buffer due to handshake malfunction. "Check sum": Block check sum error when receiving files with error detection capability (Intel Hex, Motorola S-record, Tekhex, cf. 8.1).
"CTS/DTR" or "RX/TX": Hardware error of handshake- or data lines registered when testing (cf. 9.4).


14 Software Options

Powering up the mtr9, all software options are reset to their default values. As these options should only be changed in very special cases (e.g. in-circuit programming, or reading damaged devices), the code "123" must be entered to access the following options (default values in parentheses):

remote control: on/off (on),
Vcc test: on/off (on),
Vpp test: on/off (on),
address test: on/off (on),
access test: on/off (on),
type identify: on/off (on),
6.25V enable: on/off (on).


15 Software Update

The mtr9 software is currently adapted to the customers requirements as well as to new device types and adapters.
Software update for your mtr9 of course can be done by the manufacturer or dealer within a short time; however, if the programmer is continuously needed you can change the system EPROM quite easy:
First remove the self-adhesive rubber pads from the bottom of the case and the screws below them. Then lift the bottom of the case. Now you can access the system EPROM located at the bottom of the mtr9 main board.
Caution! Prevent the contact between battery connectors or between battery connectors and conducting parts of the p.c.b., because this may damage the mtr9.
The most recent versions of the mtr9's operation program and the remote-control software can be downloaded from the Internet (URL, cf. envelope page).

 
16 Malfunctions

The mtr9 made profit of the experience with more than 1000 units of the preceding mtr3 and thus can be expected to be quite reliable.
Nevertheless, malfunctions may happen. Normal random drop outs of single components should be repaired by authorised personal only. Moreover there are two typical reasons of failure which may be repaired by the competent user:

1) Dirty or damaged ZIF socket: Data-, control-, and supply lines are reliably tested to be sufficiently conducting; if they are not, the message "insert EPROM" or "EPROM error" will appear and vanish after sometimes operating the socket lever and restarting the Program. Address lines cannot be tested in a similar way, due to high impedance. Here, bad conduction will give a wrong check sum or may break programming.
The socket can be easily removed without opening the case by loosen the two screws at the ends of the socket and pulling it off of the socket below it. Now after your needs you can clean the socket with spirit, or replace it.

2) Confusing poles of the emulator cable: As in this case the power supply of the target system will be short circuited via protection diodes of CMOS devices in the mtr9, damages must be expected, indicated by the messages mentioned above or by "socket-buffer or RAM error" after switching on. Usually damages are restricted to the socket-buffers (four samples of the 74HC245 or 74HCT245, placed around the socket).
Consequently replacing one or more of these devices may help. If not, repairing should be done by the manufacturer in any case. To replace these parts, the main board must be removed from the case. So first pull off the battery cables from the p.c.b.

Caution! Prevent the contact between battery connectors or between battery connectors and conducting parts of the p.c.b., because this may damage the mtr9.

Then loosen the four screws at the corners of the p.c.b. and lift it at the front edge. After removing the key-board connectors, you can take the p.c.b. out of the case and then lift off the RAM p.c.b., if built in, from its socket in order to access all four buffers.
When reassembling the mtr9, make sure that the keyboard ribbon cable forms an S-shape, and that the ZIF-socket lever is fed through the appropriate hole in the cover. Further, contact between the battery connectors and conducting parts of the p.c.b. must be prevented as mentioned above, when the battery and the switch are reconnected.

Caution! Don't confuse poles when reconnecting the battery cable (+/- marks on the p.c.b.).

© 2015 by mtr, Dr.-Ing. Roland Ranfft
mtr9, mtr9A, Rev. 10a