Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

16
voti

Il programmatore PICkit2 (parte 1)

Indice

Premessa

Questo articolo vuole essere d' aiuto a tutti coloro che sono alla ricerca di un programmatore rapido ed affidabile per scaricare il codice sviluppato sui microcontrollori PIC che supportano la programmazione ICSP (In Circuit Serial Programming). Il vantaggio di questo tipo di programmazione è quello di rendere possibile la scrittura, lettura e verifica del PIC direttamente dalla scheda sulla quale è installato. Non vi sarà quindi la necessità di rimuovere il microcontrollore (per inserirlo nell' apposito zoccolo del programmatore) ogni volta che sia richiesta una modifica al programma. Un altro considerevole vantaggio offerto da questo sistema è quello di poter fornire l' alimentazione necessaria al funzionamento dell' intero circuito direttamente dalla porta USB del pc. Per poter utilizzare questa funzione è necessario che il circuito in esame possa lavorare alla stessa tensione di alimentazione del microcontrollore e comunque a tensioni inferiori o uguali ai 5V dello standard USB.

Utilizzando questa modalità di sviluppo si ottiene un' apprezzabile aumento di velocità nelle fasi di correzione e test che potranno essere eseguite direttamente dal computer operando attraverso l' interfaccia di gestione del PICkit2 ed il compilatore. Ricordo che Il PICkit2 Starter Kit può essere acquistato in rete su tanti siti di materiale elettronico, (segnalo in particolare Futura elettronica dove si può ordinare on-line ad un prezzo inferiore ai 60 euro più spese di spedizione, qui potete trovare il link diretto al sito) e contiene tutto il materiale necessario per lo sviluppo di un programma. Insieme all' hardware vengono forniti due cd, uno contenente MPLAB nell' altro invece si trovano il programma e tutti i documenti inerenti al funzionamento ed all' utilizzo di questo dispositivo.

Fatte le dovute premesse vediamo passo passo quali sono le modalità per utilizzare questo valido strumento.

Installazione

La prima operazione è quella relativa all' installazione del software di gestione del PICkit2, si prenda quindi il cd PICKIT starter kit , dopo averlo inserito nel lettore si aprirà questa schermata:

Pagina iniziale cd pickit2 starter kit.jpg

Pagina iniziale cd pickit2 starter kit.jpg

Selezionando la seconda voce del menu: INSTALLS comparirà una nuova pagina:

Selezione installer.jpg

Selezione installer.jpg

Cliccando la voce Install PICkit™2 Programmer Application si aprirà una nuova finestra:

File da eseguire.jpg

File da eseguire.jpg

Cliccando su ESEGUI Windows ci avvertirà che non è possibile verificare l' attendibilità dell' autore del programma:

Avviso protezione.jpg

Avviso protezione.jpg

cliccare nuovamente il tasto ESEGUI:

Next.jpg

Next.jpg

Premere quindi il tasto NEXT:

cartella installazione.jpg

cartella installazione.jpg

Viene ora richiesta la cartella d' installazione, di default è impostato il percorso C:\Programmi\Microchip\PICkit 2 v2\ , se si è d' accordo confermare con il tasto NEXT altrimenti digitare il nuovo indirizzo e confermare in seguito con NEXT. La selezione sottostante riguarda la possibilità di utilizzo del programma da parte di tutti gli utenti (Everyone) oppure soltanto da parte dell' utente che ha condotto l' installazione (Just Me). Questa risulterà essere la schermata seguente:

ancora next.jpg

ancora next.jpg

Confermare nuovamente con NEXT:

I agree.jpg

I agree.jpg

Spuntare la selezione I AGREE che indica che vengono accettate le condizioni di utilizzo del programma imposte dalla Microchip, soltanto successivamente verrà attivata la possibilità di proseguire. Premere quindi il tasto NEXT. A questo punto partirà l' installazione del software:

Installazione.jpg

Installazione.jpg

Dopo alcuni istanti si aprirà la finestra conclusiva che ci confermerà che l' installazione è riuscita:

fine installazione.jpg

fine installazione.jpg

Premere quindi il tasto CLOSE. Giunti a questo punto abbiamo concluso l' installazione del software. Sul desktop verrà automaticamente creato il collegamento per aprire il programma. Prima di lanciarlo collegare (attraverso l' apposito cavo USB fornito nella confezione) il programmatore al computer altrimenti la schermata iniziale del software ci comunicherà l' errore del mancato riconoscimento del dispositivo hardware.


Il software

In seguito verranno trattate le principali operazioni da eseguire per portare a termine con successo la programmazione del microcontrollore. Si è cercato di dare un' ordine cronologico alle procedure in modo da rendere più semplice la comprensione di eventuali errori, seguendo il paragrafo passo passo non dovrebbe essere difficile riuscire a mettere in comunicazione il PC con il PIC; da ricordare però che questa è la fase più delicata e spesso il risultato non è immediato. Le cause del mancato collegamento hanno solitamente una duplice origine e sono da ricercare sia sul datasheet relativo al PIC che su quello relativo al PICkit2 (per i datasheet vedere il paragrafo LINK UTILI presente nella seconda parte di questo articolo). Nella trattazione si farà riferimento al PIC18F24J10 che verrà preso d' esempio per la varie spiegazioni. Vediamo ora come utilizzare il software:


Collegamento PC - Programmatore

La prima operazione da compiere è quella di collegare via USB il programmatore al computer, dopo aver fatto ciò si può lanciare il programma. La schermata principale è piuttosto intuitiva, questo è quello che apparirà se sono state eseguite correttamente le precedenti operazioni :

Collegamento riuscito.jpg

Collegamento riuscito.jpg

All' interno del riquadro giallo si può notare la scritta PICkit 2 found and connected tale dicitura indica appunto che il programmatore è stato riconosciuto ed è pronto per l' utilizzo. Nel caso invece appaia la schermata sottostante viene indicato che il computer non riesce a comunicare con il programmatore. La dicitura all' interno del riquadro rosso PICkit 2 not found. Check USB connections and use Tools -> Check Communication to retry avverte che il programmatore non è stato trovato.

Collegamento non riuscito.jpg

Collegamento non riuscito.jpg

Le cause di questo errore possono essere molteplici, le più probabili sono due: la prima è che il cavo USB non sia correttamente inserito nelle prese, la seconda invece riguarda il danneggiamento del firmware sul PIC ospitato a bordo del programmatore (un PIC 18F2550). Accertarsi quindi della regolarità delle connessioni USB e rilanciare il collegamento attraverso la funzione CHECK COMMUNICATION che si trova nel menu TOOLS come mostra la figura sottostante:

check communication.jpg

check communication.jpg

Se il problema rimane consiglio la lettura del paragrafo "IL PROGRAMMATORE NON VIENE RICONOSCIUTO DAL PC" presente nella seconda parte di questo articolo.


Selezione del PIC da programmare

Nel caso in cui il PICkit2 sia stato riconosciuto si può passare all' operazione successiva. Questa fase solitamente è piuttosto critica in quanto il PIC deve già essere collegato alle varie fonti necessarie alla programmazione quali PICkit2 e tensione d' alimentazione. Rimandando ad un altro paragrafo l' approfondimento dello schema elettrico vediamo ora come procedere per identificare il PIC sul quale vogliamo lavorare.


La sequenza di operazioni da eseguire per connettersi è la seguente:


1- chiudere l' applicazione PICkit2
2- collegare il programmatore PICkit2 all' apposita presa creata sulla scheda (per approfondimenti vedere il paragrafo "SCHEMA DI COLLEGAMENTO" presente nella seconda parte dell' articolo)
3- lanciare l' applicazione PICkit2


Così facendo il programmatore dovrebbe connettersi istantaneamente al microcontrollore, purtroppo in questa fase possono però verificarsi vari errori inerenti esclusivamente ai collegamenti del PIC utilizzato. Riporterò quindi soltanto un' esempio relativo al PIC18F24J10, per le altre tipologie di errori controllare il datasheet relativo al componente in uso alla ricerca della soluzione .
In seguito verrà indicata una semplice procedura per farsi dare dal software la maggior quantità di informazioni possibili.


Se rilanciando l' applicazione PICkit2 qualcosa non dovesse essere connesso correttamente il programma prima di avviarsi ci indicherà attraverso una finestra simile a quella sottostante l' eventuale errore:

Voltage level error.jpg

Voltage level error.jpg

Cliccando su OK si aprirà il programma che indica che il PICKIT2 è connesso ma il PIC non è stato riconosciuto; la conferma di quanto detto ci viene data dalla dicitura device (in alto a sinistra) che indica per l' appunto: No Device Found.

Dedice not found.jpg

Dedice not found.jpg

Per ottenere informazioni più dettagliate in merito all' errore bisogna selezionare nel menu Device Family la famiglia alla quale appartiene il microcontrollore in uso in questo caso PIC18F_J_ come si vede nell' immagine successiva:

Selezione famiglia.jpg

Selezione famiglia.jpg

Così facendo il software ci indicherà l' esatto motivo della mancata comunicazione, nello specifico indica No device detected. Ensure proper capacitance on VDDCORE/VCAP pin. Per risolvere bisogna consultare il datasheet del microcontrollore cercando quale funzione venga svolta da tale pin, una volta capito come connetterlo apportare le modifiche necessarie e rilanciare la comunicazione.

Errore specifico.jpg

Errore specifico.jpg

A questo punto se il pic è correttamente collegato il programma riconoscerà automaticamente il microcontrollore in uso ed aprirà la seguente finestra:

PIC device found.jpg

PIC device found.jpg

L' informazione più importante è come sempre quella all' interno del riquadro giallo, questa volta ci informa che sia il PICkit2 che il PIC sono stati riconosciuti e pronti per lavorare. In alto a sinistra (dentro al riquadro verde) si può notare la sigla del microcontrollore in uso in questo caso il PIC18F24J10, mentre a destra (dentro al riquadro azzurro) viene indicata la tensione di alimentazione (prelevata dalla porta usb del computer) che verrà automaticamente settata, in questo caso risulta 3,6V .


Gestione ed invio del firmware

A questo punto viene il bello, con il PICkit2 collegato al microcontrollore saremo in grado di lavorare sul firmware senza che siano richieste altre operazioni a livello hardware ovvero saremo capaci di caricare, cancellare e riscrivere il programma sul pic semplicemente usando il software ..... vediamo come.


Per caricare sul PICkit2 il codice sviluppato dal compilatore basterà selezionare nel menu File la voce Import Hex come mostrato nell' immagine sottostante e successivamente selezionare tramite il browser di Windows il file (in formato .HEX) interessato.

Importare file.jpg

Importare file.jpg

Una volta caricato il codice sul PICkit2 verremo avvisati dal messaggio contenuto all' interno del riquadro a sfondo giallo: HEX file succesfully imported se l' operazione è andata a buon fine altrimenti il riquadro avrà sfondo rosso e verrà indicata la tipologia d' errore che ha impedito il corretto svolgersi dell' operazione.
Nel caso in cui il file sia stato importato correttamente potremo notare che le allocazioni di memoria visualizzate sotto la voce Program Memory (e se presenti quelle riguardanti lo spazio dedicato alla EEPROM Data) precedentemente impostate di default a FFFF sono state aggiornate e riportano ora il codice caricato. Non rimane altro da fare che inviare al microcontrollore tale codice, per fare ciò sarà sufficiente premere il pulsante Write (cerchiato in verde nell' immagine seguente).

Programmare il PIC.jpg

Programmare il PIC.jpg

Una volta premuto il tasto Write il firmware verrà inviato al microcontrollore, alla fine dell' operazione se tutto è andato correttamente (ed è spuntata nel menu Programmer la selezione Verify on Write) verremo avvisati che la programmazione è stata terminata con successo (come mostrato nell' immagine sottostante); all' interno del riquadro a sfondo verde si potrà notare la dicitura: Programming Succesfully che ci indica appunto l' esito positivo ed il termine dell' operazione di programmazione.

Programmazione riuscita.jpg

Programmazione riuscita.jpg

Infine vediamo a cosa servono gli altri pulsanti anche se la loro interpretazione è praticamente immediata:


Read  : legge e copia nella finestra Program memory del PICkit2 il firmware presente sul microcontrollore collegato (eeprom compresa).
Write  : scrive sul microcontrollore collegato il codice caricato nella finestra Program memory e quello nella finestra EEPROM Data del PICkit2.
Verify  : verifica che il codice precedentemente caricato sul microcontrollore non contenga errori.
Erase  : cancella senza alcuna possibilità di ripristino il codice (dati eeprom compresi) presente sul microcontrollore.
Blank Check  : controlla che non vi siano dati memorizzati nelle allocazioni di memoria o sulla eeprom.


Come testare il firmware

Un' altro vantaggio non trascurabile offerto dal PICkit2 e più in generale dalla programmazione ICSP è quello di rendere possibile l' alimentazione del circuito da testare (e quindi anche la verifica del firmware caricato sul PIC) direttamente attraverso la porta USB del PC. Bisogna però fare attenzione ai parametri di alimentazione richiesti dal circuito, in generale non è opportuno superare i 100mA di corrente assorbita ed il voltaggio non può essere superiore a quello di alimentazione richiesto (e settato automaticamente) dal microcontrollore in uso. Questo sistema si presta quindi all' analisi del funzionamento del programma attraverso pulsanti, led, display a led, display lcd, oscilloscopio e tutti i dispositivi a basso assorbimento. Per chiarire riporto l' esempio di un circuito da me utilizzato per generare un' onda quadra in controfase su due coppie di pin del microcontrollore, in particolare si è potuto lavorare sulla frequenza di lavoro per cercare quella massima raggiungibile dal PIC, come indicatori sono stati utilizzati due led bicolore a due terminali:

Foto applicazione.JPG

Foto applicazione.JPG


Vediamo quindi come procedere per utilizzare l' alimentazione fornita dal PICkit2. Per far ciò si utilizzano semplicemente le due caselle relative alla VDD PICkit2 cioè quelle interne al riquadro verde dell' immagine successiva:

VDD PICkit2.jpg

VDD PICkit2.jpg

Come si può vedere le due caselle sono On e /MCLR. La prima serve per alimentare il PIC attraverso il pin di alimentazione (VDD) mentre la seconda varia lo stato logco del pin MCLR portandolo a livello logico 0 quando spuntata. Per testare il firmware sarà quindi sufficiente spuntare la casella On ed il PIC risulterà alimentato al valore di tensione indicato a fianco (in questo caso 3,6V).

La funzione Enable Code Protect

Questa particolare funzione ha lo scopo di proteggere da lettura e scrittura il PIC programmato, viene solitamente usata nel caso in cui si voglia impedire a terzi di copiare il firmware. Per settare la protezione del codice bisogna selezionare nel menu Tools l' opzione Enable Code Protect come mostrato nell' immagine sottostante:

Enable code protect.jpg

Enable code protect.jpg

Selezionando questa funzione sulla schermata del PICkit2 comparirà in alto a destra (sotto la dicitura Configuration) una nota in rosso: Code Protect .

Code protect.jpg

Code protect.jpg

Tale nota serve per indicare che la protezione del codice è attiva ed in seguito ad un' eventuale scrittura il microcontrollore potrà essere utilizzato soltanto per svolgere il programma caricato. Non sarà più possibile modificare o leggere nulla nemmeno da parte di chi ha eseguito la programmazione protetta; per questo motivo tale opzione deve essere utilizzata con cautela e soltanto quando si ha la certezza che il firmware funzioni regolarmente in ogni sua parte.


Conclusioni (momentanee)

Questa è la prima parte dell' articolo relativo al PICkit2, successivamente verrà scritta una seconda parte che tratterà altri importanti aspetti di questo programmatore, i paragrafi principali riguarderanno:


- Aggiornamento software e firmware PICKIT2
- Schemi di collegamento generali e relativi al PIC18F24J10
- Disegni PCB per interfacciamento tra PIC18F24J10 e breadboard
- Malfunzionamento, il PICkit2 non viene riconosciuto dal PC
- Link utili
- Altro


Faccio notare che tale articolo è stato scritto soprattutto per chi si avvicina al mondo della programmazione dei PIC, sottolineo che il PICkit2 è estremamente vantaggioso rispetto ad altri programmatori proprio perché facilita le manovre riguardanti il test del firmware; in pochi secondi si può aggiornare il codice, caricarlo e testarlo senza che siano richieste operazioni hardware. Questa particolarità anche se a prima vista potrebbe sembrare poco importante rende invece molto più veloce e "divertente" la fase di approccio ai microcontrollori consentendo a mio avviso un migliore e più completo apprendimento.


Allego il link al manuale d' uso del PICkit2 dove si possono trovare tante altre informazioni e lo schema di collegamento al PIC.


Se qualcuno avesse la necessità di informazioni relative a questi paragrafi prima della pubblicazione della seconda parte potremmo discuterne sul forum PIC - Periferal Interface Controller nella sezione Nozioni generali.


Sono ben accetti commenti atti al miglioramento dell' articolo riguardanti la revisione o l' ampliamento di quanto scritto !


Ciao e grazie per la lettura.


David

8

Commenti e note

Inserisci un commento

di ,

Ciao Davidde, volevo chiederti dove e finita la guida parte2 del PicKit!!!! Non la hai più terminata?? Sarebbe stata interessante averla tutta!! Grazie

Rispondi

di mimmo70,

Scusa David, ho fatto come hai scritto tu con "code protect" ma nulla, non protegge nulla, perchè poi ho salvato il file .hex sulla scrivania e ripreso dopo, pero' il file non è protetto, come mai ?

Rispondi

di ,

Vi ringrazio tutti per i complimenti, mi hanno fatto molto piacere! Riguado all' offerta non c'è che dire: veramente sensazionale, meno della metà di quello che l' ho pagato io....!Ciao.David

Rispondi

di ,

Complimenti per la guida, dettagliata e utile. Come contributo, vorrei segnalarti che RS-Components ha in catalogo un'offerta straordinaria per il PicKit2. Basta andare sul sito e mettere "PicKit2" nella ricerca, oppure andare direttamente a questo link: http://it.rs-online.com/web/search/searchBrowseAction.html?method=searchProducts&searchTerm=pickit2&x=24&y=15

Rispondi

di ,

Ciao, io non ho mai usato il PICKIT1 quindi non so darti indicazioni, purtroppo in rete si trova veramente poco in merito a questi programmatori, l' unica via d' uscita è consultare il relativo datasheet (http://www.megachip.ru/pdf/MCRCH/DV164101.pdf) che però è completamente in inglese e tra l' altro abbastanza tecnico. Altrimenti fatti sostituire il PICKIT1 con il PICKIT2 e segui questo tutorial che completerò durante le ferie natalizie. Ciao e in bocca al lupo! David

Rispondi

di Louis,

Ragazzi io ho acquistato da poco una scheda pickit 1. Cambia molto dalla pickit 2? Sono agli inizi, mi servirebbe un manuale come questo in italiano. Potete aiutarmi? grazie

Rispondi

di ,

Una guida meticolosa di sicura utilità per chi si avventura per passione o per lavoro nel mondo dei PIC. I lettori che sicuramente apprezzeranno questa prima parte, si augurano di vedere al piu' presto gli approfondimenti della seconda.

Rispondi

di ,

David, complimenti. Spero che questa tua nota (e quella che verrà) aiuti nel fare chiarezza anche sull'importanza di avere un programmatore/debugger originale. Ciao. Paolo.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.