manual
source: http://s-huehn.de/elektronik/epromprog/epromprog.htm#bedienung
Zur Inbetriebnahme des Programmiergerätes ist es erforderlich, eine Verbindung zu einem PC herzustellen. Weiterhin muss auf dem PC ein Terminalprogramm gestartet und richtig eingestellt werden. Die verwendete serielle Schnittstelle ist auf 115200 Baud (8N1) und auf Hardware-Flusssteuerung (CTS/RTS) einzustellen. Einige Terminals bieten eine Option ASCII-Konfiguration, hier sollte man eventuelle Verzögerungen auf 0 setzen, sonst kann das Programmieren ewig dauern. Die genannten Einstellungen gelten auch für den Betrieb über USB. Der einzige Unterschied ist: Es wird hier die virtuelle Schnittstelle des USB-Interface ausgewählt.
Jetzt wird das Programmiergerät eingeschaltet und ca. eine Sekunde später sollte das Hauptmenü auf dem Bildschirm zu sehen sein. Falls das nicht passiert und stattdessen die rote LED mit ca. 5Hz blinkt, liegt ein Fehler bei der RS232-Verbindung vor. In diesem Fall muss das Problem beseitigt und dann das Programmiergerät aus- und erneut eingeschaltet werden. Sollten anstatt des Hauptmenüs keine oder nur wirre Zeichen im Terminalfenster erscheinen, dann ist vermutlich eine falsche Baudrate eingestellt.
Das Hauptmenü bietet folgende Möglichkeiten:
Option | Beschreibung |
---|---|
1 | IC-Typ wählen - Es wird ein Untermenü mit den verfügbaren EPROM-Typen angezeigt. Die Auswahl erfolgt durch Eingabe der entsprechenden 2-stelligen Nummer. Bei einer unsinnigen Eingabe wird die Liste nochmals angezeigt, erst eine sinnvolle Eingabe führt zurück ins Hauptmenü. Mit ESC kann man jederzeit ohne Änderung ins Hauptmenü zurückspringen. Hinweis: Mit Speicherschutz versehene Flash-EPROMs können nicht programmiert werden. Dies lässt die Hardware des Programmiergerätes leider nicht zu, außerdem wird die erforderliche Prozedur meist nicht in den Datenblättern beschrieben. |
2 | Programmieren - Spätestens nach Auswahl dieser Option sollte sich das EPROM im Programmiersockel befinden. Das Gerät wartet nun auf die zu programmierenden Daten im Intel-Hex-Format. Dazu benutzt man am Terminalprogramm die Funktion Textdatei senden oder ASCII senden und wählt die gewünschte Datei aus. Das Programmiergerät liest die Daten ein und arbeitet sie zeilenweise ab, d.h. nach dem fehlerfreien Empfang einer Hex-Zeile wird das EPROM eingeschaltet und die in der Zeile enthaltenen Daten werden programmiert. Danach wird das EPROM wieder abgeschaltet und auf die nächste Zeile gewartet. Bei erfolgreicher Programmierung wird die Anfangsadresse des Blocks und ein OK auf dem Bildschirm ausgegeben, anderenfalls die Adresse und Fehler. Wichtig: Bitte nicht versuchen, Binärdateien per XModem-, YModem-, ZModem- oder Kermit-Protokoll zu übertragen - das funktioniert nicht! |
3 | Vergleichen - Der Handlungsablauf beim Vergleichen ist praktisch identisch zum Programmieren: Das EPROM wird in den Sockel eingesetzt und am Terminal die Hex-Datei abgesendet. In diesem Fall wird das EPROM aber nicht programmiert, sondern gelesen und mit den empfangenen Daten verglichen. Bei Übereinstimmung einer empfangenen Hex-Zeile mit dem entsprechenden EPROM-Inhalt wird auf dem Bildschirm die Anfangsadresse des Blockes und ein OK ausgegeben, bei Ungleichheiten die Adresse und Fehler. Auch hier gelten die gleichen Hinweise und Warnungen betreffs Fehlermeldungen und Binärdateien. |
4 | Lesen - Hier ist vielleicht etwas Übung erforderlich, damit die Aufzeichnung einer Hex-Datei gelingt. Nach dem Stecken des EPROMs und der Auswahl der Lesen-Funktion muss am Terminalprogramm die Funktion Text empfangen, ASCII empfangen oder Text aufzeichnen ausgewählt werden. Falls so eine Möglichkeit nicht existiert, dann startet man stattdessen die Log-Funktion. Ein Druck auf die Enter-Taste im Terminalfenster startet das Lesen - das EPROM wird eingeschaltet und der Inhalt im Intel-Hex-Format mit 32 Bytes/Zeile ausgegeben. Je nach Einstellung des Lese-Modus (siehe Option 7) werden dabei entweder alle Bytes ausgeben oder zur Reduzierung der Datenmenge leere Speicherbereiche weggelassen (Zeilen, die 32 aufeinander folgende Bytes mit dem Inhalt 0xFF haben). Am Ende des Datentransfers muss zuerst die Aufzeichnungsfunktion wieder deaktiviert werden und erst dann wird mit einem Druck auf die Enter-Taste ins Hauptmenü zurückgekehrt. Diese Reihenfolge ist wichtig, damit eine "saubere" Hex-Datei aufgezeichnet wird. |
5 | Leertest - Hier werden einfach nacheinander alle Speicherzellen des EPROM ausgelesen und auf den Wert 0xFF geprüft, welcher einer leeren Speicherzelle entspricht. Sind alle Zellen leer, dann wird eine entsprechende Meldung ausgegeben, anderenfalls auch :-) Bei größeren EPROMs kann der Test einige Sekunden dauern. |
6 | Löschen - Diese Funktion ist nur bei Flash-EPROMs und gegebenenfalls bei EEPROMs anwendbar und bewirkt das Löschen des gesamten Speicherbereiches mit der Funktion "Chip Erase". Das Löschen beginnt sofort nach Auswahl dieser Option, eine Sicherheitsabfrage erfolgt nicht. Das Löschen kann je nach IC-Typ bis zu einer Minute dauern. Hinweis: Mit Speicherschutz versehene Flash-EPROMs können nicht gelöscht werden. Dies lässt die Hardware des Programmiergerätes leider nicht zu, außerdem wird die erforderliche Prozedur meist nicht in den Datenblättern beschrieben. |
7 | Lese-Modus - Mit dieser Option wird der Lese-Modus umgeschaltet. Es stehen zwei Möglichkeiten zur Auswahl: Die aktuelle Einstellung des Lese-Modus wird im EEPROM des Controllers gespeichert und bleibt auch beim Abschalten des Gerätes erhalten. |
8 | Sprache - Mit dieser Option wird die Sprache für die Menüführung gewählt. Nach Auswahl dieser Funktion wird direkt zwischen deutsch und english umgeschaltet. Die aktuelle Einstellung der Sprache wird im EEPROM des Controllers gespeichert und bleibt auch beim Abschalten des Gerätes erhalten. |
9 | RS232 Baudrate - Hiermit kann man die Baudrate der seriellen Schnittstelle ändern. Im folgenden Menü werden die möglichen Raten von 115200, 57600, 38400, 19200 und 9600 Baud angeboten. Wird die bereits verwendete Baudrate ausgewählt, dann erscheint sofort wieder das Hauptmenü. Bei Auswahl einer abweichenden Rate erscheint ein kurzer Hinweis auf die nun folgende Prozedur und die rote LED blinkt im Sekunden-Takt. An dieser Stelle muss zunächst das Terminal auf die neue Baudrate umgestellt werden. Danach ist es erforderlich, das Programmiergerät aus- und wieder einzuschalten. Nun sollte wieder das Hauptmenü auf dem Bildschirm zu sehen sein. Falls nicht, dann muss eventuell das Terminalprogramm neu gestartet werden. Mit ESC kann man übrigens ohne Änderung der Baudrate ins Hauptmenü zurückkehren. Auch die aktuelle Einstellung der Baudrate wird im EEPROM des Controllers gespeichert und bleibt beim Abschalten des Gerätes erhalten. |
Noch ein paar Praxis-Tipps: Es empfiehlt sich, die Default-Einstellung von 115200 Baud zu verwenden, denn niedrigere Raten verlangsamen den Programmier- und Lesevorgang enorm. Eine Reduzierung ist nur erforderlich, wenn es Probleme bei der Datenübertragung gibt. Ich habe hier hauptsächlich mit dem Hyperterminal von Windows 98 und XP gearbeitet, dabei sind auch bei hoher Systemauslastung nie Fehler beim Transfer zum Programmiergerät (Programmieren und Vergleichen) aufgetreten. In der Gegenrichtung sind beim EPROM-Lesen mit 115200 Baud unter Windows 98 gelegentlich ein paar Zeichen verloren gegangen, was aber eher eine Schwäche von Windows ist. Ich habe daraufhin die Software des Programmiergerätes so geändert, dass nach jeder Hex-Zeile eine kurze Verzögerung von 500µs eingefügt wird und seitdem klappt es fehlerfrei. Unter MS-DOS (ja, das gab es einmal) traten grundsätzlich nie Übertragungsfehler auf, auch ohne die zusätzliche Pause.
Sollten viele Übertragungsfehler beim Programmieren oder Vergleichen auftreten, dann sollte man auf jeden Fall kontrollieren, ob die Flusssteuerung mit CTS/RTS (Hardware) aktiviert ist. Andere Einstellungen wie XON/XOFF oder eine ausgeschaltete Flusssteuerung führen mit Sicherheit zu Problemen!
Ich habe mehrere Terminalprogramme zusammen mit dem Programmiergerät getestet: unter DOS die Klassiker Telix und Telemate sowie das Terminal des Norton Commanders, unter Windows 98 das Hyperterminal und ZOC und unter Windows XP das Hyperterminal. Probleme gab es nur mit dem Norton Terminal und leider auch mit dem Hyperterminal von Windows XP. Alle anderen Programme sind bestens zum Programmieren geeignet. Die beiden genannten Ausnahmen funktionieren natürlich auch, allerdings werden beim Senden von ASCII-Dateien lange Pausen zwischen den Zeilen bzw. Zeichen eingefügt, so dass die Programmierung und der Vergleich im Schneckentempo ablaufen.
Für das XP-Hyperterminal habe ich leider keine Möglichkeit gefunden, den Transfer beim Senden zu beschleunigen, so dass ich einfach das Hyperterminal von Windows 98 (bestehend aus den Dateien Hypertrm.exe, hypertrm.dll und hticons.dll) nach Windows XP kopiert habe. Inzwischen arbeite ich mit Windows 7 und auch hier funktioniert das Hyperterminal von Windows 98 immer noch am besten. Das eigentlich recht gute TeraTerm arbeitet hier leider nicht perfekt. Einige Probleme konnten mit dem Update der Software des EPROM-Programmiergerätes auf die Version 1.06 gelöst werden. Für eine fehlerfreie Kommunikation ist es außerdem erforderlich, in den Einstellungen des seriellen Ports eine Verzögerung von 10ms/Zeile einzustellen (ausprobieren).
Beim Ein- und Ausschalten des Programmiergerätes sollte zur Sicherheit kein EPROM im Sockel stecken, da hier undefinierte Zustände auftreten können. Ansonsten kann man bei ausgeschalteter roter LED jederzeit das EPROM stecken oder entfernen. In diesem Fall ist der Sockel spannungsfrei geschaltet, d.h. Vcc und Vpp sind abgeschaltet, alle Adress- und Steuerleitungen liegen auf Low-Pegel und die Datenleitungen sind auf Eingang (hochohmig) geschaltet.
Noch etwas zur roten LED: Diese zeigt verschiedene Zustände an. Zunächst leuchtet sie beim Einschalten für etwa 1s auf und verlischt dann wieder. Beim normalen Betrieb des Programmiergerätes zeigt sie durch Dauerleuchten einen Zugriff auf das EPROM an. Beim Programmieren oder Vergleichen kann die LED etwas flackern, auch das ist vollkommen normal. Nicht normal ist jedoch, wenn die LED im 5Hz-Rhythmus blinkt. Dann ist nämlich ein Fehler beim Senden aufgetreten. Normalerweise versucht das Gerät, alle auftretenden Fehler zwecks Bildschirmanzeige an den PC zu senden. Wenn aber kein Senden möglich ist, dann wird durch Blinken der LED auf diesen Fehler hingewiesen. Ein Sendefehler tritt auf, wenn die Handshakeleitung RTS vom angeschlossenen Computer länger als 1.1s deaktiviert ist. Das passiert aber erfahrungsgemäß nur, wenn man das Programmiergerät einschaltet ohne vorher das Terminalprogramm zu starten. Bei laufender Datenübertragung dürfte dieser Fehler normalerweise nicht auftreten.
Ich habe mal im praktischen Betrieb einige Zeiten gemessen, an denen man sich orientieren kann:
EPROM-Typ | Programmieren | Lesen | Programmieren | Lesen |
27C256 | 0:09 min | 0:09 min | 1:08 min | 0:09 min |
29F010 | 0:32 min | 0:33 min | 4:40 min | 0:33 min |
29F040 | 2:11 min | 2:09 min | 18:41 min | 2:09 min |
Diese Messungen liegen allerdings schon einige Zeit zurück und wurden unter Windows XP durchgeführt. Unter Windows 7 sind die Programmierzeiten bei Verwendung eines USB-Interfaces wesentlich kürzer.
how to bugfix: https://diysynth.wiki.dsl-man.de/wiki/spaces/SKM/pages/336101402/How+to+bugfix
non commercial pages, all infos are best can do without warranty, without liability.