Queste pagine sono state scritte principalmente come supporto al corso
Assembly & C, ma possono essere lette in ogni caso.
Abbiamo detto nell' introduzione,
che NON serve alcun programmatore particolare, dato che il PICkit, tra le altre
funzioni, svolge benissimo
questo lavoro, sia sotto controllo dell' ambiente di sviluppo MPLAB, sia stand
alone, con un package software opportuno.
Possiamo anche programmare il
PIC utilizzando un PICkit e il suo software di programmatore stand alone. Nel
caso del PICkit3 basta scaricarlo dal sito di Microchip. Altrettanto per il
PICkit2 e collegare il tool ad uno zoccolo come questo.
Ma se siamo nell' ambiente MPLAB, non occorre alcun software
addizionale.
Stiamo parlando di Pickit dato che, per il basso costo, è uno dei tools
Microchip più diffusi, ma, ovviamente, si possono usare anche gli altri tools,
come ICD o RealIce.
Però, pur essendo inferiore come prestazioni, Pickit offre un vantaggio,
cioè la possibilità di alimentare il circuito in prova, il che, per
piccole applicazioni, è veramente molto comodo.
Dalla barra del menù principale scegliamo Programmer->Select
Programmer
Le opzioni attive indicano i programmatori utilizzabili con il chip scelto,
mentre quelle non attive indicano i tool che non possono essere utilizzati.
Colleghiamo il PICkit3 ad un port USB del PC e selezioniamo PICkit3.
Nella finestra di Output apparirà un messaggio di conferma.
Il messaggio certifica che il PICkit è stato rilevato correttamente
PICkit 3 detected
Connecting to PICkit 3...
Running self test...
Self test completed
Firmware Suite Version...... 01.26.92
Firmware type..............Baseline
A cui si sovrappone una finestra Voltage Caution:il suo scopo
è quello di spingere l’ utente a verificare che la tensione impostata sia
adeguata al processore scelto.
Attenzione:
Applicando una tensione superiore a quella tollerata dal componente (per
alcuni PIC è di 3.6V) si rischia di danneggiare il componente |
OK per
confermare.
Anche se tutto è in ordine, nella finestra di Output apparirà
sempre l’avviso in rosso.
PICkit 3 detected
Connecting to PICkit 3...
Running self test...
Self test completed
Firmware Suite Version...... 01.26.92
Firmware type..............Baseline
PICkit 3 Connected.
PK3Err0045: You must connect to a target device to use PICkit 3.
Il messaggio in rosso dice
semplicemente che il Pickit3 non rileva un hardware collegato e questo può
dipendere da alcune cause:
Il primo caso è relativo a circuiti “fatti in
casa”, dove sono possibili collegamenti malfatti o instabili oppure su
breadboard, dove è possibile, soprattutto per articoli a basso costo, che i
contatti siano di qualità scadente o risultino danneggiati dall’ uso.
Del tutto improbabile se si stanno utilizzando demo board di marca.
In generale, dunque, il
messaggio deriva dal fatto che manca alimentazione al circuito su cui è posto
il microcontroller da programmare.
Non essendo alimentato il chip, il PICkit non riesce ad identificarlo.
La cosa si risolve
semplicemente in due modi:
-
alimentare il microcontroller
con un alimentatore adatto.
-
o, più semplicemente, facendolo
alimentare direttamente dal Pickit
Questa interessante
funzione del Pickit permette di non avere bisogno di alimentare il micro in
programmazione o anche un piccolo circuito di demo.
Ad esempio, se disponiamo di una piccola demo board come quelle di Microchip (Low
Pin count o simili) oppure delle nostre demo board o di un circuito assiepato su
una breadboard, il PICkit , collegato sulla presa ICSP funge sia da dispositivo
di debug (se il chip integra il motore ICD), sia da programmatore, sia da
alimentatore del circuito.
Il PICkit
può erogare almeno una trentina di mA (ma all’ atto pratico anche di
più) e quindi gestire l’ accensione di diversi LED, un display LCD e simili,
sostituendo un alimentatore esterno.
Se si utilizzano tools diversi dai PICkit va considerato che:
ICD e RealIce non dispongono della possibilità di
alimentare il target ed occorre in entrambi i casi disporre di una
alimentazione separata per il circuito target o il chip da programmare. |
La funzione di
alimentazione da parte del Pickit si ottiene agendo sul menù relativo al suo
settaggio. Premere il tasto Programmer e poi Settings
Da questa finestra è
possibile selezionare il programmatore, comandarlo, riconnetterlo e impostare
numerosi parametri di lavoro.
Nell’ immagine, non essendo stato compilato alcun oggetto e non risultando un
cip collegato al programmatore, la serie dei comandi specifici di programmazione
(Program, Verify, Read, ecc) risulta inattiva. Diventerà attiva una
volta riconosciuto un “target”, ovvero un chip collegato.
Premiamo Settings.
Apparirà una finestra di comando con vari folder.
Nella cartella Program
Memory, la scelta di default demanda al tool di programmazione le
modalità di azione durante la programmazione. E’ possibile anche una scelta
manuale dei parametri, ma, se non necessaria, è opportuno lasciare quella del
default.
Nelle caselle di scelta
attive è possibile anche scegliere anche la cancellazione della memoria prima
della nuova programmazione: questo evita che in un chip già utilizzato
rimangano “avanzi” non desiderati di programmazioni precedenti (ricordiamo
che la flash mantiene l’ informazione scritta fino a che non viene cancellata
e ri scritta).
E’ possibili anche escludere dalla programmazione un’ area specifica della
memoria.
Avvertenza: Non è opportuno
variare i parametri di default se non con la chiara idea di cosa si sta
facendo e perché. |
Noi proseguiamo
selezionando il folder Power. Si aprirà la finestra relativa, con
una casella di scelta Power target circuit from PICkit3 (o PICkit2),
normalmente disattivata, che andremo a confermare.
Osserviamo che c’è anche
un cursore Voltage che può essere manovrato per variare la
tensione applicata, il cui valore appare nella finestrella a destra.
In generale la tensione sarà di 5V, ma se il microcontroller o il progetto
richiedono una tensione minore, il valore corretto potrà essere impostato con
il cursore.
Applica<
consente di applicare le scelte e vederne i
risultati senza uscire dalla finestra di controllo.
Noi premiamo OK per confermare le scelte e proseguire. Si aprirà
ora una finestra Voltage Caution
di avviso uguale a quella già vista.
Il suo scopo è quello di spingere l’ utente a verificare che la tensione
impostata sia adeguata al processore scelto.
OK per confermare, poi OK per concludere.
|
Anche se tutto è in ordine, nella finestra di Output
apparirà sempre l’avviso in rosso.
Occorre effettuare una riconnessione del tool.
La ri-connessione spinge MPLAB a ricercare nuovamente il tool di
programmazione e a verificare che il target sia collegato.
Tornare sul tasto Programmer
e scegliere Reconnect.
La ri-connessione viene anticipata dal messaggio di avviso già
visto, relativo alle tensioni al chip, e che si ripete ogni volta in cui
si agisce su un parametro che mette a rischio il processore. Clickando su OK si conferma la scelta e la finestra di
Output indicherà la riuscita connessione.
Ora il Pickit alimenta il circuito.
|
Sulla barra superiore dei comandi a icone apparirà
una nuova lista, relativa al comando del programmatore.
Il significato delle icone
è evidenziato automaticamente portando il mouse sull’ icona stessa.
Se è stata selezionata
l’opzione di alimentare il circuito dal Pickit e viene premuto il tasto di
tensione al dispositivo, il colore passa dal verde al grigio e la tensione è
sospesa. Anche gli altri tasti sono disattivati dato che manca l’
alimentazione.
Premendo nuovamente il
tasto ON/OFF la tensione sarà ria-applicata e i tasti torneranno attivi.
I comandi relativi al reset
vanno intesi in questo modo: la connessione ICSP-ICD utilizza tre pin del
processore (ICSPDAT, ICSPCLK e Vpp). Nell’ emulazione ICD sono necessari
solamente i primi due, ma durante la programmazione occorre anche la Vpp.
Il pin Vpp è condiviso con la funzione MCLR, ma questo segnale deve essere
rilasciato per poter far funzionare il microcontroller con il programma
caricato. I tasti di comando del reset consento di comandarlo a livello basso
oppure di rilasciarlo.
Le ultime versioni di MPLAB fanno si che, una volta completata la
programmazione, il pin MCLR/Vpp venga rilasciato in modo da permettere il
funzionamento del micro e l’ eventuale azione di un segnale sullo stesso pin
(pulsante o altro).
Gli stessi comandi della barra ad icone sono accessibili anche dal menù a
tendina che si apre dal tasto Programmer della riga superiore di
comandi.
La descrizione di alcune altre possibiltà del programmatore in-circuit le
trovate nel documento che descrive la creazione di un progetto di MPLAB.
Questo specifico messaggio indica che, con molte probabilità, la memoria del
chip contiene già una precedente programmazione. In tal caso basta agire sul
tasto di cancellazione
ottenendo un messaggio:
Durante le operazioni una serie di quadretti mobili appare nella barra alla
base della finestra principale, per indicare che il sistema sta lavorando.
Va detto che tutte le operazioni, a tutta prima complicate, dopo una
brevissimo tempo di esercizio diventano routine quasi automatica e non
richiedono che una minima parte del tempo di realizzazione del programma
funzionante.