HOME PAGE

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:

  1. Modulo Programmatore; (questa pagina)

  2. Modulo Alimentatore;

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:

VEDI SCHEMA ELETTRICO

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)

VEDI SCHEMA ELETTRICO

Continua con il Programmatore
(Modulo Alimentatore)

 

73 de iz7ath, Talino Tribuzio

HOME PAGE