programmatore per PIC universale!

Transcript

programmatore per PIC universale!
PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO
________________________________________________________________________________________________________________________
PROGRAMMATORE UNIVERSALE PER PIC ED EEPROM 24LCXX
By FABIO FIORAVANZO
DISCLAIMER
Il contenuto del presente documento è fornito a solo scopo didattico e senza garanzia alcuna. Il sottoscritto non si ritiene responsabile
di alcun danno diretto o indiretto causato dall’uso delle informazioni in esso contenute e dei circuiti ivi descritti. Tutti i nomi di
prodotti e ditte appartengono ai legittimi proprietari. La distribuzione del presente documento è, fatti salvi i diritti di terzi, libera e
gratuita a condizione di non apportare modifiche e di citare sempre l’autore. E’ vietato l’uso commerciale in tutto o in parte del
presente documento, salvo espressa autorizzazione.
PREMESSA:
Come molte altre persone, anch’io ho iniziato a “farmi le ossa” sui microprocessori usando i PIC, e in
particolare l’arcinoto 16F84. Oramai però non si usa più solo il 16F84 o i vecchi 16C5X, ma sono nati tutta
una serie di nuove famiglie di PIC (dalla 12C5XX, ai 16F87X) che possono essere usati di volta in volta a
seconda delle proprie necessità. L’idea di autocostruirmi un programmatore per i PIC mi frullava in mente da
tempo. Non riuscivo però a trovare qualcosa di veramente universale che non si limitasse a programmare una
sola famiglia, ma tutti o quasi i PIC esistenti sul mercato. Il programmatore originale Microchip ha un prezzo
non elevato rispetto alle altre Case costruttrici di microprocessori, ma comunque al di fuori della portata del
semplice hobbista come me. Gli altri programmatori che si trovano in vendita hanno anch’essi prezzi
decisamente elevati per quel che danno, e spesso sono dedicati alla programmazione di una sola famiglia di
PIC. Pensavo oramai di dover abbandonare l’idea, quando ho acquistato il libro di Guido Galletti
“PICBOOK Volume 2”, ed ho trovato la descrizione di un programmatore per il 16F84 molto semplice sia
dal punto di vista hardware che software, e che comprendeva tra l’altro anche la possibilità di programmare
le EEPROM seriali. Da qui al programmatore universale il passo è stato breve, ed il risultato è di seguito
spiegato.
SCHEMA ELETTRICO:
La base di partenza, come detto è il programatore presentato nel libro di Galletti, che a sua volta deriva dal
famoso programmatore ideato da Henk Schaer. Questo programmatore è circuitalmente molto semplice,
infatti contempla un solo integrato che non serve altro che a bufferare i segnali in ingresso. Infatti tutte le
operazioni sono gestite dal software ICPROG tramite la porta parallela del computer. Le modifiche da me
introdotte hanno riguardato la parte di alimentazione e soprattutto l’interfaccia per dialogare con i vari tipi di
PIC. Per l’alimentazione ho inserito un ponte a diodi, in modo che la scheda possa essere alimentata sia in
alternata, direttamente da un trasformatore, che in continua (ed in questo caso senza doversi curare della
polarità dell’alimentazione). Come saprete durante la programmazione il PIC ha bisogno di due diverse
alimentazione, quella classica a 5V (fornita da U2), ed una a 13.5V da fornire all’ingresso MCLR del micro
in corrispondenza della memorizzazione dei dati nelle varie celle di memoria. Quest’ultima viene fornita da
U1 il cui riferimento di massa è sollevato dal led D1 che ha il duplice scopo di innalzare l’uscita di 1.5V è di
indicare visivamente la presenza dell’alimentazione. Il led rosso D2 lampeggia invece durante la fase di
________________________________________________________________________________________________
1 DI 5
PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO
________________________________________________________________________________________________________________________
programmazione (è collegato a +VPP) monitorando così l’esecuzione dell’operazione. Per la parte di
interfaccia ho utilizzato uno zoccolo ZIF (zoccolo a forza di inserzione zero) da 40 pin su cui possono
trovare posto tutti i tipi di PIC in contenitore DIL da 8 fino a 40 pin. I PIC necessitano di 5 segnali per la
programmazione (+VDD, +VPP, GND, DATA e CLOCK) e naturalmente ogni famiglia di PIC ha dei pin
predisposti allo scopo. Ebbene il circuito provvede, grazie anche all’utilizzo dei 6 commutatori S1÷S6 al
corretto collegamento tra i segnali di programmazione e i pin dei vari micro. Ho inoltre aggiunto un
connettore a 5 vie su cui arrivano tutti i segnali necessari alla programmazione. Tramite opportuno cavetto di
interfaccia si potrà così andare a programmare direttamente in circuit. Naturalmente il circuito da
programmare dovrà essere dotato di un analogo connettore.
Ed ecco a voi lo schema!
ELENCO COMPONENTI:
R1: 1 KΩ
R2÷R11: 10 KΩ
C1: 220 µF/35V elettrolitico
C2÷C4: 100 nF poliestere
PT1: ponte radrizzatore 1A
S1÷S6: Deviatori da c.s.
D1: LED Verde 5mm
D2: LED Rosso 5mm
U1: 7812
U2: 7805
U3: 7407
T1: BC557
T2: BC557
Varie:
- Zoccolo 14 pin
- Zoccolo ZIF 40 pin
- Plug di alimentazione ∅ 6mm
- Connettore DB9 maschio
- Strip maschio 5 poli
- 4 distanziali con viti
________________________________________________________________________________________________
2 DI 5
PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO
________________________________________________________________________________________________________________________
DISPOSIZIONE COMPONENTI:
~
U1
C2
D1
U2
C3
-
28PIN
R3
C4
R2
R9
R4
R8
R10
1
2
1
2
S3
S5
1
2
1
2
S2
1
2
1
2
S1
R1
T2
R11
S6
S4
8PIN
T1
R7
18PIN
R6
U3
R5
40PIN
C1
PT1
24LCXX
~ +
+
D2
TRACCIA LATO RAME (IN SCALA 1:1):
REALIZZAZIONE PRATICA ED UTILIZZO:
La realizzazione non presenta particolari difficoltà. Il circuito è monofaccia (occhio però che ci sono 6
ponticelli da fare) e quindi facilente realizzabile per fotoincisione o altro. Io ad esempio utilizzo le “pellicole
blu” con ottimi risultati. Le resistenze devono essere da ¼ o 1/8 di W. Sul prototipo da me realizzato ho
invece utilizzato resistenze tipo SMD in formato 1206 o 0806. I due regolatori in contenitore TO220 sono
sovradimensionati per l’utilizzo e non necessitano quindi di alcun dissipatore. Le uniche difficoltà possono
incontrarsi nel reperire i microdeviatori da c.s. e lo zoccolo ZIF da 40 pin. Per i primi io ho utilizzato dei
________________________________________________________________________________________________
3 DI 5
PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO
________________________________________________________________________________________________________________________
componenti della RS codice 339-673, ma possono comunque essere rimpiazzati anche dai comuni deviatori
da pannello. Per il secondo ho attinto ad un vecchissimo programmatore di EEPROM. Lo stesso può
comunque essere reperito sempre da RS (codici 403-825 per il 28 pin, 403-831 per il 40 pin) a circa 15 Euro.
Per l’alimentazione, tramite l’apposita presa plug, il circuito necessita di una tensione continua di almeno
16÷17V, oppure alternata di almeno 14V con una corrente di circa 300mA. Il circuito non necessita di
tarature, ed è quindi subito pronto all’uso. Per il collegamento alla porta parallela del PC occorre realizzare
un cavetto interfaccia seguendo esattamente le corrispondenze indicate in tabella, pena il non funzionamento
del circuito o peggio il danneggiamento della porta parallela del PC!
Tutti i PIC vanno inseriti con la tacca di riferimento rivolta verso la levetta dello zoccolo, ed “appoggiati” ad
essa. Invece le EEPROM, pur dovendo anch’esse essere inserite con la tacca di riferimento rivolta verso la
levetta dello zoccolo, dovranno essere posizionate dalla parte opposta rispetto alla levetta. Per maggiori
delucidazioni guardate la disposizione componenti. Prima di programmare il vostro dispositivo, non
dimenticate di settare i microswitch in posizione 1 se si tratta di PIC a 28 o 40 pin, in posizione 2 se si tratta
di PIC a 8/18 pin o EEPROM.
Per quanto riguarda il software, viene utilizzato il noto IC PROG, facilmente rintracciabile in Internet, che
consente di programmare tutti i tipi di PIC, e tutte le memorie seriali dalla 24LC08 alla 24LC256. Per le
impostazioni e l’utilizzo, peraltro molto semplici, rimando al libro di Galletti cui questo software è anche
allegato.
CORRISPONDENZA PIN CAVO INTERFACCIA:
DB9
(programmatore)
DB25
(computer)
5
4
3
1
2
8
2
11
3
4
5
19
VARIANTI:
Si possono apportare alcune varianti alla realizzazione, che sono poi quelle implementate nel programmatore
da me realizzato:
1. Sostituire ad U1 un regolatore variabile tipo LM317 in modo da avere sul MCLR esattamente i
13.5V richiesti. Realizzato il circuito, si dovrà regolare il trimmer in modo da avere all’uscita
dell’LM317 13.8V (che equivalgono a 13.5V effettivi sul MCLR).
________________________________________________________________________________________________
4 DI 5
PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO
________________________________________________________________________________________________________________________
2. Nel caso in cui si pensa di non dover programmare PIC a 40 pin, si può utilizzare uno zoccolo ZIF a
28 pin modificando i collegamenti come sotto riportato. Naturalmente le EEPROM vengono sempre
inserite nella parte finale dello zoccolo.
Per qualunque comunicazione, richiesta di chiarimenti, segnalazione di errori od omissioni, potete
rintracciarmi all’indirizzo e-mail: [email protected]
 05/2003 by FABIO FIORAVANZO
________________________________________________________________________________________________
5 DI 5

Documenti analoghi

Programmatore di PIC su porta parallela LPT

Programmatore di PIC su porta parallela LPT con i nomi più fantasiosi da ludipipo, multipipo e via di seguito, si tratta del JDM programmer. Tutti hanno la particolarità di impiegare solo alcune resistenze… fin qui nulla di strano, almeno un...

Dettagli

Programmatore PIC 2 - PDF - ARI

Programmatore PIC 2 - PDF - ARI avete montato e provate a vedere cosa succede inserendo un solo integrato alla volta. Tenete presente comunque che il 7805, avendo all’ingresso per esempio almeno 16 volt, per 10 mA assorbiti sul 5...

Dettagli