KISSEPROM
(ovvero Keep It Simple
and Strong):
Programmatore per Eprom
27Cxx
(ed altre)
e breve corso sulle eprom
Il
Programmatore
(Scheda Base ed Eprom)
Intro Le Eprom Hardware Il Software
Come lo
stesso nome dice (KISS significa "Keep It Simple and Strong" cioe
"'fai una cosa semplice ma robusta"),
la filosofia di base del programmatore era ottenere un qualcosa di semplice,
economico, modulare e facilmente adattabile a diversi impieghi;
da questo punto di vista credo di aver fatto centro....ma sara' il tempo a darmi
ragione;
Il programmatore si compone sostanzialmente di due moduli:
Modulo Programmatore; (questa pagina)
Il modulo Programmatore vero e proprio (costituito a sua volta da una scheda Base ed una scheda Eprom) (NOTA: non fatevi spaventare da tutte queste schede: una ha pochissimi componenti e l'altra nessuno!);
va collegato alla presa parallela del PC ed usa lo standard PS/2 (ovvero
porta bidirezionale) per leggere e scrivere;
da prove effettuate funziona con qualsiasi configurazione della porta
stampante (SPP - EPP - ECP - ECP +EPP); potrebbe non funzionare con vecchi
386 che dispongono di vecchie porte parallele non bidirezionali ma non e' un problema, in quanto il software e' scritto in Visual Basic
per applicazioni Windows a 32bit.
La scheda Base fa uso di pochi componenti:
due
integrati (CD4040, contatori binari) sono utilizzati per indirizzare la
eprom;
tramite il pin 1 della LPT si invia un impulso negativo sulla linea di Clock
del primo CD4040; ad ogni impulso di clock il CD4040 incrementa gli
indirizzi della eprom;
il contatore avanza ad ogni transiente negativo del clock;
notare che con due CD4040 si possono generare 8388608 indirizzi quindi in
teoria e' possibile leggere e scrivere eprom di oltre 16MB.
il piedino 15 del primo CD4040 e' usato a sua volta come segnale di clock
per il secondo CD4040;
le linee di reset sono collegate al pin 14 della LPT e quindi comandate via
software;
un livello alto sulla linea di reset resetta le uscite del contatore a
zero;
con questi pochi componenti si puo' gia' leggere e scrivere una eprom pero',
per automatizzare le cose, ho aggiunto una manciata di transistor come
interruttori;
TR1 comanda il pin OE della eprom, TR2 attua la commutazione tra 5-6,3V per
l'alimentazione della eprom, TR3 comanda il pin PGM (dove presente);
TR4 e TR5 si occupano della tensione di programmazione.
Questi componenti trovano posto su una piccola scheda da cui partono tutti i
segnali per la eprom ed a cui arrivano le varie tensioni e i segnali di
controllo dal PC.
Tramite due file di contatti a 20 piedini tutti i segnali necessari alla
eprom vengono portati all'esterno della scatola, dove c'e una seconda scheda
(scheda Eprom) su cui trovano posto i vari zoccoli per alloggiare le eprom;
questa non
monta alcun componente perche' ha solo il compito di alloggiare le eprom
durante la programmazione e distribuire i vari segnali alle stesse;
ho adottato questa soluzione per vari motivi
1) trattandosi di un prototipo era piu' comodo, in caso di errori di
progettazione, buttare via la scheda e farne un'altra senza dover toccare la
scheda Base;
2) volendo programmare altri dispositivi, basta costruire una nuova scheda
adatta per il nuovo componente, lasciando il programmatore intatto; in
questo modo basta semplicemente cambiare il "cappello" al
programmatore per usarlo con diversi dispositivi (evitando centinaia di
piste, commutazioni, complicazioni varie);
gli zoccoli usati per alloggiare la eprom sono dei comuni ed economici
zoccoli; col tempo possono dare un po' fastidio; l'ideale sarebbe usare uno
zoccolo ZIF (Zero Inserction Force) ma con quel che costa........
ci sono 4 zoccoli:
1) uno per le 2716 e 2732;
2) uno per le 2764 27128;
3) uno per le 27256 e 27512
4) uno per le 271001, 272001, 274001 ecc.
sul primo, terzo e quarto zoccolo ci sono dei jumper per la selezione
della eprom: ho ritenuto questa la soluzione migliore per evitare
complicazioni circuitali inutili;
il quarto zoccolo e' usato per le 271001 e 272001 senza usare alcun jumper (anche se presente); quelli che si vedono in figura servono solo per una eventuale uso di
274001 e superiori (mai usate, al momento).
Voglio
far notare che il collegamento tra i piedini 2..9 della LPT e i piedini Q0..Q7
della eprom e' diretto;
inizialmente volevo interporre due CD4066 come interruttori ma poi, nella logica
del "KISS", ho rinunciato;
questo significa che bisogna fare attenzione quando si inserisce o si estrae la
eprom; avevo pensato di mettere in serie delle resistenze da qualche Kohm per
limitarne la corrente ma, dopo numerosi (involontari) corto-circuiti ho notato
che la LPT e' sufficientemente protetta (ma soprattutto avevo gia' assemblato il
tutto e non mi andava di riprendere il saldatore > Morale: USATELE);
si consiglia poi di usare delle resistenze da circa 3k3 tra le stesse linee e
massa, per evitare che, quando non vi e' nulla connesso, questi piedini si
trovino in uno stato "non ben definito";
solo che a me il tutto serve per leggere o scrivere le eprom, quindi non vedo
perche' dovrei preoccuparmi di quello che succede quando non vi e' una eprom
connessa.
All'interno della scatola ho ritenuto opportuno inserire due interruttori
per inserire ed escludere la tensione di alimentazione della eprom e la
tensione di programmazione;
si tratta di una maggiore sicurezza durante l'inserimento della eprom e
volendo possono essere eliminati (ma va aggiunta un po' di attenzione in
piu' da parte dell'operatore).
Lo stato del programmatore e' segnalato da tre led situati sul pannello
superiore:
1) Led Verde= programmatore (scheda base) alimentato;
2) Led Arancio= eprom alimentata (+5/6,3V presenti sulla scheda eprom);
3) Led Rosso= tensione di programmazione presente (ma non applicata alla
scheda eprom a meno che non ci sia una programmazione in corso). Se ritenete
piu' comodo che il led sia acceso solo quando la Vpp e' realmente presente sulla
eprom (durante la programmazione) allora basta spostare il led all'uscita del
transistor commutatore Vpp.
Completano il modulo programmatore una presa DB25 femmina per la connessione
alla porta LPT ed una presa Din a 6 poli per la connessione
all'alimentatore;
Note per la costruzione:
non vi sono tarature da effettuare, quindi se tutti i collegamenti sono
stati fatti bene, funzionera' al primo colpo;
finito l'assemblaggio opportuno verificare la presenza delle tensioni di
alimentazioni e verificare manualmente (applicando una tensione di 5V
seguita da una R2K sulle basi dei vari TR) la commutazione dei vari TR.
Se il tempo me lo permettera' implementero' una procedura tramite il
software KISSEPROM per una rapida verifica del funzionamento del
programmatore (vedere la pagina SOFTWARE per eventuali aggiornamenti).
Il programmatore e' stato testato personalmente
in LETTURA con eprom 2732, 27C32, 2764, 27C64, 27128, 27C128, 27256, 27C256,
27512, 27C512, 29F1001
in SCRITTURA con eprom 2764, 27C64, 27128, 27C128, 27256, 27C256,
27512, 27C512;
questo non significa che con le altre non funziona, semplicemente non avevo
gli altri tipi di memorie e non ho potuto provare.
NOTA: nel caso di eprom in cui sia OE (G)
che VPP fanno capo allo stesso piedino (per esempio le 27C32, 27C512)
collegare solo VPP ed ignorare OE (G)
Continua
con il Programmatore
(Modulo Alimentatore)
73 de iz7ath, Talino Tribuzio