KISSEPROM
(ovvero Keep It Simple
and Strong):
Programmatore per Eprom
27Cxx
(ed altre)
e breve corso sulle eprom
Le
Eprom
Intro Le Eprom Hardware Il Software
Prima di parlare delle Eprom facciamo una breve panoramica sulle varie famiglie di memorie:
ROM :
Read Only Memory;
si tratta di memorie programmate al momento stesso della costruzione del chip e
che non possono essere piu' programmate in seguito (solo lette).
PROM :
Programmable Read Only Memory
a differenza delle ROM possono essere programmate, ma una sola volta; sono molto
piu' fragili.
EPROM :
Erasable
Programmable Read Only Memory;
possono essere programmate piu' volte (vedi in seguito);
prima pero' e' necessario cancellarle facendo uso di una speciale lampada a
raggi ultra-violetti.
EEPROM :
Elettrically
Erasable Programmable Read Only Memory
sono simili alle eprom ma possono essere cancellate elettricamente, senza
ricorrere a speciali lampade UV.
LE EPROM
Possiamo immaginare una eprom costituita da una serie di celle all'interno delle
quali sono memorizzate le informazioni in maniera sequenziale:
Ogni
cella contiene quindi un Byte (1 Byte=8Bit; per esempio i bit 10010011 formano
un Byte);
ogni cella si trova in una certa posizione individuata da un indirizzo; cosi' la
prima cella si trova all'indirizzo 1, la seconda cella all'indirizzo 2 e cosi'
di seguito (in realta' si comincia da 0.1.2..);
per poter accedere ad una cella bisogna specificarne l'indirizzo; se
osserviamo il datasheet di una eprom notiamo che ci sono 8
piedini contrassegnati Q0..Q7: e' proprio da qui che andremo a leggere gli otto
bit (cioe' un Byte) memorizzati in una determinata cella;
vediamo anche che ci sono dei piedini contrassegnati A0..A14: da questi si
sceglie l'indirizzo della cella da leggere (o scrivere);
la sequenza semplificata e' dunque questa:
1) "scriviamo" sulle linee
degli indirizzi (A0..A14) l'indirizzo a cui vogliamo accedere
2) e la eprom
automaticamente ci fornira' sui piedini D0..D7 il byte;
per specificare l'indirizzo bisogna solo scrivere lo stesso in binario sulle
linee A0..A14 nel seguente modo:
A14 A13
A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0
0 0 0 0 0
0 0 0 0 0
0 0
per specificare l'indirizzo 0 (Zero),
A14 A13
A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0
0 0 0 0 0
0 0 0 0 0
0 1
per specificare l'indirizzo 1,
A14 A13
A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0
0 0 0 0 0
0 0 0 0 1
0 0
per specificare l'indirizzo 4 e cosi di seguito;
ad ogni
zero corrisponde un segnale di 0v mentre ad ogni 1 un segnale di circa 5V;
dal momento che siamo in argomento di indirizzi specifichiamo una cosa:
una 27C32 ha una capacita' di 32k bit che corrispondono a 32/8 Byte cioe' 4K
byte; bisogna fare attenzione che 1K byte non corrisponde a 1000 byte ma a 1024
byte quindi una 27C32 avra' 1024x4=4096 locazioni di memoria (byte) (quindi
indirizzi);
una 27C64 ha una capacita' di 8K byte quindi 8192 indirizzi;
27C128 > 16Kbyte > 16384 indirizzi
27C256 > 32Kbyte > 32768 indirizzi
27C512 > 64KByte > 65536 indirizzi e cosi' via
alcuni piedini (detti "di controllo") servono a controllare il chip:
E o CE sta' per Chip Enable; possiamo immaginarlo come un interruttore generale: quando applichiamo una tensione di 0v la eprom e' "accesa", quando ci mettiamo +5v la eprom e "spenta"
G o OE sta' per Output Enable; con 0v abilitiamo le uscite con +5v le disabilitiamo;
Vpp e' il piedino su cui applicare la tensione di programmazione (12,5 - 21 - 25v a seconda della eprom);
a seconda della eprom si puo' trovare anche il piedino PGM che sta' per program (0v abilita la programmazione, +5v la disabilita).
Riassumendo le operazioni da compiere per leggere da una eprom sono:
abilitiamo il chip (CE a 0v)
abilitiamo le uscite (OE a 0v)
specifichiamo l'indirizzo da cui leggere (linee A0..A14)
dopo un breve periodo (necessario a stabilizzare i segnali) leggiamo il byte sui piedini Q0..Q7
specifichiamo un nuovo indirizzo..
Per scrivere invece :
abilitiamo il chip (CE a 0v);
disabilitiamo le uscite (OE a +5v);
applichiamo la tensione di programmazione su Vpp;
spesso si alza la tensione di alimentazione da +5v a +6,25 (come per "scrivere-calcare" meglio il dato)
specifichiamo l'indirizzo in cui scrivere (linee A0..A14)
mettiamo il byte da scrivere sui pin Q0..Q7
quando i segnali sono stabili diamo un impulso negativo su OE (cioe' lo portiamo per circa 50ms a 0v per poi riportarlo a +5v) ed il gioco e' fatto;
specifichiamo un nuovo indirizzo e ripetiamo il ciclo;
va detto
che in alcune eprom e' presente il pin PGM; in questi casi si usa lasciare OE a
+5v e dare l'impulso di programmazione tramite PGM; ma si possono seguire anche
altre vie (per esempio lasciare OE a +5V, PGM a 0 e dare l'impulso tramite
VPP);
in ogni caso sui datasheet dei chip e' sempre ben chiarita la procedura per
leggere/scrivere/verificare ecc.
Dimeticavamo i pin
Vcc che sarebbe la tensione di alimentazione (+5v) e
Vss che sarebbe il negativo (0v)
Solo due
parole sulla cancellazione (gia' descritta nel mio sito a riguardo del
cancellatore di eprom a raggi UV):
per
poter programmare una eprom questa deve essere completamente cancellata, ovvero
tutti i suoi bit devono avere valore "1" (tutto "FF");
infatti e' solo possibile (programmandola) scrivere degli 0;
l'operazione contraria (scrivere cioe' degli 1) e' possibile solo durante la
fase di cancellazione;
per ottenere questo (cioe' per cancellarla) e' necessario esporla per un certo
periodo di tempo a delle particolari radiazioni ultraviolette, nel caso
particolare si tratta di Raggi Ultravioletti di tipo "C", ovvero con
lunghezza d'onda di circa 253,7 nanometri;
si tratta in pratica di usare un tubo al neon "germicida", usato
spesso negli acquari per eliminare le alghe o dai dentisti, parrucchieri ecc.,
quindi non difficile da reperire;
Sui
diversi datasheet e' sempre consigliata la distanza minima dalla lampada ed il
tempo minimo di esposizione, che dovrebbe essere di circa 2,5 cm dal neon per
15-20minuti per una dose di radiazioni di circa 15 W-sec/cm quadrati;
ovviamente avvicinando la eprom al neon ridurremo il tempo di esposizione e la
cancelleremo prima;
in pratica tutto questo non e' importante, perche' dopo alcune prove
troveremo il valore ottimale;
personalmente mantengo le eprom a 2 cm dal neon esponendola per circa 10 minuti;
Va detto che prolungare di molto l'esposizione ai raggi UV puo' danneggiare in
modo permanente la eprom;
inoltre dopo ogni ciclo di cancellazione diminuisce sensibilmente il tempo di
accesso della eprom;
Prima di cancellare una Eprom e' bene verificare che la finestra superiore sia
ben pulita; in caso contrario pulirla con dell'alcool.
Ora che sappiamo cos'e, come si legge e come si programma una eprom possiamo passare a costruire il programmatore.
73 de iz7ath, Talino Tribuzio