KISSEPROM
(ovvero Keep It Simple
and Strong):
Programmatore per Eprom
27Cxx
(ed altre)
e breve corso sulle eprom
Il
Software
Intro Le Eprom Hardware Il Software
FAI CLICK QUI PER SCARICARE KISSEPROM V1.1
FAI CLICK QUI PER SCARICARE KISSEPROM V1.1
Sebbene in teoria sia possibile adattare il mio programmatore a molti software disponibili, ho voluto scriverne uno per alcuni motivi:
la maggiorparte dei software che ho trovato sono tutti per sistema operativo DOS con una scarsa interfaccia utente che complica un tantino le cose;
alcuni programmatori hanno dei limiti proprio per il software che li
accompagna;
in alcuni casi infatti letture successive della stessa eprom davano risultati
diversi; aumentando invece i tempi di lettura spesso si riesce a leggere bene la
eprom;
tale fenomeno indica una non piu' perfetta affidabilita' della eprom, tuttavia
potrebbe essere importante recuperare il suo contenuto prima di farle il
funerale (HI!);
per questo ho deciso di scrivere un programma con una grande flessibilita'sulle
impostazioni dei tempi di lettura scrittura (I/O
Delay);
infine volevo imparare il Visual Basic, e questa e' stata l'occasione giusta;
Questa e' una descrizione sommaria dei vari Menu':
MENU
FILE:
1) OPEN : permette di aprire file; al momento KissEprom puo' lavorare
direttamente con file puramente binari (*.BIN);
tuttavia e' possibile selezionare anche file in formato HEX Intel; in questo
caso pero' viene automaticamente avviata una procedura di conversione da HEX
> BIN con il risultato che verra' creato un nuovo file avente lo stesso
nome di quello selezionato ma con estensione BIN (oppure BIN1,BIN2 se il
file esiste gia');
in questo caso e' sufficiente aprire il file *.BIN appena creato;
possono verificarsi le seguenti condizioni:
- il file e' delle stesse dimensioni della capacita' della eprom > il
file viene letto e caricato interamente in memoria (condizione normale);
- il file e' piu' piccolo della capacita' dell eprom > il file viene
letto per intero e vengono inseriti degli zero (0) alla fine fino a
riempirlo; un messaggio avvisa di questa situazione che pero' non causa
alcun problema;
- il file e' piu' grande della capacita' della eprom > vengono letti dal
file tanti byte quanti sono quelli contenibili nella eprom; un messaggio
avvisa che il file verra' tagliato (e' possibile che avete sbagliato file o
non avete selezionato una giusta eprom).
2) SAVE AS: permette di salvare su disco i dati appena letti da eprom (o da
file aperto) soltanto in formato binario (ma volendo lo si puo' convertire
in HEX - vedi Menu Utility -);
notare che alcuni programmi non salvano i file *.BIN in formato puramente
binario, ma aggiungono, all'inizio del file, la lunghezza (ed eventualmente
il tipo) dei dati contenuti;
Kisseprom invece non aggiunge alcuna informazione estrena (e dovrebbe essere
la norma).
3) EXIT : Termina KissEprom e ritorna a Windows
MENU
ACTION:
1) READ EPROM: permette di leggere la eprom (del tipo selezionato);
2) WRITE EPROM: permette di scrivere la eprom selezionata;
se e' abilitata l'opzione "verifica che la eprom sia vuota (tutto
"FF") prima di scrivere" allora KissEprom legge la eprom e se
nota qualche carattere diverso da FF da un messaggio di errore e non scrive
nulla; disabilitando questa opzione KissEprom scrivera' indipendentemente
dal contenuto della eprom (questo caso potrebbe essere comodo quando si
vuole ri-scrivere lo stesso file nella eprom);
ad ogni scrittura del byte nella eprom viene fatta una lettura di verifica;
se il risultato concorda con quello appena scritto la scrittura va avanti
altrimenti vene dato un messaggio di errore ("Eprom danneggiata");
3) FILL ALL WITH 00: mette tutto a 0 (zero) il buffer di memoria che
contiene i dati letti/da scrivere nella eprom
MENU
CONFIGURATION
1) SELECT EPROM: permette di selezionara il tipo di eprom (27xx - 27Cxx);
2) OPTION : apre una nuova finestra in cui impostare:
- porta LPT (se si specifica un indirizzo non standard farlo in decimale
> NO in ESADECIMALE)
- abilita o no la verifica prima della scrittura (se tutto FF);
- imposta il tempo di I/O di scrittura e lettura; a tal proposito vanno
fatte delle precisazioni: Visual Basic non permette una gestione diretta
dell'hardware; questo significa che non e' possibile direttamente agire sul
chip del timer del PC per avere un clock preciso; per non complicare le cose
ho usato la funzione API SLEEP di windows per la temporizzazione del
solo impulso di scrittura (normalmente un valore 1 e' sufficiente); per
tutto il resto ho semplicemente ottenuto un ritardo con un ciclo FOR; questo
significa che il ritardo di I/O (a parte la SLEEP) e' dipendente dal PC: sul
mio Pentium 166 un valore di 50-100 e' ottimo, su un nuovo PIII a 1 GHZ
probabilmente bisognera' aumentarlo;
tuttavia la "calibrazione" e' semplicissima: leggere una eprom
piu' volte ed aumentare man mano il I/O DELAY fino a quando la lettura e'
sempre la stessa;
per la scrittura sarebbe opportuno poter misurare la lunghezza dell'impulso,
ma in pratica i valori di default vanno quasi sempre bene.
3) DIAGNOSTIC: funzioni non ancora implementate; l'intenzione e' di offrire
una interfaccia grafica semplice e concisa per la taratura e verifica del
funzionamento del programmatore passo per passo.
MENU
UTILITY
NOTA: non avendo affatto voglia di affrontare argomenti che si
allontanassero dalla programmazione delle eprom vera e propria (ma pur
sempre correlati alla programmazione tipo conversione da diversi formati,
editor esadecimale ecc.), ma soprattutto per questioni di tempo, ho
"inglobato" in KISSEPROM alcuni programmi di terzi disponibili
gratuitamente sulla rete.
1) FILE CONVERSION : permette di richiamare il programma SWAP.EXE che
effettua la conversione da *.BIN a *.HEX e viceversa;
selezionare semplicemente il tipo di conversione da effettuare (Binary File
*.BIN >>>> INTEL IHX8 *.HEX oppure
INTEL IHX8 *.HEX >>>> Binary File *.BIN) dopodiche' selezionare
il file da convertire; il risultato della conversione sara' disponibile
nella stessa directory (e' possibile usare SWAP.EXE anche separatamente).
2) HEX EDITOR permette di richiamare il programma di Editing esadecimale
HEDIT.EXE che aprira' automaticamente il file su cui KISSEPROM sta'
lavorando (bisogna salvarlo su disco prima di lanciare l'editor esadecimale)
3) CRC32 : permette di richiamare il programma CRC32.EXE che e' in pratica
un calcolatore di CRC; KISSEPROM calcola il CheckSum del file, tuttavia un
CRC a 32 bit e' molto piu' accurato; normalmente non viene usato ma in
alcuni casi potrebbe essere utile (es. per verificare l'esatta uguaglianza
tra due file).
MENU
HELP al momento non e' presente alcun HELP (se no una copia di queste pagine
allegate)
NOTE:
Non ho previsto alcuna procedura di installazione di KISSEPROM;
semplicemente creare una directory "C:\KISSEPROM" e copiarvi
all'interno tutti i file presenti del pacchetto .ZIP (anche se dalla versione
1.1 non e' piu' necessario: io uso tutto da floppy per mia comodita').
infine copiare le DLL nella directory di sistema "C:\WINDOWS\SYSTEM "(oppure
nella stessa cartella di KISSEPROM).
il programma per funzionare ha bisogno solo della DLL esterna fornita nel
file.zip;
si da per scontato che le librerie VBRUN6.DLL e MSCOMCTL.OCX siano gia'
installate sul PC; ho notato che in qualche caso non e' cosi' (per esempio
quando appare il messaggio di errore "Component
'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is
missing or invalid") ma
basta fare il download (si trovano facilmente in rete) ed installarle;
KISSEPROM e' il frutto di due settimane di lavoro, quindi e' ben lontano
dall'essere un prodotto "finito e rifinito"; al momento non ho
intenzione di continuare a lavorarci su (quello per cui era nato lo fa, e questo
mi basta) tuttavia non e' da escludere una "riapertura del caso" per
soddisfare nuove esigenze o semplici curiosita' personali.
Ho provato KISSEPROM sui
seguenti miei PC con la porta parallela impostata (da BIOS) in vari modi;
quelli che seguono sono i risultati, ricordo comunque che la LPT andrebbe
impostata come SPP (al massimo EPP).
prove fatte sui miei PC
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
FAI CLICK QUI PER SCARICARE KISSEPROM V1.1
Alcuni Link che riguardano le 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