PROGRAMMATORE UNIVERSALE PER PIC ED … ·  · 2005-07-22PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM...

5

Click here to load reader

Transcript of PROGRAMMATORE UNIVERSALE PER PIC ED … ·  · 2005-07-22PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM...

Page 1: PROGRAMMATORE UNIVERSALE PER PIC ED … ·  · 2005-07-22PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ... Oramai però non si usa più solo il 16F84 o i vecchi 16C5X,

PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ________________________________________________________________________________________________________________________

________________________________________________________________________________________________ 1 DI 5

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

Page 2: PROGRAMMATORE UNIVERSALE PER PIC ED … ·  · 2005-07-22PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ... Oramai però non si usa più solo il 16F84 o i vecchi 16C5X,

PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ________________________________________________________________________________________________________________________

________________________________________________________________________________________________ 2 DI 5

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Ω D2: LED Rosso 5mm Varie: R2÷R11: 10 KΩ U1: 7812 - Zoccolo 14 pin C1: 220 µF/35V elettrolitico U2: 7805 - Zoccolo ZIF 40 pin C2÷C4: 100 nF poliestere U3: 7407 - Plug di alimentazione ∅ 6mm PT1: ponte radrizzatore 1A T1: BC557 - Connettore DB9 maschio S1÷S6: Deviatori da c.s. T2: BC557 - Strip maschio 5 poli D1: LED Verde 5mm - 4 distanziali con viti

Page 3: PROGRAMMATORE UNIVERSALE PER PIC ED … ·  · 2005-07-22PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ... Oramai però non si usa più solo il 16F84 o i vecchi 16C5X,

PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ________________________________________________________________________________________________________________________

________________________________________________________________________________________________ 3 DI 5

DISPOSIZIONE COMPONENTI:

C3

R3

R6

R11

~

-

R5

+

C1 D1

D2

C4

U1 U2C2

+

PT1

24LCXX

40PIN

28PIN

8PIN

18PIN

~

S4

S6

S5 S2

S1

S3

U3

R1

R10

R2

R7

R4

R9

21

2

2

21

1

1

T1

T2

R8

2

2

2

2

22

1

1

1

1

11

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

Page 4: PROGRAMMATORE UNIVERSALE PER PIC ED … ·  · 2005-07-22PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ... Oramai però non si usa più solo il 16F84 o i vecchi 16C5X,

PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ________________________________________________________________________________________________________________________

________________________________________________________________________________________________ 4 DI 5

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 2 4 11 3 3 1 4 2 5 8 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).

Page 5: PROGRAMMATORE UNIVERSALE PER PIC ED … ·  · 2005-07-22PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ... Oramai però non si usa più solo il 16F84 o i vecchi 16C5X,

PROGRAMMATORE UNIVERSALE DI PIC ED EEPROM by FABIO FIORAVANZO ________________________________________________________________________________________________________________________

________________________________________________________________________________________________ 5 DI 5

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