| Start | Gästebuch | Kontakt | Impressum |

08. 09. 2010

ATmega8 Testboard...
DDS Generator...
EVG Steuerung...

Würfel...
Zeitschalter...
Lichtabh. Schalter...
Nostalgie...
Servotester...
Experimentierkoffer...

M-Unit...
M-Unit 2.x...
MICRO...
LCD Display...
DCF Uhr...
Infrarot mit RC5...
UKW PLL...
Videodisplay...
EPROM Programmer...
DCF Modul...
Testboard...
CC1 Programmer...
Temperatur Analog...
Elektronik Poti...
C-Control und USB...
MICRO Würfel...
E/A Port Anpassung...
DA Ausgang...
Inkrementalgeber...

TCP/IP Basic...
Netzwerk 1...
Netzwerk 2...
Terminal...
Ein neuer PC...
Video am PC...
DSL...
WLAN...
VoIP...

Libanon...
Montreal...
Québec...
Ein Tag in den USA...
Stockholm...

Gasometer...
Greifswald...


EPROM PROGRAMMER

Ein Eprom Programmiergerät mit C-Control M-Unit

In meiner Bastelkiste fand ich etliche ungebrauchte und einige programmierte Eproms aus alten C64 Zeiten. Ich hatte es seinerzeit geschafft, C64 Programme auf Eprom zu speichern und mit einer Erweiterungskarte im Expansion Slot zum Laufen zu bringen. Mein C64 ist lange verkauft. Heute werden Eproms nur noch selten verwendet. Ich könnte die Dinger eigentlich wegwerfen. Es siegte aber die Neugier. Ob die Programme nach 12 Jahren noch vorhanden sind? Könnte man die Eproms noch programmieren?
Aus diesen Überlegungen entstand die Idee ein Eprom Programmiergerät zu bauen. Solche Geräte sind recht spezielle Teile. Da die handelsüblichen Geräte Alleskönner sind und in relativ kleinen Stückzahlen hergestellt werden, sind die Preise entsprechend hoch. Ich wollte ein einfaches Gerät, das die Standardtypen lesen und beschreiben kann. Da die M-Unit steckbar ausgelegt ist braucht man sie nur, wenn man wirklich einen Eprom Lesen oder Schreiben möchte. Somit ist der Hardwareaufwand nicht allzu groß. Herausgekommen ist ein Gerät mit folgenden Daten:

Stromversorgung: 220V Netzspannung
Eprom Typen: 2716 - 2732 - 2764 - 27128 - 27256
Verbindung mit PC: COM1 oder COM2 mit Nullmodem Kabel
Steuerung: Windows Programm lauffähig ab W98

!!! Achtung Lebensgefahr !!!
Dieses Gerät arbeitet mit 230V Netzspannung. Diese Schaltung dürfen nur Leute mit entsprechender Ausbildung aufbauen.

Die Hardware habe ich auf zwei einseitige Leiterplatten verteilt. Auf einer Platine 100mmx160mm befinden sich die Stromversorgung, die M-Unit und die COM Schnittstelle. Die Spannungsregler sind auf Standard Kühlkörper geschraubt.

Schaltung Netzteil auf Platine 1

Der Belastungswiderstand wurde nachträglich direkt auf die Platine gelötet. Ohne Belastung entsteht sonst am Eingang von IC2 eine zu hohe Leerlaufspannung.

 

Die Programmierspannung kann bis 25V betragen. Der Wert wird durch DA1 der M-Unit eingestellt. Die Zuschaltung erfolgt durch P16 der M-Unit. Welcher Wert in das DA Register geschrieben werden muss, um eine gewünschte Spannung zu erzeugen, muss man einmalig ausprobieren. Die Werte im C-Control Programm sind nur Richtwerte, da durch die Bauteile Toleranzen entstehen. Ansonsten ist mit dem Einstellregler R2 im Netzteil eine Vpp von 28V einzustellen. Mit dem Relais K5 kann man die Betriebsspannung für den Eprom auf 6V erhöhen. Einige Eprom brauchen das, wenn sie im Schnellverfahren programmiert werden sollen. Ich habe das vorgesehen aber in dieser Software Version nicht realisiert. Die Gründe sind in der Beschreibung der Software nachzulesen.

Auf der zweiten Platine 100mmx80mm befinden sich drei Zwischenspeicher IC (2x Eprom Adressen, 1x Relaisansteuerung), vier Relais um einige Leitungen umzuschalten und die Programmierfassung. Bei dieser Fassung habe ich aus Kostengründen auf einen Textoolsockel verzichtet.

Beide Platinen sind mechanisch mit Kunststoff Abstandsbuchsen verbunden. Elektrisch erfolgt die Verbindung über einfache Litze, die an der oberen Platine fest verlötet ist. Zur unteren Platine gibt es einen Steckverbinder. Diese einfache Lösung ist bei den geringen Taktgeschwindigkeiten der M-Unit möglich. Die Programmierfassung wird auf Steckverbinder gesetzt, damit sie durch das Gehäuse durchragt.

Schaltung und Platinen sind mit dem Leiterplatten Programm EAGLE erstellt. Die Freeware Version lässt eigentlich keine 100mmx160mm große Platine zu. Netzteil und der Rest der Schaltung sind zuerst getrennt erstellt worden. Dabei muss man dann gleich beachten, dass die entsprechenden Leiterzüge später zusammen passen. Ich habe die Platinen so per Hand entworfen, dass man später die Belichtungsfolien zum Belichten der Platine etwas überlappend anordnen kann. Bei einfachen Platinen funktioniert das sehr gut.

Gerät geöffnet

Als Gehäuse benutze ich ein handelsübliches Standard System für das Europa Platinen Format. Die Deckel rasten ein und somit ist das Gehäuse ohne Werkzeug zu öffnen. Innen sind Nuten für die Platinen sowie die Front- und Rückplatte. In der Rückplatte befinden sich der Netzschalter und die Netzleitung.

obere Platine abgeschraubt

In der Frontplatte sind die COM Buchse sowie ein Schalter für den Autostart der M-Unit angeordnet. Der Schalter ist einfach mit Komponentenkleber in die Frontplatte geklebt. Somit ist die M-Unit jederzeit, ohne das Gehäuse zu öffnen, neu zu programmieren. Man darf aber beim Einsetzen der M-Unit nicht vergessen den Autostart Jumper zu entfernen. Mit den Schrauben der COM Buchse wird die Platine im Gehäuse fixiert.

Fertiges Eprom Programmiergerät

Neben dem Programmiersockel ragen oben noch zwei LED zur Statusanzeige aus dem Gehäuse heraus. Die Beschriftung der Frontplatte erfolgt mit einem Tintenstrahl Drucker auf selbstklebende Folie.

Beim Einschalten des Gerätes ist zu beachten, dass ein Eprom erst gesteckt ist, wenn die M-Unit ihr Programm abarbeitet. Sonst können undefinierte Zustände an den Anschlüssen der Fassung entstehen, was für einen Eprom schädlich sein kann.

Die Hardware kann nicht prüfen, ob der entsprechende Eprom gesteckt ist, welcher in der Software ausgewählt wurde. Man muss da schon selbst alles richtig machen.

Die Software besteht aus zwei Teilen:

1. C-Control Basic Programm
2. C# Windows Steuerprogramm

Die Kommunikation erfolgt über die Standard COM1 oder COM2 eines PC. Es ist ein handelsübliches Null Modem Kabel erforderlich. Das C-Control Basic Programm ist weitgehend selbsterklärend. Zugunsten der Übersichtlichkeit habe ich auf Geschwindigkeit und Platzbedarf weniger Wert gelegt. Die M-Unit muss mit der Standard Taktfrequenz arbeiten. Mit Basic dauert das Lesen eines Byte etwa 20ms, das Schreiben eines Byte etwa 60ms. Das ist viel aber für den Hobby Bereich akzeptabel. Der Flaschenhals ist nicht die serielle Schnittstelle. Basic ist eben nicht so schnell. Deshalb habe ich auch bewusst auf den Schnellprogrammier Algorithmus einiger Eprom verzichtet. Will man die Zeiten verkürzen müssten die Lese- und Schreibroutinen in Assembler programmiert werden. Dann lohnt auch die Schnellprogrammierung. Die Hardware ist dafür vorbereitet.

Alle Eprom werden mit einem Programmierimpuls von etwa 40ms beschrieben. Das ist nicht ganz in der Norm (45-55ms) aber im Hobby Bereich zu vertreten.

Das Windows Steuerprogramm ist in der Programmiersprache C# geschrieben. Diese Sprache wird von der MS Programmier Plattform .NET unterstützt. Um das Programm ausführen zu können muss auf dem PC das MS .NET Framework installiert sein. Damit ist das C# Programm ab W98 lauffähig. Für die Entwicklungsumgebung ist das MS .NET SDK erforderlich. Das funktioniert ab WXP. .NET Framework und SDK werden auf der MS Webseite frei zum Download bereitgestellt, finden sich aber auch in Zeitschriften oder Fachbüchern zum Thema .NET. Als Programmierumgebung reicht schon ein einfacher Texteditor aber ich nutze SharpDevelop Beta Version 0.94. Es ist eine freie Entwicklungsumgebung unter anderem für C#. Es sind noch viele Bugs drin aber ich denke, nur mit einem Texteditor währe ich nicht so schnell soweit gekommen. SharpDevelop ist OPEN SOURCE und unterliegt der GNU General Public License. Ein Dankeschön an die Entwickler.

C# Programm

Für die Verbindung C# Programm und Windows API nutze ich die RSCOM.DLL von Burkhard Kainka. Der Autor hat diese DLL auf seiner Hompage für private Nutzung freigegeben. Das Protokoll auf der COM ist sehr einfach. Da nur RX und TX Leitungen von C-Control benutzt werden, muss man die Kontrolle der Schnittstelle über Software realisieren. In diesem Fall wird über die COM immer nur ein Byte ausgetauscht. Es braucht kein Puffer eingerichtet zu werden. Das jeweils sendende Gerät wartet immer, bis es eine Antwort bekommt. Die Kommandos bestehen somit immer nur aus einem Byte. Das Windows Programm sendet zuerst ein Kommando (1Byte) und dann einen Header mit 5 Byte:

1.bis 4. Byte: Eprom Adressen
5. Byte: Wert für Programmierspannung

Jedes Byte muss C-Control bestätigen. Auf der C-Control Seite werden PUT und GET benutzt. Auf der PC Seite ist eine Zeitschleife eingebaut, die ohne Antwort von C-Control nach etwa zwei Sekunden den Vorgang abbricht. Je nach Kommando erfolgt dann der Austausch der eigentlichen Daten zwischen PC und C-Control.

Die vollständige Software mit kommentierten Quelltexten kann als ZIP Datei geladen werden. Die Zip Datei einfach in ein Verzeichnis auspacken. Das Programm EpromV10.exe starten. MS .Net Framework muss vorher installiert sein. In der Hilfe Datei Hilfe.htm im Verzeichnis EPGIF findet man weitere Hinweise.

Zum Löschen der Eproms nutze ich ein handelsübliches UV Eprom Löschgerät. Übrigens sind meine C64 Eproms (Programmiert 1991) noch völlig in Ordnung. Nur einige, noch ältere, 2716 aus DDR Produktion (Programmiert um 1987) haben ihre Daten teilweise verloren. Sie sind aber nach dem Löschen wieder zu verwenden.

M.L. 08/2003

Meine große Liebe hat mich verraten, als ich 13 war. Jetzt liebe ich Jesus. Ich habe alles, was ich brauche.

Download...
Links...
Logbuch...
Über Mich...

Aktualisierung:
06.07.2009

Diese Webseite ist für IE ab Version 6 optimiert.
Copyright 2001 - 2010
webmaster

Webdesign:
MaLo-WEB