Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la...

10
Elettronica Innovativa di Sandro Reis Completo sistema di programmazione per tutti i moderni microcontrollori Microchip con memoria programma di tipo Flash, cancellabile elettricamente. La scheda dispone anche di alcune risorse (pulsanti, led) per verificare il funzionamento dei programmi più semplici. Completo di software su CD compatibile con tutti i sistemi operativi Windows. l progetto descritto in queste pagine è un pro- grammatore multifunzione adatto a tutti (o quasi) i microcontrollori della Microchip con memoria programma di tipo Flash, ovvero cancellabile elettrica- mente. Ovviamente ci riferiamo ai micro della famiglia PIC, sicuramente i dispositivi programmabili ad 8 bit più diffusi tra gli hobbysti e gli appassionati di elettro- nica. L’impiego di una Flash per la memorizzazione del programma ha reso molto più agevole e veloce lo svi- luppo del firmware e delle applicazioni relative, specie tra quanti (la maggioranza degli hobbysti) non dispon- gono di un emulatore hardware per testare i programmi. A questo punto, prima di proseguire con la descrizione di questo circuito, vorremmo soffermarci brevemente sulle memorie Flash, anche perché spesso si fa confu- sione tra EEPROM e Flash. In effetti il principio di fun- zionamento è lo stesso: in entrambi i casi le celle di memoria possono essere cancellate e riprogrammate elettricamente, a differenza delle vetuste EPROM e delle ROM. La diversità sta nel fatto che nelle EEPROM la scrittura viene effettuata un byte alla volta (con la lentezza conseguente) mentre nelle Flash il Elettronica In - maggio / giugno 2004

Transcript of Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la...

Page 1: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

Elettronica Innovativa

di Sandro Reis

Completo sistema diprogrammazione per

tutti i modernimicrocontrollori Microchipcon memoria programma

di tipo Flash, cancellabile elettricamente.

La scheda disponeanche di alcune risorse

(pulsanti, led) per verificare il

funzionamento dei programmi più semplici.

Completo disoftware su CD

compatibile con tutti isistemi operativi Windows.

l progetto descritto in queste pagine è un pro-grammatore multifunzione adatto a tutti (o quasi)i microcontrollori della Microchip con memoria

programma di tipo Flash, ovvero cancellabile elettrica-mente. Ovviamente ci riferiamo ai micro della famigliaPIC, sicuramente i dispositivi programmabili ad 8 bitpiù diffusi tra gli hobbysti e gli appassionati di elettro-nica. L’impiego di una Flash per la memorizzazione delprogramma ha reso molto più agevole e veloce lo svi-luppo del firmware e delle applicazioni relative, specietra quanti (la maggioranza degli hobbysti) non dispon-

gono di un emulatore hardware per testare i programmi.A questo punto, prima di proseguire con la descrizionedi questo circuito, vorremmo soffermarci brevementesulle memorie Flash, anche perché spesso si fa confu-sione tra EEPROM e Flash. In effetti il principio di fun-zionamento è lo stesso: in entrambi i casi le celle dimemoria possono essere cancellate e riprogrammateelettricamente, a differenza delle vetuste EPROM edelle ROM. La diversità sta nel fatto che nelleEEPROM la scrittura viene effettuata un byte alla volta(con la lentezza conseguente) mentre nelle Flash il

Elettronica In - maggio / giugno 2004

Page 2: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

Sp

eci

fich

e t

ecn

ich

e:

- Adatto per la programmazione di microcontrolloriMicrochip® FLASH PIC™;

- Supporta 4 differenti formati: 4+4pin, 7+7pin, 9+9pin e 14 + 14 pin;

- Quattro pulsanti e sei diodi LED per eseguireesperimenti con i programmi più semplici;

- Si collega facilmente a qualsiasi PC tramite la portaseriale;

- Include un microcontroller PIC16F627 chepuò essere riprogrammato fino a 1000 volte;

- Completo di software di compilazione e di programmazione;

- Alimentatore: 12÷15V cc, minimo 300mA,alimentatore non stabilizzato;

- PC compatibile IBM, Pentium o superiore, con Windows™ 95/98/ME/NT/2000/XP, CD-ROM e unaporta seriale RS232 libera (cavo seriale non incluso);

- Supporta le seguenti famiglie di micro FLASH: - PIC12F629, PIC12F675, PIC16F83, PIC16F84(A),PIC16F871, PIC16F872;

- PIC16F873, PIC16F874, PIC16F876,PIC16F627(A), PIC16F628(A), PIC16F630, ecc

- Dimensioni: 145 mm x 100 mm.

campo elettrico viene applicato adintere zone di memoria (solitamen-te composte da 512 bytes) con con-seguente incremento della velocitàdi scrittura. Dai primi dispositivi diquesto tipo - che utilizzavano la tec-nologia denominata EEPROMFlash - siamo passati a prodotti contecnologie molto più sofisticate(Flash NOR, Flash NAND) chehanno consentito di realizzare ban-chi di memoria (per le applicazioni

più diverse) di costo molto contenu-to, specie se confrontate con lacapacità di memoria disponibile. Inconclusione, l’impiego della tecno-logia Flash nei microcontrolloriconsente di scrivere e cancellare lamemoria programma in manieramolto semplice (elettricamente),con una notevole velocità, dando lapossibilità di ripetere l’operazioneun numero elevato di volte (almeno

1.000). Fino a pochi anni fa, invece,il firmware veniva sviluppato conl’ausilio di dispositivi con memoriaprogramma di tipo EPROM, can-cellabile con apposite lampade adultravioletti; una volta testato conquesti micro, il firmware venivacaricato su microcontrollori conmemoria OTP (programmabile unasola volta e non più cancellabile). Imicrocontrollori Microchip PICche utilizzano la tecnologia Flash

sono facilmente identificabili inquanto contengono la lettera F nellasigla: PIC16F84, PIC12F675 sonosolo esempi di dispositivi conmemoria programma di questo tipo.Chiudiamo qui questa parentesi etorniamo al nostro programmatore.Nel box a centro pagina sono ripor-tate le caratteristiche più significati-ve: il circuito è in grado di acco-gliere integrati dual-in-line da 8,

14, 18 e 28 pin, viene fornito conun integrato vergine per i primiesperimenti, dispone di alcunerisorse hardware (pulsanti e led) pertestare i programmi più semplici edè completo del software (su CD)indispensabile per compilare i pro-grammi da caricare nella memoriaFlash dei microcontrollori. Il cir-cuito dispone anche di una uscitaICSP che consente di effettuare unaprogrammazione "in-circuit" deimicrocontrollori o, più semplice-mente, di programmare dispositivicon pin-out differente o con unmaggior numero di piedini. Il soft-ware va caricato su un PC la cuiporta seriale viene utilizzata perpilotare il programmatore; la lineaIRQ di questa porta (IRQ 3 o 4) nondeve essere utilizzata da un altrodispositivo (ad esempio da unmodem interno). Diamo ora unosguardo allo schema elettrico delprogrammatore partendo dallasezione di alimentazione.

Schema elettrico

Il regolatore VR1 provvede a gene-rare, partendo dalla tensione diingresso (12÷15 volt non stabilizza-ti) la tensione di programmazionedi 13,5 volt (Vpp) che viene utiliz-zata durante la fase di programma-zione dei micro. Qualcuno si chie-derà com’è possibile ottenere unatale tensione partendo dai 12 voltforniti da un adattatore di rete.Presto detto. Qualsiasi alimentatorenon stabilizzato fornisce una ten-sione che, a vuoto ed in presenza diun assorbimento molto basso, èdecisamente più alta rispetto a quel-la nominale. Nel nostro caso, seandiamo a misurare con un testerquesto valore, scopriamo che la ten-sione è di circa 14÷15 volt. La ten-sione di uscita del regolatore è piùalta rispetto a quella che l’integratofornisce di solito a causa dei due

Elettronica In - maggio / giugno 2004

Page 3: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

S c h e m a E l e t t r i c oS c h e m a E l e t t r i c o

Elettronica In - maggio / giugno 2004

Page 4: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

P I A N O D I m o n t a g g i om o n t a g g i o

ELENCO COMPONENTI:

R1: 15 KOhmR2: 220 KOhmR3: 4,7KOhmR4: 1 KOhmR5: 15 KOhmR6: 220 KOhmR7: 4,7 KOhmR8: 1 KOhmR9: 4,7 KOhmR10: 3,3 KOhmR11: 4,7 KOhmR12: 330 OhmR13: 15 KOhmR14: 3,3 KOhmR15: 3,3 KOhmR16: 1 KOhmR17: 10 KOhmR18: 10 KOhmR19÷R25: 680 OhmR26÷R28: 10 KOhmR29: 1 KOhmR30: 10 KOhmR31: 3,3 KOhmC1: 220 µF 35V

elettroliticoC2: 100 nF multistratoC3: 100 nF multistratoC4: 100 nF multistratoC6: 18 pF ceramicoC7: 18 pF ceramicoC8: 100 nF multistratoD1: 1N4007D2: 1N4148D3: 1N4148D4: 1N4148D5: 1N4148D6: 1N4148D7: 1N4148ZD1: zener 8,2VVR1: 78L12VR2: 78L05LD1÷LD8: led 3mm rossoLD9: led 5mm rossoX1: quarzo 4MHzT1: BC547T2: BC547T3: BC557T4: BC547T5: BC547

SW1÷SW4: microswitchSW5: deviatore 3 vieSW6: microswitch

Varie:- Plug alimentazione

- Strif maschio 17 pin- Zoccolo 4 + 4 pin (1 pz.)- Zoccolo 7 + 7 pin (1 pz.)- Zoccolo 8 + 8 pin (1 pz.)- Zoccolo 14 + 14 pin (1 pz.)- Connettore RS232 femmina

La scheda del programmatore amontaggio ultimato. Sulla destrasono presenti i 4 pulsanti ed i 6led con i quali è possibile testarei programmi più semplici.

diodi collegati tra il pin GND e lamassa. Il secondo regolatore, par-tendo dalla tensione Vpp, fornisce i5 volt stabilizzati necessari al fun-

zionamento del circuito e del microin programmazione; il led LD3segnala con la sua accensione chela scheda risulta regolarmente ali-

mentata. Per l’invio dei dati dal PCal programmatore viene utilizzatala linea seriale che, nella scheda, facapo ad un classico connettore a 9

Elettronica In - maggio / giugno 2004

Page 5: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

Nell’immagine sono evidenziate tutte le prese di

ingresso/uscita, i led di segnalazione ed i vari controlli.

Il PIC da programmare va inserito in uno dei quattro

zoccoli disponibili. Mediante i quattro pulsanti ed i sei led posti

sul lato destro della basetta èpossibile testare i programmi piùsemplici. Per l’alimentazione del

programmatore è necessarioutilizzare un adattatore da rete

in grado di fornire una tensionenon stabilizzata

compresa tra 12 e 15V.

Controlli & segnalazioni

pin. Le linee RTS e DTR vengonoutilizzate per l’invio del clock e deidati mentre TX, CTS e RI vengonoutilizzate per verificare e/o control-lare lo stato della programmazione.Mediante il deviatore doppio SW5scegliamo la modalità di funziona-mento del dispositivo tra tre diffe-renti possibilità: Stand-by, Programe Run. Nel primo caso non vienefornita alcuna tensione di alimenta-zione o programmazione agli zoc-coli predisposti per accogliere imicro da programmare per cui inquesta condizione possiamo toglie-re ed inserire i dispositivi nel pro-grammatore. Spostando il deviatoresulla posizione Program, invece,tramite SW5B viene fornito al pindi alimentazione del micro una ten-sione di +5 volt. La presenza diquesta tensione viene segnalata dalled LD9 il quale ci avvisa del fattoche, in questa condizione, non èpossibile inserire o togliere un chipdallo zoccolo di programmazione:prima bisogna riportare il deviatorein Stand-by. La sezione SW5A,invece, provvede a collegare la sor-gente a 13,5 volt ai pin MCLR deivari zoccoli in modo da renderepossibile la programmazione delmicro. La sezione che controlla lalinea a 13,5 volt fa capo ai trans-istor T4 e T5; il primo, pilotatodalle linee RX e RI della seriale,abilita la tensione quando necessa-

rio mentre al secondo fa capo il cir-cuito di segnalazione che controllaLD8 la cui accensione ci avverteche è in corso la programmazionedella memoria Flash. Nella posizio-ne Run, infine, il micro viene ali-mentato normalmente dando la pos-sibilità di verificare il programmamemorizzato, magari facendoricorso ai pulsanti ed ai led presen-ti sulla scheda. In questo caso, perresettare il dispositivo, è possibilepremere il pulsante SW6. Per quan-to riguarda il circuito di clock com-posto dal quarzo Q1 e dai conden-satori C6 e C7, è possibile, median-te appositi ponticelli, collegare que-sta sezione ai pin OSC1 e OSC2 deivari zoccoli; questo nel caso in cuisi preveda l’impiego di un oscillato-re esterno anziché di quello interno.Nel caso dei dispositivi ad 8 pin esi-ste solamente la possibilità di utiliz-zare l’oscillatore interno e quindinon sono disponibili i collegamential circuito di clock. Completano ildispositivo alcune risorse con lequali è possibile verificare il fun-zionamento di semplici programmi.Ci riferiamo ai quattro pulsanti edai sei led presenti sullo stampatocollegati ai piedini degli zoccolicorrispondenti a specifiche porte diI/O come riportato nella tabella dipagina 38. Nel caso degli zoccoli a18 e 28 pin, è possibile collegare almicro tutte le risorse disponibili in

quanto questi dispositivi presentanoun numero di porte sufficienti; nelcaso di dispositivi a 7+7 pin vengo-no utilizzate solamente sette linee(5 led e 2 pulsanti) mentre nei chipad 8 pin le linee sono solamente tre(due led ed un pulsante).Ovviamente nelle applicazioni diprova bisogna fare riferimento allelinee indicate se si vogliono sfrutta-re queste risorse. Completiamo ladescrizione dell’hardware occupan-doci della presa a cinque poli utiliz-zata per programmare microcon-trollori non montati direttamentesulla nostra piastra.

La programmazione in-circuit

Mediante questa tecnica è possibileprogrammare, cancellare e ripro-grammare qualsiasi micro Flash giàinserito nel suo circuito applicativosenza doverlo dissaldare dalla sche-da. Ciò, tra l’altro, consente di ope-rare con dispositivi di tipo Flashche per numero di piedini o confi-gurazione del ”case” non sonocompatibili col nostro programma-tore. Citiamo, ad esempio, i microcon passo 600 mil o quelli in conte-nitore QFP o PLCC come, ad esem-pio, il PIC16F876. La programma-zione in-circuit, tuttavia, proprioperché effettuata nel circuito appli-cativo del micro, richiede una seriedi precauzioni che riguardano le

Elettronica In - maggio / giugno 2004

Page 6: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

Il nostro dispositivo puòessere utilizzato anche per la

programmazione in-circuit ovveroper programmare un micro già

inserito nel suo circuito applicativo, senza doverlo

dissaldare dalla scheda. In questo caso, tuttavia, è

necessario che per il microcontrollore vengano

adottate le semplici precauzioniriportate nello schema a fianco

atte ad evitare che la connessione col programmatore

determini dei problemidi natura hardware.

La programmazione in-circuit

connessioni relative all’alimenta-zione ed alle porte RB6 e RB7mediante le quali viene effettuata laprogrammazione. In altre parolequando si progetta e realizza il dis-positivo finale nel quale andrà adoperare il micro bisogna prevederel’impiego di due diodi supplemen-tari e di due resistenze come indica-to nel disegno della pagina accanto.Il diodo sull’alimentazione fa sì chela tensione VDD (+5V) provenientedal programmatore alimenti esclu-sivamente il micro e non il resto delcircuito; lo stesso concetto vale perla tensione di programmazione VPPche, grazie alla resistenza ed aldiodo collegati al pin MCLR, puògiungere esclusivamente al termi-nale di programmazione e non aglialtri dispositivi presenti attorno almicro. Per quanto riguarda le dueporte utilizzate per la programma-zione (RB6 e RB7, rispettivamenteingresso di clock e connessione datiinput/output), spesso questi I/Ovengono impiegati anche per altriscopi (pilotare un led, leggere unlivello logico, ecc). Per evitare che,durante la programmazione, questicircuiti possano “caricare” eccessi-vamente l’uscita del nostro disposi-tivo, è necessario prevedere dueresistenze di disaccoppiamento daalmeno 1 Kohm tra i pin del microe la restante parte del circuito. Aquesto punto sulla scheda dove è

montato il micro potremo prevede-re l’impiego di un connettore a 5poli (non bisogna dimenticare lamassa!) e di un flat-cable col qualeeffettuare la connessione col nostroprogrammatore. Siamo così passati dalla teoria allapratica: vediamo subito quali sonole fasi più significative del montag-gio del programmatore. Come sivede nelle illustrazioni, tutti i com-ponenti trovano posto su una baset-ta a doppia faccia con fori metalliz-zati il cui master è riportato a pagi-na 35 e 36. Questo progetto è dis-ponibile in scatola di montaggio percui quanti non dispongono dell’at-trezzatura necessaria per realizzareil C.S. potranno aggirare questoostacolo (piuttosto pesante dalmomento che per metallizzare i foriè necessario disporre di un bagnogalvanico) acquistando semplice-mente il kit. In questo caso, tra l’al-tro, la basetta fornita è anche seri-grafata per cui l’inserimento deivari componenti risulta molto piùsemplice. In ogni caso per primidovranno essere montati i compo-nenti a più basso profilo seguiti daicondensatori non polarizzati, dailed, dai pulsanti e dai semicondut-tori. Per ultimi montate gli zoccoli,i connettori, il quarzo, il pulsante edil deviatore SW5. Durante questafase verificate - prima di montarli -l’orientamento dei componenti

polarizzati e dei semiconduttori.Per le saldature va bene qualsiasisaldatore con potenza compresa tra20 e 50 watt dotato di una punta astilo piuttosto sottile. Ultimato cosìil cablaggio, e dopo aver datoun’ultima occhiata alla scheda, col-legate al plug di alimentazione unadattatore da rete in grado di forni-re una tensione non stabilizzatacompresa tra 12 e 15 volt; l’alimen-tatore deve essere in grado di ero-gare una corrente di almeno 300mA. Con un tester verificate che avalle del regolatore VR1 sia presen-te una tensione di 13,5 volt circa(valori compresi tra 12 e 14 voltvanno bene lo stesso) mentre a valledi VR2 dovrete misurare 5 voltesatti. Il led LD3 segnala che lascheda è alimentata. A questo puntotogliete alimentazione, controllateche il deviatore SW5 sia in posizio-ne Stand-by e collegate con un cavoseriale a 9 poli (non incrociati) ilprogrammatore al PC. Anche que-st’ultimo, durante questa operazio-ne, deve essere spento. Fatto ciòpotrete riaccendere programmatoree PC e caricare su quest’ultimo iprogrammi forniti a corredo del kit,il più importante dei quali è sicura-mente il software di programmazio-ne denominato PIC Programmer.Per quanto riguarda gli aspetti hard-ware della programmazione, laprima cosa da fare è inserire il

Elettronica In - maggio / giugno 2004

Page 7: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

Elettronica In - maggio / giugno 2004

La procedura di programmazione dei micro

Fig. 1

Fig. 2

Fig. 4

Fig. 5

Fig. 6

La procedura di programmazione di un microcontrollore ha sempre inizio con la scrittura del programmache può essere fatta mediante un word processor ASCII di qualsiasi tipo (ad esempio con NotePAD, com-preso nel pacchetto standard di Microsoft Windows, vedi Fig.1,); è anche possibile utilizzare il pacchetto disviluppo MPLAB di Microchip, che può essere scaricato dal sito www.microchip.com. Ultimata questa primafase, bisogna compilare il programma, ovvero convertire il listato che è stato scritto in un linguaggio com-prensibile in codice macchina. A tale scopo possiamo utilizzare il programma MPASMWIN.EXE presentenel CD fornito a corredo del kit (Fig. 2). Dalla schermata principale possiamo selezionare tutti i parametrinecessari per questa scopo:1) Selezionare il nome ed il percorso del programma sorgente;2) Selezionare il formato del codice macchina che si vuole generare (solitamente ‘HEXADEMICAL’);3) Spuntare questa opzione se si desidera che vengano controllati gli errori di ortografia delle variabili;4) Scegliere la tipologia di messaggi di errore che il programma deve generare (solitamente Error Only);5) Scegliere una tipologia di funzionamento per la funzione Macro Expansion (nell’impostazione ‘ON’ lemacro sono compilate nel file LIST - xxx.LIST);6) Selezionare la lunghezza (in byte) della parola. Nel nostro caso impostare sempre ‘INHX8M’: altre scel-te daranno luogo ad un codice macchina illeggibile o non funzionante.7) Selezionare i files che si vogliono generare in aggiunta al codice macchina HEX. Non selezionare mai leopzioni “Cross Reference” e “Object” in quanto incompatibili con questo programmatore.8) Selezionare il microprocessore utilizzato.9) Indicare la larghezza di colonna (numero di caratteri) nei files di testo generati.A questo punto è possibile cliccare su <ASSEMBLE> e se tutti i parametri sono corretti e non vi sono erro-ri nel codice sorgente appare la schermata di Figura 3. Il programma assembler genera i seguenti files:.HEX è il file che contiene i codici operativi da inviare al PIC tramite il programmatore. .LST è un file di testo in cui viene riportato il sorgente e la relativa traduzione in opcode. Non è utilizzabileper la programmazione del PIC ma è molto utile per verificare i processi di compilazione. .ERR contiene la lista degli errori di compilazione riscontrati ed il numero di linea all’interno del sorgente incui sono stati rilevati. .COD file del codice utilizzato unicamente nell’ambiente di programmazione.Solo il file .HEX viene utilizzato realmente per programmare il PIC. Vediamo come.Il codice macchina (file .HEX) viene memorizzato nel processore tramite il PC e la scheda di programma-zione utilizzando il software PROGPIC2.EXE. A tale scopo è necessario:- Collegare la scheda di programmazione al PC tramite la porta seriale libera tenendo presente che la lineaIRQ di questa porta seriale (IRQ 3 o 4) non deve essere utilizzata da un altro dispositivo (ad esempio daun modem interno).- Collegare l'alimentatore adatto e verificare che il led di alimentazione LD7 si attivi.- Lanciare il programma 'PROGPIC2, PIC programmer' e cliccare su 'FILE' -> 'OPEN' e selezionare il pro-gramma compilato (Hex file 8M) che si vuole programmare (Fig. 4).A questo punto, mediante la schermata riportata in Figura 5, è necessario controllare i vari parametri:1) Impostare il numero della porta seriale alla quale è collegato il programmatore.2) Spuntare per memorizzare il codice (normalmente ON).3) Spuntare per memorizzare i dati EEPROM (normalmente ON).4) Spuntare per memorizzare i parametri di configurazione (normalmente ON).5) Spuntare se si desidera cancellare completamente il micro prima di procedere con la scrittura (normal-mente ON).6) Spuntare per effettuare la programmazione in bassa tensione (Non selezionare: la nostra scheda utiliz-za una tensione di programmazione VPP di 13 V e non di 5 V).7) Selezionare il microcontrollore utilizzato. Durante le prime prove utilizzare il micro fornito a corredo dellascheda (un PIC16F627 o un PIC16F627A). Assicurarsi sempre di aver selezionato la sigla corretta.8) Utilizzare per le definizioni/configurazioni del microcontrollore se queste non sono già state definite nelprogramma sorgente (come di solito accade). A questo punto bisogna assicurarsi che il deviatore SW5 si trovi nella posizione centrale (standby); potre-mo quindi inserire il microcontrollore nello zoccolo adatto:- utilizzare lo zoccolo IC1 nel caso di dispositivi a 4+4 pin;- utilizzare lo zoccolo IC2 nel caso di dispositivi a 7+7 pin;- utilizzare lo zoccolo IC3 nel caso di dispositivi a 9+9 pin;- utilizzare lo zoccolo IC4 nel caso di dispositivi a 14+14 pin.Successivamente dovremo spostare il deviatore SW5 nella posizione PROG:il led LD9 inizierà a lampeg-giare segnalando che da questo momento non potremo spostare (inserire o togliere) il microcontrolloredallo zoccolo. Cliccando su WRITE il micro verrà programmato. Questo processo viene monitorato nellafinestra ACTIVITY ed il led LD8 (READ/WRITE) lampeggia durante tutta la fase di scrittura. Una volta ulti-mata la programmazione spostate SW5 in posizione centrale (STANDBY): solo allora sarà possibile rimuo-vere il micro o passare alla modalità di prova (vedere i pulsanti di prova ed i LED di diagnostica dal menuExperiments). Se il programma è stato scritto per essere utilizzato con le risorse presenti sulla scheda (pul-santi e led), è possibile testare il dispositivo programmato spostando SW5 nella posizione RUN.Vediamo ora, facendo riferimento alla Fig. 6, le funzioni corrispondenti ai vari comandi disponibili:1) Read all: questa funzione consente di richiamare il programma presente nel micro purché questo non siaprotetto (il codice macchina esadecimale viene salvato in un file di testo); i PIC per i quali il bit di protezio-ne è stato attivato possono solamente essere cancellati.2) Write: consente di programmare il micro. Ricordiamo che per utilizzare questa funzione è necessariomettere l’SW5 nella posizione PROG. Si può monitorare questo processo nel riquadro ACTIVITY. Il led LD8(READ/WRITE) lampeggia durante questa fase.3) Verify Code: permette di verificare se il micro è stato programmato correttamente. Questa operazionepuò essere effettuata esclusivamente se il micro non è protetto in lettura; ricordiamo anche che SW5 vaspostato nella posizione PROG.4) Data Window: permette all’utente di visualizzare e modificare i dati memorizzati nell’ EEPROM del micro.5) Speed: consente di modificare la velocità di programmazione adeguandola alle caratteristiche del PC uti-lizzato. Di solito va lasciata nella posizione NORMAL.6) Activity: indica il nome del file caricato in memoria utilizzato per la programmazione.7)Current File: permette di vedere quale indirizzo o area di indirizzi viene utilizzato dal programma per legge-re o scrivere.

Fig. 3

1 4

589

6 7

2

3

1

1

45

8

6

6

7

7

4 5

2

2

3

3

Page 8: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

Elettronica In - maggio / giugno 2004

La fase di programmazione

Menu 1

Menu 3

Menu 5

Menu 6

Menu 4 Fig. 1

Menu 2

Menu 7

Una volta scritto e compilato il programmae ricavato così il file .HEX, possiamo procedere con la programmazione fisica delmicro facendo uso della nostra scheda e delsoftware PROGPIC2.EXE di cui riportiamo inquesto box le principali caratteristiche.

micro nello zoccolo adatto e, senecessario, effettuare i ponticellirelativi al circuito di clock.Ovviamente andrà utilizzato lo zoc-colo adatto. Nel caso in cui ledimensioni del micro non sianocompatibili con gli zoccoli a dispo-sizione potremo sempre utilizzareuno zoccolo o una scheda esterna efare ricorso alla programmazionein-circuit. Per programmare ilmicro è necessario, prima di inviarei dati col PC, spostare il deviatoreSW5 in posizione PROG: questa

configurazione viene segnalata dal-l’accensione del led LD9. Scopo diquesto led è quello di avvisare cheil micro è pronto per la programma-zione e quindi non va rimosso seprima il deviatore non è stato ripor-tato in posizione Stand-by. Durantela programmazione vera e propria(o la lettura dei dati del micro), illed LD8 si illumina segnalandocivisivamente che è in corso la pro-grammazione: durante questa fase,dunque, il micro non va assoluta-mente rimosso. Per verificare il

firmware presente nel micro, ildeviatore SW5 va posto in posizio-ne RUN. In questo caso il dispositi-vo risulta alimentato con la tensio-ne di lavoro di 5 volt e sul pinMCLR viene applicato un livelloalto grazie alla resistenza R15 con-nessa anch’essa a + 5V. L’utilizzodei pulsanti e dei led disponibilisulla scheda per verificare il firm-ware contenuto nel microcontrollo-re ha senso unicamente qualorasiano state utilizzate (nel modo cor-retto) le porte alle quali questi com-

Page 9: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

T r a c c i a r a m e l a t o s a l d a t u r eT r a c c i a r a m e l a t o s a l d a t u r e

Master lato saldature utilizzato per realizzare il circuito stampato a doppia faccia e...

ponenti sono collegati. In altreparole se, ad esempio, vogliamofare lampeggiare un led ad unadeterminata velocità dobbiamo uti-lizzare la porta GP2 (pin 5) nel casodi micro a 8 pin, la porta RC0 (pin10) nel caso di dispositivo a 14 pin,la porta RB0 (pin 6) nei micro a 18pin e, infine, la porta RA0 (pin 2)nei chip a 28 pin. Solamente in que-sto modo, se il programma non pre-senta errori, vedremo lampeggiare

il led LD1. Analogamente sevogliamo che il nostro microcon-trollore legga il livello logico delpulsante SW1, il programma dovràutilizzare le porte GP5 (pin 2) oRC5 (pin 5) o RA0 (pin 17) o RB0(pin 21) in funzione del tipo dimicro utilizzato. Il software neces-sario per la compilazione dei pro-grammi e la programmazione deimicro viene fornito su CD unita-mente alla scatola di montaggio del

dispositivo. Il CD contiene anchenumerosi esempi applicativi, i data-sheet dei principali microcontrollo-ri Flash, un manuale d’uso interatti-vo in italiano e tutte le informazio-ne hardware/software sui PIC esulle procedure di programmazio-ne. A proposito di quest’ultimoargomento, nei box di pagina 34 e35 analizziamo in dettaglio tutte lefasi della programmazione, dallastesura del listato fino alla verifica

Elettronica In - maggio / giugno 2004

Collegamenti dei PIN di I/OIn tabella è riportata lanumerazione dei pin deivari zoccoli a cui sono

connessi i 4 pulsanti ed i 6led utilizzati per verificare il

funzionamento deiprogrammi più semplici.

A ciascun pin corrispondeovviamente una porta diI/O che varia a secondadello zoccolo preso in

considerazione.

Page 10: Elettronica In - maggio / giugno - futurashop.it · Specifiche tecniche: - Adatto per la programmazione di microcontrollori Microchip® FLASH PIC™; - Supporta 4 differenti formati:

Il progetto descritto in queste pagine è disponibile in scatola di montaggio (cod. K8048)al prezzo di 38,00 Euro. Il kit comprende tutti i componenti, la basetta serigrafata, tuttele minuterie, un PIC campione mod. PIC16F627 ed un CD con tutto il software neces-sario. Non sono compresi l’alimentatore da rete ed il cavo di connessione seriale al PC.Il programmatore è anche disponibile già montato e collaudato al prezzo di 52,00 Euro(codice VM111).

Il materiale va richiesto a: Futura Elettronica, V.le Kennedy 96, 20027 Rescaldina (MI)Tel: 0331-576139 ~ Fax: 0331-466686 ~ http://www.futuranet.it

MATERIALEPer iil

T r a c c i a r a m e l a t o c o m p o n e n t iT r a c c i a r a m e l a t o c o m p o n e n t i

...lato componenti della stessa basetta. Tutti i fori passanti debbono essere metallizzati.

del firmware implementato nelmicro.La procedura di programma-zione di un microcontrollore hasempre inizio con la scrittura delprogramma che può essere fattamediante un word processor ASCIIdi qualsiasi tipo, ad esempio conNotePAD, compreso nel pacchettostandard di Microsoft Windows; èanche possibile utilizzare il pac-chetto di sviluppo MPLAB di

Microchip, che può essere scaricatodal sito www.microchip.com.Ultimata questa prima fase, bisognacompilare il programma, ovveroconvertire il listato che è stato scrit-to in codice macchina. A tale scopopossiamo utilizzare il programmaMPASMWIN.EXE presente nelCD. Col file .HEX così ottenutopossiamo programmare il PIC uti-lizzando il software

PROGPIC2.EXE. Ricordiamo chela scatola di montaggio comprendeun PIC16F627 col quale sarà possi-bile effettuare le prime prove.Questo micro dispone di unamemoria programma di tipo Flashda 1Kbyte, 225 byte di RAM, 128byte di EEPROM nonché 16 portedi I/0.

Elettronica In - maggio / giugno 2004