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