English version below

Stand 3.1.2003

Wozu ist der c't-Flasher gut?
Siehe Artikel.

Wo bekomme ich den c't-Flasher?
Eine doppelseitige, durchkontaktierte Leerplatine samt Software bietet eMedia an. Die darüber hinaus nötigen Bauteile gibts im Elektronikfachhandel, bundesweite Versender sind zum Beispiel Reichelt, Segor, Simons, Kessler oder Conrad. Einen teilbestückten Bausatz, bei dem man nur noch die ICs in ihre Fassungen drücken muss, offeriert Meyberg & Richter.

Wo gibt's das Platinenlayout zum Herunterladen?
Zumindest derzeit nirgends. Erstens bietet eMedia für wenig Geld eine professionell gefertigte Platine an, zweitens möchte ich mir Nachfragen bei nicht funktionierendem Flasher wegen schlechter Selbstätzung ersparen.

Woher bekomme ich einen 32poligen Textool-Sockel?
Zwischendurch hatte Reichelt ihn aus dem Programm genommen, doch nun gibt es ihn wieder dort, wie auch bei Elpro (danke für den Tipp, Andreas und Jens). Auch bei Kessler und Simons steht er im 2000er-Katalog (38 DM respektive 35 DM). Eine billigere Alternative zum Textool-Sockel stellt ein Nullkraftsockel dar, der ebenfalls bei Kessler und Simons verzeichnet ist (11 DM bei beiden).

Wozu dienen die im Artikel nicht erwähnten DIP-Schalter A7, A4 oder A2?
Ebenfalls zum Einstellen der I/O-Adresse in binärer Form: A7 auf 'on' erhöht die Adresse um 80h, A4 um 10h, und so weiter.

Woher weiß ich, welche Adressen ich am DIP-Schalter und J1-3 einstellen soll?
Schauen Sie beispielsweise im Windows-Gerätemanager nach (Doppelklick auf Computer-Symbol ganz oben), welche E/A-Adressen (I/O) zwischen 200h und 3FFh belegt sind und stellen Sie dann eine ein (x bis x+3), die nicht belegt ist. :-) Entsprechend verfahren Sie mit dem per J1-3 zu setzenden Hauptspeicher-Adressblock. Meiner Erfahrung nach typische Werte sind 360h und D0000h, aber in Ihrem Rechner können die genauso gut schon in Gebrauch sein.

Wie kann ich eine Binär-Datei aus einem Hex-File erzeugen?
Mittlerweile ist das im Artikel erwähnte Konvertierungsprogramm FCONV.EXE nur noch schwer zu finden (in zip-Dateien beispielsweise hier oder hier), doch hat Michael Van Lambaart etwas ähnliches aufgetan: In der Software zu JEDMicros Programmer stecken die DOS-Tools FICON.EXE und SREC2BIN.EXE. Mit ersterem kann man Intel-Hex-Dateien in Motorola-Hex-Files wandeln, das zweite wandelt schließlich ein Motorola-Hex-File in eine Binärdatei um.Wer's komfortabler haben möchte: Amrels Software zu deren Spectrum-48-Programmer läuft auch ohne die Hardware freundlicherweise unter Windows im Demo-Modus; etwaige Fehlermeldungen, dass das Gerät nicht angeschlossen ist, kann man schlicht wegklicken. Indem man einen passenden Bausteintyp wählt, setzt man die Puffergröße und kann anschließend Hex- und Binärdateien laden, formatwandeln und abspeichern. Da der Programmer anscheinend nicht mehr vertrieben wird, gilt: Get it while you can! ;-)

Kann ich mit dem Flasher auch einen Flash 27Cxxx brennen?
Nein. Bei 27Cxxx handelt es sich um EPROMs ohne Quarzglasfenster, die nicht löschbar sind. Außerdem ist der c't-Flasher nur für Flash- (Typennummer beginnt mit 29xxx) und EEPROM-Chips (28xxx) ausgelegt; (E)PROMs (27xxx) respektive OTPROMs (One-Time Programmable, ebenfalls 27xxx) erfordern andere Programmieralgorithmen und Spannungen. Immerhin kann der Flasher diese Bausteine auslesen, fragt dabei aber nach der auszulesenden Kapazität, da sie keine automatische Identifizierung beherrschen.Wahrscheinlich kann ein Dienstleister die 27Cxxx-Typen programmieren.

Ich möchte einen i28F002 neu beschreiben. Der passt aber nicht in den Sockel!
Kann er auch gar nicht, da der Flasher ausschließlich für 32polige Speicher-ICs ausgelegt ist. Ob es einmal eine vielseitigere Platine, die auch 28- und 40polige Bausteine bedient, geben wird, ist noch offen. Eventuell kann einer der in unserer FAQ gelisteten Dienstleister weiterhelfen.

Ich habe hier einen Baustein im PLCC-Gehäuse vorliegen. Wie programmiert man den?
Solange der Chip im PLCC32-Gehäuse steckt, ist das kein Problem. Beispielsweise Segor Electronic (46 DM fertig) oder das Computer & Service Center Ilmenau (19 DM Leerplatine, 29 DM fertig) bieten einen DIL32-auf-PLCC-Adapter an, den man in die Flasher-Fassung einsetzt. In diesen Adapter wiederum steckt man das zu programmierende IC.

Ich habe auf meinem Mainboard einen Baustein des Typs xyz gefunden. Geht der auch im Flasher?
Bevor Sie mir eine EMail schreiben, rufen Sie bitte das aktuelle Programm ohne Kommandozeilenparameter auf, neben einem kurzen Hilfetext zeigt es alle derzeit unterstützten Typen an. Falls Ihrer dann nicht dabei ist, können Sie mir gern eine EMail mit der genauen Bezeichnung schicken, aber ziehen Sie vorher einen eventuell vorhandenen Aufkleber vom Baustein ab, denn die Versionscodes der Mainboard- respektive BIOS-Hersteller sagen gar nichts aus: Nur was direkt auf das Chipgehäuse gedruckt ist, zählt. Bitte schicken Sie mir auch nicht gleich das Datenblatt mit, das ist zwar lieb gemeint, aber die URL reicht in der Regel völlig aus, damit ich an die Daten komme (warum ich übrigens keine HTML-Mail und Word-Dokumente mag, erklärt Dan Tobias nebst weiteren nützlichen Dingen zum Thema EMail). Danach kann ich dann sagen, ob, und wenn ja, wann mit der Unterstützung des Bausteins zu rechnen ist.

Kann der Flasher auch Intels Firmware Hub (i82802) und ähnliche Chips bearbeiten?
Nein. Der i82802 und seine Nachbauten (z. B. 49LF002/4) sind selbst in ihrem parallelen Programmiermodus nicht JEDEC-kompatibel. Auch ein Zwischenstecker für den Sockel ändert daran nichts. Gleiches gilt für LPC-Flash-Bausteine (Low Pin Count, z. B. 49LF020/040) und 3,3-Volt-Typen. Letztere lassen sich eventuell beschreiben, wenn sie 5-V-tolerant sind.

Wo finde ich Daten zu den Flash-Bausteinen?
Üblicherweise auf den Webseiten der Hersteller. Eine umfangreiche Linksammlung enthalten meine Bookmarks unter Elektronik > Firmen > H(albleiterh)ersteller. Unbekannte Hersteller kann man meist anhand des Logos identifizieren; weitere Hilfestellung gibt beispielsweise Jaap van Ganswijks Chip Directory.

ctflash.exe will den Chip nicht automatisch erkennen. Was kann ich tun?
Eventuell benötigt der Baustein +12V zur automatischen Identifikation: Stecken Sie probehalber J5 vorübergehend auf +12V um. Wenn es auch damit noch nicht klappt, setzen Sie zusätzlich J4 auf +12V. Nach erfolgter Programmierung stecken Sie die Jumper auf ihre ursprüngliche Position zurück. Alternativ kann man ctflash.exe mit dem Kommandozeilenparameter /m aufrufen, dies erzwingt eine manuelle Auswahl des Bausteintyps.

ctflash.exe meldet 'Schreiben fehlgeschlagen.' Warum?
Eventuell haben Sie ctflash.exe nicht unter "nacktem" DOS gestartet. Weil es direkten Zugriff auf Speicher und Ports haben muss, dürfen keine Speicherverwalter wie HIMEM.SYS oder EMM386.EXE geladen sein. Außerdem gibt es Probleme, wenn eine ältere Trident-ISA-VGA-Karte im System steckt, die den ISA-Bus generell auf 16-Bit-Betrieb zwingt.

Eine weitere Möglichkeit ist, dass der zu programmierende Baustein altert: Flash- und EEPROM-Speicherzellen vertragen nur eine begrenzte Anzahl von Schreibzyklen, danach beginnen die Zellen unzuverlässig zu arbeiten. Beim Programmieren beobachtet die interne State Machine des Chips dieses und gibt eine entsprechende Fehlermeldung aus (z. B. Cycle Limit exceeded), wenn eine Zelle nicht sicher beschrieben werden konnte. In dem Fall kann man das Beschreiben noch einige Male neu versuchen, bevor man den Baustein entsorgt.

Mit 1-MBit-Bausteinen funktioniert der Flasher ausgezeichnet. Doch bei 2- und 4-MBit-Typen bekomme ich Verify-Fehler. Woran liegts?
Haben Sie die Jumper J5 und J4 passend gesetzt? 2-MBit-Bausteine brauchen die Adressleitung A17 (J4, vgl. Schaltplan), und 4-MBit-Chips zusätzlich A18 (J5).

Kann der Flasher wirklich nur 1- bis 4-MBit-Bausteine programmieren?
Im Prinzip ja, in der Praxis nein. Solange Flash- oder EEPROM-Chips kleinerer Kapazität im 32poligen Gehäuse mit JEDEC-Pinout vorliegen, kann der Flasher diese auch beschreiben. Allerdings baue ich solche Typen nur auf massive Nachfrage in die Programmiersoftware ein, da heutzutage ausschließlich Chips ab ein MBit aufwärts auf Mainboards stecken.

Ich möchte die Programmiersoftware auf Linux portieren. Wo ist der Quelltext zur Programmiersoftware?
Der steht zumindest derzeit nicht im Web, denn ich möchte "Wildwuchs" und daraus resultierende Nachfragen, warum dieser oder jener Baustein unter DOS wohl, aber unter Linux nicht funktioniert, vermeiden. Außerdem muss man bei seitenweise zu beschreibenden Bausteinen ein striktes Timing einhalten, damit die Pages vollständig in der Speichermatrix landen, was unter Linux zwar nicht unmöglich, aber auch nicht trivial ist. Allerdings ist jüngst ein Projekt auf Sourceforge gestartet, das noch Mitstreiter sucht und den Flasher als Device einbindet.

Kann man den Flasher mit wenig Aufwand so umbauen, dass er am Druckerport funktioniert?
Nein, erstens nicht mit "wenig Aufwand", und zweitens ist der Druckerport im Allgemeinen zu langsam, da das Programmieren mancher Bausteine ein striktes Timing verlangt.

Ich habe alles beachtet, aber trotzdem funktioniert es nicht!
Wenn's wie verhext scheint, liegt der Teufel manchmal im Detail. Hier einige Hinweise, was noch schiefgehen kann: Der gekaufte DIP-Schalter besteht nicht wie laut Schaltplan gefordert aus einzelnen Switches mit jeweils zwei gegenüberliegende Kontakten (insgesamt 16 Pins), sondern hat einen oder zwei Common-Pins, die an einer unpassenden Stelle liegen. Bei der Einstellung der I/O-Adresse muss man nach dem Platinenaufdruck, nicht aber nach dem DIP-Schalteraufdruck vorgehen. Die eingestellte I/O- oder Speicheradresse kollidiert mit anderer vorhandener Hardware. Auch kalte Lötstellen oder vergessene Bauteile sind schon vorgekommen.

Noch 'ne Frage?
EMail schicken oder bei Jens Egger nachschlagen.



English section

January 3rd, 2003.

What's the Jumpstarter (c't-Flasher)?
A build-it-yourself flash and EEPROM writer, see article.

What is c't anyway?
Germany's leading computer magazine, of course. ;-) See our English pages for selected translations and further information.

Where do I get the c't-Flasher?
eMedia sells a double-sided empty PCB with software, onto which you'll have to solder further components yourself. The German company Meyberg & Richter offers a preassembled kit where you only have to insert the ICs into their sockets.

Is the PCB layout available for download?
Not at this time. Firstly eMedia sells a professionally made PCB for small money, secondly I want to spare myself inquiries because of non-functional Jumpstarters due to faulty home-made PCBs.

What are the not mentioned DIP switches A7, A4 or A2 good for?
Likewise to set the I/O address in a binary way: A7 to 'on' increases the address by 80h, A4 by 10h, and so on.

How do I know which addresses to set on the DIP switch and J1-3?
Take a peek into Windows' device manager, for instance. Double-click on the Computer icon and look for used I/O addresses between 200h and 3FFh. On the DIP switch set one (x to x+3) which is not occupied. :-) Do likewise for the memory block with J1-3. Good addresses in my experience are 360h and D8000h, but these needn't necessarily be free in your machine.

How can I convert a hex file into a binary file?
Unfortunately the mentioned conversion tool FCONV.EXE is hard to find nowadays (hidden in zip files here or here), but Michael Van Lambaart dug up something similar: The software for JEDMicros Programmer contains the DOS programs FICON.EXE and SREC2BIN.EXE. While the first translates Intel hex into Motorola hex files, the second converts Motorola hex into binary files. If you like it more comfortable: Amrels software for their Spectrum 48 Programmer runs nicely even without the hardware under Windows in demo mode; just click away any messages saying that it can't find the programmer. By choosing a chip type you select the appropriate buffer size and may furtheron load, convert and save hex and binary files. Since Amrel doesn't seem to distribute the programmer itself anymore: Get it while you can! ;-)

Will the Jumpstarter also burn 27Cxxx chips?
No. 27Cxxx types are EPROMs without quartz window, those are not erasable. Besides, the Jumpstarter has been designed only for flash chips (type code starts with 29xxx) and EEPROMs (28xxx); (E)PROMs (27xxx) respectively OTPROMs (One-Time Programmable, also 27xxx) require different programming algorithms and voltages. At least the Jumpstarter can read those, but will ask for the capacity to be read, since those chips don't support automatic identification.

I want to update an i28F002, but it won't fit into the socket!
Naturally so, since the Jumpstarter will only handle memory chips with 32 pins. At this time I can't say if there'll eventually be a more versatile Jumpstarter that takes on 28 and 40 pin ICs.

I've got a PLCC chip lying around. How do I program that?
If it's a 32 pin PLCC that's no great problem. Some companies offer simple adapters for this purpose, unfortunately I don't know of any American, British or Australian firms doing so.

My mainboard sports a chip of the designation xyz. Does the Jumpstarter handle that one?
Before you write EMail, please start the most recent program version without command line parameters. It will show a short help screen and the list of supported devices. If your chip isn't listed there, please send me an EMail with the exact designation, but peel off any stickers first since the version codes of the mainboard or BIOS makers don't tell anything. Only what's printed onto the chip itself counts. And please don't attach the data sheet, which is surely meant kindly; an URL does suffice to get the data (Dan Tobias not only explains why I don't like HTML mail or Word but also gives other useful hints regarding EMail). Only then I'm able to tell if and when future version of ctflash.exe will support your chip type.

Can it program Intels Firmware Hub (i82802) and similar chips?
No. The i82802 and its copies (for example 49LF002/4) are not JEDEC compatible, not even in their parallel programming mode. Also an intermediate adapter plug doesn't help. The same goes for LPC flash chips (Low Pin Count, 49LF020/040 and the like) as well as 3.3 volt types. Those might be writeable, if they are 5 volt tolerant.

Where do I find data about flash chips?
Usually on the web pages of their respective manufacturers. My link collection features a huge list of semiconductor makers under Elektronik > Firmen > H(albleiterh)ersteller. Unknown manufacturers may be identified by their logo, and Jaap van Ganswijks Chip Directory gives further hints for identification.

ctflash.exe won't recognize the chip automatically. What do I do now?
Probably the device to be programmed requires +12V to be present for automatic identification: Set J5 to the +12V position momentarily. If that doesn't work, also switch J4 to +12V. After programming the chip put those jumpers back to their original position. Also you may try to start ctflash.exe with the optional command line parameter /m, it forces manual selection of the chip type.

ctflash.exe announces 'Write failure'. Why?
Maybe you didn't start ctflash.exe under plain and pure DOS. Because it needs direct access to memory as well as I/O ports, memory managers like HIMEM.SYS or EMM386.EXE mustn't be loaded. Such trouble also may arise if an old Trident ISA VGA board is present, which forces the ISA bus to 16 bit mode permanently.

Another possibility is that the chip to be programmed is aging: Flash and EEPROM memory cells endure only a limited number of write cycles. After these their performance begins to degrade. While writing data the chip's internal state machine watches this and tells accordingly (e. g. Cycle Limit exceeded), if a cell wasn't written properly. You may try to program the chip a few more times before chucking it in the bin.

The Jumpstarter works excellently with 1 Mbit chips. But 2 and 4 Mbit chips give verify errors. What's happening?
Did you set the jumpers J5 and J4 properly? 2 Mbit chips need the address line A17 (J4, see schematic), and 4 Mbit chips also A18 (J5).

Does the Jumpstarter really work with one to four Mbit chips only?
In principle yes, practically not. As long as flash or EEPROM chips of smaller capacity come along in 32 pin housings with JEDEC pinout, the Jumpstarter hardware is able to write them. But then I implement such types into ctflash.exe only after repeated request, since the majority of flash chips on mainboards comes with one MBit at least.

I want to port the programming software to Linux. Where's the source?
At this time it's not available, because I want to avoid version digression and resulting inquiries of why this or that chip will work under DOS, but not Linux. Also the programming software has to obey a strict timing with those chips that want their data written page-wise, which isn't impossible to achieve under Linux, but on the other hand also not quite trivial. Nevertheless a project started on Sourceforge recently, which is looking for participants and controls the Jumpstarter via a linux device.

Is it possible to modify the Jumpstarter so that it works on the printer port?
No, firstly this would incur massive changes. Secondly the average printer port is just too slow for this, since some flash chips require a strict timing when being written to.

I've observed everything, nevertheless the thing won't work!
If it appears like bewitched, the devil's in the details. Some hints of what may go wrong: The DIP switch you've bought doesn't have eight single switches with two adjacent contacts each (16 pins in total) like the schematic claims, but carries one or two common pins that are placed at a non-matching position. When setting the I/O address observe the PCB imprint, not that on the DIP switch. The selected I/O or memory address collides with that of other present hardware. Even bad solder joints or missed components did happen.

Further questions?
EMail me.