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.
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.
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.