Quick Smart PROM Programmer
© Creative Solutions Engineering
Introduzione
In commercio si trovano svariati tipi di programmatori di Eprom, i quali
presentano diverse funzionalita`, ma tutti sono caratterizzati da un costo
elevato.
Un programmatore di Eprom puo` essere realizzato in diversi modi; le
caratteristiche volute erano la trasportabilita` e il funzionamento su
qualsiasi PC, anche portatili, per cui e` stata scelta la realizzazione
esterna con collegamento seriale.
Un progetto con questo livello di complessita` (commutazione di un notevole
numero di valori di tensioni di alimentazione e programmazione, diversi tipi
di Eprom con piedinatura differente, e vari algoritmi di programmazione) puo`
essere sviluppato in svariati modi.
Sfruttando le potenzialita` dei microcontrollori esistenti e` possibile
ridurre notevolmente il numero dei componenti necessari alla realizzazione di
un programmatore, e quindi anche il suo costo.
Si tratta di un programmatore di Prom/Eprom seriale, in grado di programmare
e leggere svariati tipi di Eprom,dalle 2716 alle 27c4000.
Il programmatore dialoga con il PC attraverso una porta di
comunicazione standard RS232 mediante i due segnale RXD, TXD e naturalmente
la massa (GND). La velocita' di comunicazione e' scelta intelligentemente
dal programmatore insieme al programma che va installato sul PC in modo da
garantire la massima velocita` minimizzando le ritrasmissioni dovute ad errori
di comunicazione; questo
significa che sara' possibile avere anche un cavo di collegamento fra
programmatore e PC molto lungo senza avere problemi di perdita dati.
Il software di gestione del programmatore ( WPR20.EXE ) funziona in ambiente DOS su
qualsiasi Personal Computer IBM compatibile, e potra` quindi essere utilizzato
anche in una finestra DOS di Windows o di altri sistemi operativi;
il suo utilizzo e` molto semplice ed intuitivo.
Come si puo' notare dal layout, in Fig. 1,
il programmatore richiede pochissimi componenti e soprattutto utilizza
componenti standard e di basso costo reperibili in qualsiasi negozio
specializzato per l' elettronica.
Naturalmente, come si sara' visto, il cuore di tutto il programmatore consiste
nel microcontrollore single-chip 87C51 che deve essere programmato per adempiere a
tutte le funzioni richieste.
Un componente che forse sara' un po' critico da
reperire e' lo zoccolo Textool della 3M da 20+20 pin per l'inserimento delle
Eprom da programmare; nel caso non fosse reperibile, sara' possibile
utilizzare un normale zoccolo tulipano , e per far in modo che non si rovini
con l'inserendo delle varie Eprom, infilare al di sopra di questo
un altro zoccolo tulipano dello stesso tipo. In questo modo, quando lo zoccolo
che contiene la Eprom sara' rovinato, sara' sufficente toglierlo e metterne
uno nuovo.
L'immagine del programmatore finito e
inscatolato puo' essere richiesta selezionando questo link.
Descrizione schema elettrico
Per semplicita` lo schema elettrico e` stato diviso nelle sue tre parti
essenziali.
In Fig. 2 e' possibile vedere lo schema alimentatore
che genera i 5 Vdc per la parte logica di controllo, le varie tensioni di
alimentazione e di programmazione della Eprom.
Il trasformatore T1 fornisce, attraverso i suoi due secondari, le tensioni
non filtrate di circa 15 e 30 volt, le quali verranno utilizzate dai
successivi regolatori di tensione.
La tensione di alimentazione della parte logica e` stabilizzata da un 7805,
che fornisce in uscita 5 Vdc , mentre le tensioni di alimentazione e
programmazione della Eprom, essendo variabili poiche` gestite dal software,
vengono stabilizzate da due LM317 comandati attraverso 8 trimmer di
regolazione da un ULN2003 e 74HC595.
Sono inoltre presenti due circuiti di protezione e limitazione della corrente
di alimentazione e programmazione della Eprom, cosicche` in caso di elevato
assorbimento non si verificheranno danneggiamenti al programmatore e alla
Eprom.
Una uscita del 74HC595 andra` a pilotare un buzzer per segnalazioni acustiche
di funzionamento e controllo.
In Fig.3 e' riportato lo schema elettrico della parte
logica di controllo con le connessioni dell' address bus e data bus allo
zoccolo Textool 20+20 pin sul quale dovra` essere inserita l'eprom da
programmare.
Infine, in Fig.4 viene mostrato il sistema di commutazione delle tensioni di
alimentazione e programmazione della eprom; tali tensioni dovranno essere
infatti applicate a piedini diversi della eprom, a seconda del tipo.
Montaggio
Per il montaggio dei componenti, si iniziera' inserendo tutti gli zoccoli
facendo attenzione al verso della tacca di riferimento, e poi i componenti
piu' piccoli , ovvero resistenze, diodi, condensatori, trimmer, transistor
ecc., facendo attenzione alla polarita` dei dispositivi che lo richiedono.
Quando saranno montati tutti i componenti sulla scheda, la si
potra' inscatolare per poi fare i pochi cablaggi richiesti.
Sara` inoltre necessario fissare i 3 regolatori di tensione al contenitore
metallico, in modo che dissipino calore,
isolando elettricamente i due LM 317 attraverso una mica, mentre non sara`
necessario isolare il 7805.
All'accensione , il programmatore dovra` segnalare il suo funzionamento
emettendo 3 beep dal buzzer; in caso contrario il circuito non
funzionera` e dovra` essere ricontrollato.
Il collegamento seriale tra PC e programmatore deve essere effettuato mediante
cavo schermato contenente 2 fili + calza , per il collegamento di RXD, TXD e
GND ; in alternativa si potra' utilizzare un normalissimo cavo seriale non
invertito facilmente reperibile in commercio.
A questo punto sara` necessario eseguire la taratura del programmatore
seguendo le istruzioni riportate nel paragrafo Taratura del programmatore.
Installazione ed uso del software di gestione
Per installare il programma WPR sul PC, sara' sufficiente
copiare l' intero contenuto del dischetto dato in dotazione nella directory
\WPR del disco fisso del proprio PC.
Per fare cio', dopo aver inserito il dischetto sull' unita' A del PC, digitare
C:
CD\
MD WPR
CD WPR
COPY A:*.*
Fatto cio', sara' possibile mettere in esecuzione il programma digitando
WPR seguito
dal tasto INVIO.
A questo punto il programma testera` la presenza del programmatore, ed in caso
positivo stabilira` la velocita` seriale da utilizzare (che sara` funzione
del numero di errori rilevati), ed emettera` una serie di beep per segnalare
il corretto funzionamento;
nel caso in cui il programmatore non sia connesso, verra` restituito un
messaggio di errore, ed il programma continuera` l'esecuzione in
modo "emulazione", che consentira' la sola manipolazione dei file
binari/esadecimali nei vari formati, e l'uso dell'editor esadecimale.
Taratura del programmatore
I vari tipi di Eprom esistenti utilizzano diverse tensioni di alimentazione e
di programmazione; queste tensioni dovranno essere regolate attraverso gli
appositi trimmer facendo uso di un voltmetro elettronico, seguendo le
istruzioni qui sotto riportate.
- Eseguito il programma WPR , entrare nel menu Impostazioni/Tarature
- Posizionare un puntale del tester a massa e l'altro sull'anodo del diodo
D3 (tensione Vce), e predisporre il voltmetro affinche` misuri tensioni continue
nel range 5-10 volt.
- Selezionare la voce del menu D e regolare il trimmer R12
affinche` la tensione sia di 6.7 Volt.
- Selezionare la voce del menu C e regolare il trimmer R13
affinche` la tensione sia di 6.4 Volt.
- Selezionare la voce del menu B e regolare il trimmer R14
affinche` la tensione sia di 6.2 Volt.
- Selezionare la voce del menu A e regolare il trimmer R13
affinche` la tensione sia di 5.2 Volt.
- Predisporre il voltmetro per misurare tensioni continue nel range 10-25
volt, posizionare un puntale a massa e l'altro sul anodo del diodo D5
(tensione Vpe).
- Selezionare la voce del menu H e regolare il trimmer R24
affinche` la tensione sia di 25.2olt.
- Selezionare la voce del menu G e regolare il trimmer R25
affinche` la tensione sia di 21.2 Volt.
- Selezionare la voce del menu F e regolare il trimmer R26
affinche` la tensione sia di 13 Volt.
- Selezionare la voce del menu E e regolare il trimmer R27
affinche` la tensione sia di 12.7 Volt.
- Ripetere la procedura fin qui vista per ricontrollare tutte le tensioni.
A questo punto, si potra' chiudere la scatola e provare il programmatore
leggendo e scrivendo qualche Eprom.
Descrizione del programma
Il programma e' stato studiato per essere facile da usare ed intuitivo, e
funziona in ambiente DOS. Alla partenza il programma si presenta con i 4 menu'
principali, quali:
- Menu' gestione File
- Menu' gestione Eprom
- Menu' gestione Ram
- Menu' impostazioni.
Come si potra' notare, per accedere al menu' si possono usare i cursori
unitamente al tasto INVIO , oppure digitando i tasti
evidenziati.
Il Menu' File contiene:
- Nome del File, dove si andra' a specificare il file per la programmazione
della Eprom.
Il programma e' in grado di leggere file di vari formati: file
binari (BIN), file esadecimali nel formato Intel (HEX) e nei formati
motorola (MS1, MS2 e MS3).
Con i file binari ed esadecimali e' possibile programmare direttamente
la Eprom, mentre per i formati motorola e' neccessario caricarli prima
nella ram del programma, in modo che possano essere convertiti nel
formato appropriato per la programmazione della Eprom.
- Esegui permette di lanciare un qualsiasi programma che venga settato nel
menu impostazioni alla voce "nome del file da eseguire".
Si puo' far eseguire un editor, un semplice file manager, o cio' che
piu' ci fa comodo.
- DOS Shell sospende il programma principale e apre una finestra DOS; poi per
ritornare al programma principale digitare "EXIT".
- Risincronizzazione serve qualore il programmatore venga spento e riacceso
mentre il programma e' attivo. Questa voce serve per sincronizzare la
comunicazione seriale fra PC e programmatore.
- Uscire serve per chiudere il programma e tornare al DOS o comunque al
sistema operativo utilizzato.
Nel Menu' Gestione Eprom troviamo:
- Tipo di Eprom serve per selezionare quale Eprom sara' da programmare.
Verranno visualizzate per ciascuna Eprom tutte le caratteristiche di
programmazione.
- Programmare l' Eprom dara' il consenso al programmatore all' inizio della
programmazione; a questo punto verra` chiesto se si vuole effettuare la
programmazione in base al contenuto della RAM oppure del file specificato.
- Controllare se l' Eprom e' vuota servira' per verificare la
programmabilita` della Eprom.
- Indirizzo iniziale in Eprom specifica a quale locazione di memoria iniziera'
ad essere programmata la Eprom.
- Indirizzo finale in Eprom serve quando si deve leggere una parte della
Eprom, ed in questo caso definisce l' indirizzo dove terminare la lettura.
- Lunghezza del blocco sostituisce la voce precedente, ovvero noi possiamo
specificare quanto lunga sia la porzione del blocco da leggere.
- Lettura della Eprom consente di leggere il contenuto della Eprom a partire
dall'indirizzo iniziale; anche in questo caso verra` chiesto se si vorra`
registrarne il contenuto nella RAM del PC (per la visualizzazione ed
eventuale modifica attraverso l'editor) oppure in un file.
- Confronto fra Ram e Eprom fa un paragone con il contenuto in ram e quello
in Eprom.
Nel menu' Gestione Ram, troviamo le seguenti possibilita':
- Editor esadecimale: consente di visualizzare il contenuto della RAM del
programma predisposta per contenere un sorgente binario, ed
eventualmente modificarla oppure inserire altri dati; l' inserimento
dei dati puo' avvenire sia in modo esadecimale che in modo ASCII.
- Indirizzo iniziale in Ram , come nel menu' gestione Eprom, seleziona il
punto della ram da cui il programma deve partire per fare tutte le
operazioni di lettura, scrittura ecc.
- Indirizzo finale in Ram specifica, analogamente al comando precedente,
l' indirizzo in cui il programma deve
terminare i vari processi che stava eseguendo con la RAM del PC.
- Lunghezza del blocco e' un comando alternativo al precedente:
invece di usare l' indirizzo finale per stabilire la
lunghezza della memoria da manipolare, e' possibile specificarne
direttamente la lunghezza con questo comando.
Questi ultimi tre comandi sono tutti correlati
fra loro; infatti come si puo' notare dallo status del programma,
la modifica di uno puo' comportare un aggiornamento in automatico degli
altri.
- Cancellazione della Ram non fa altro che settare tutta la ram del PC a FF.
- Caricare il file in Ram serve per trasferire il file specificato dal menu
File (nome del file) nella ram; questo comando serve per poter editare
i vari file, per leggerli e per convertire i file del formato motorola
(MS1,2,3) nel formato adeguato per essere manipolato dal programmatore
(BIN o HEX).
- Salvare il blocco in Ram serve per trasferire tutto il contenuto della ram
in un file. Il nome da dare al file verra' chiesto dopo aver
selezionato questo comando.
Menu Impostazioni:
- Velocita' della porta seriale definisce a quale velocita' far comunicare il
PC con il programmatore. Si consiglia di lasciare il modo automatico.
In questo caso sara' il programmatore insieme al PC decidere la
massima velocita' di comunicazione senza perdita di dati.
- Nome del file da eseguire specifica quale programma vogliamo che venga
eseguito quando viene invocata la voce ESEGUI dal menu FILE.
Di solito si fa eseguire un programma di utilita' che serva alla
gestione dei file, oppure un editor ecc. Naturalmente la dimensione
massima del programma non deve essere maggiore della memoria libera
disponibile del PC.
- Salvataggio dei Bytes 0FFH: questo comando e' utilissimo ed e' una
pecularieta' solo di questo programmatore; infatti se nel menu' viene
specificato NO, quando nella programmazione di una Eprom
verranno trovati dei byte FF, questi verranno ignorati e la scrittura
continuera` dal prossimo byte diverso da FF.
In questo modo se abbiamo una Eprom di grande dimensione e un file da
programmare con tanti spazi vuoti, il tempo di programmazione risultera`
drasticamente minore in quanto il programmatore andra` a scrivere solo i
blocchi utili e non le zone non utilizzate della Eprom.
Se invece in questo comando si risponde SI, il programmatore
trattera' i byte FF come tutti gli altri byte.
- Colori e' un menu' che serve per definire i vari colori del programma , come
lo sfondo, le lettere evidenziate, i bordi ecc.
- Com 1 e Com 2 serve al programma per sapere dov' e' collegato il programmatore.
- Tarature e' un comando che serve per la taratura delle tensioni per il
corretto funzionamento del programmatore come gia' spiegato
precedentemente nel paragrafo Taratura del
programmatore
Vai alla pagina principale