KISSEPROM
(Keep It Simple and Strong):
Eprom Programmer for 27Cxx
Family
(and more)
and a short tutorial
about Eprom
Software
Intro Eproms Hardware Software
CLICK HERE TO DOWNLOAD KISSEPROM V1.1
CLICK HERE TO DOWNLOAD KISSEPROM V1.1
In teory it's possible to use my programmer with other free software in the web but i've decided to write my own software for some reasons:
Free software are DOS based, with a very poor users interface;
Some
programmers have problems reading particular eprom due to the software
timing;
sometimes infact reading an eprom twice give different results; making the
reading time higher often resolvs this problem;
this is due to a bad eprom but sometimes it's important to save eprom data
before eprom "goes off";
so I wrote my own KISSEPROM software trying to give it big flexibility on
the I/O timing;
it was the right time to learn Visual Basic programming;
Follows a short description of various Menu':
MENU
FILE:
1) OPEN : let you open a file; at moment KissEprom can handle only "true"
binary file (*.BIN), but it's possible to select also Intel HEX; in this
case the *.HEX file will automatically be converted in *.BIN and saved in
the same directory as filename.BIN (or BIN1,BIN2 if the file already exist);
just open this new file with the OPEN Menu;
You can have following case:
- the file is of the same dimension of the eprom size > the file will be
read and loaded in memory as is (standard case);
- the file is smaller than eprom size > the file will be read as is and
KissEprom will fill the end with zero (0); a message will inform you about
that (this is not a problem);
- the file is bigger than eprom size > KissEprom will read as byte as the
eprom size; a message will inform you that the file will be cutted (it is
possible you've not selected the right file or eprom type).
2) SAVE AS: let you save on disk the read data in "pure" binary .BIN
format (but you can always save it as Intel .HEX file using UTILITY Menu');
note that some software uses to save a "data-Type indicator" at
beginning of file and then the Data;
this is not good when handling file with different software.
3) EXIT : Exit KissEprom and return to Windows
MENU
ACTION:
1) READ EPROM: Let you read a selected eprom;
2) WRITE EPROM: Let you write on the selected eprom;
if the "check eprom is empty (ALL FF) before writing" is enabled KissEprom
will at first read the eprom verifyng all is FF and then will write eprom;
if some data is different from "FF" a message will inform you the
eprom is not empty; in this case KissEprom will not write anything to the
eprom;
after a byte is written in the eprom, it's read back and if the results does
not match with the written byte a message of "Bad Eprom" will
inform you about that;
3) FILL ALL WITH 00: fill the memory buffer with a 0 (zero);
MENU
CONFIGURATION
1) SELECT EPROM: Let you select the eprom type(27xx - 27Cxx);
2) OPTION : Open a new windows where :
- Select the LPT port (if a no-standard port is used, use Decimal value
> NO HEX)
- Enable or disable the "ALL FF VERIFY" before writing;
- Select the I/O Delay time (Note that Visual Basic does not allow a
direct control of the PC's chip timer so it's not possible to have a precise
clock time; I've use the Windows API SLEEP function just for the programming
pulse (a value of 1 will be enough); for other timing i've used a simple FOR
cycle; that means I/O delay is machine depended: on my Pentium 166 a value
of 50-100 is good, may be on a new 1 GHZ PIII will be necessary a
longer time;
The API SLEEP time for Programming Pulse should be machine independend.
By the way the I/O Delay tuning is quite simple: read the same eprom more
time and if you have different results increase the I/O delay time until
KissEprom read the same;
for the writing delay tuning wil be better use a frequency meter, but the
defaul value will be good (1).
3) DIAGNOSTIC: nothing for now; the idea is to offer a graphical inteface to
help tuning and building the programmer step by step.
MENU
UTILITY
NOTE: I've used free external software found on the web to handle some
utilities.
1) FILE CONVERSION : call SWAP.EXE to convert a file;
select what conversion you want (Binary File
*.BIN >>>> INTEL IHX8 *.HEX or INTEL IHX8 *.HEX >>>> Binary File
*.BIN) then select the file to convert; a new file with new extension
will be created in the same directory.
2) HEX EDITOR : call the
HEDIT.EXE Hex editor wich will work on the KissEprom opened file (so save
your file before calling HEDIT.EXE)
3) CRC32 : call CRC32.EXE wich is a 32 bit CRC calculator; KISSEPROM uses a
simple CheckSum but a 32 bit CRC is much better; usually you don't need it
(except when you want absolutly be sure two file are identical).
MENU
HELP : No on-line help available at moment (except those pages included in
the zip file)
NOTE:
there's no installation software for KissEprom;
simply make a directory "C:\KISSEPROM" and copy there all the file in
the .ZIP archive (from version 1.1 that's no more necessary, for e.g. I
run kisseprom from a floppy);
then copy the DLL in the system directory "C:\WINDOWS\SYSTEM" (or keep
it in the same directory of KISSEPROM).
KissEprom needs only the external DLL in the zip archive;
by the way I found in some PC there 're missing VBRUN6.DLL and
MSCOMCTL.OCX (for example, when the error "Component 'MSCOMCTL.OCX' or one
of its dependencies not correctly registered: a file is missing or invalid"
occurs); in this case simply download the DLL or the component (easy to find on
the web) and install it;
I wrote KISSEPROM in two week, so it's not a "finished" work, but it
does what it was born for and I think that's enough.
I've tested KISSEPROM on
4 my PC with various LPT port setting and these are results;
anyway remember to set your LPT Port (BIOS Setting) as SPP (or EPP).
TEST MADE
Pentium 166Mhz + WIN98
SPP=OK
EPP=OK
ECP=OK
ECP+EPP=OK
P150+WIN98
SPP=OK
EPP=OK
ECP=OK
ECP+EPP=OK
AMD K6-2@400Mhz + WIN ME
(SPP) Normal=NO
EPP=OK
ECP=NO (all 04)
ECP+EPP=NO (all 01)
AMD K6-2@400Mhz + WIN98
SPP=OK
EPP=OK
ECP=NO (all 04 o FF)
ECP+EPP=OK
CLICK HERE TO DOWNLOAD KISSEPROM V1.1
Some useful link about eprom:
http://ece-www.colorado.edu/~mcclurel/amprepr.pdf
http://se-ed.net/mpu51/eprom/eprom.html
http://www.mauroh.8m.com/willem/willem.htm
http://www.zws.com/products/epromr2/index.html
http://home.quicknet.com.au/andrewm/eprom1/
http://digilander.iol.it/barbadoro/PrgEprom/prg256.htm
http://fastnet.it/utenti/ficara/iz8idx.htm
http://harry.pmp3.net/eprom/eprom-00.htm
http://web.tiscali.it/FlavioFre/epromprg.htm
http://batronix.com/electronic/circuits/eeprommer.shtml
http://www.howstuffworks.com/rom.htm
http://www.netcentral.co.uk/satcure/design/eprom.htm
http://students.silab.dsi.unimi.it/~fp501634/Prog2/sito-www/eprom.html
http://www.infomedica.it/motorcycles/main_pages/tecnica/EPROM/DEFAULT.HTM
73 de iz7ath, Talino Tribuzio