Un programmatore per PIC
"diverso"
|
"Ancora l' ennesimo programmatore !!!??"
E invece no. Perchè non serve !
Con la connessione ICSP/ICD
possiamo programmare il PIC direttamente on-circuit e un dispositivo di
programmazione esterno proprio non serve.
O meglio, a volte può essere comodo disporre di un
programmatore, ad esempio quando dobbiamo programmare una manciata di
processori uguali oppure non è comodo farlo on-board.
Allora dobbiamo realizzare o acquistare uno dei tanti
e vituperati programmatori ?
La risposta è ancora no, perchè sfruttando ICSP
possiamo programmare qualsiasi PIC senza un hardware speciale. Semplicemente
usiamo uno dei tools Microchip
(PICkit, ICD, Real ICE) che hanno anche la funzione di
programmatori.
ICSP
Il primo punto che riguarda il programmatore sembra essere l' hardware.
Sappiamo che un programmatore per PIC viene interfacciato al PC, dove
risiede il programma di gestione, in tre modi:
- collegamento alla porta seriale RS-232
- collegamento alla porta parallela
- collegamento alla porta USB
In ogni caso, qualsiasi sia l' interfaccia usata,
- la connessione con il PC viene convertita
in un collegamento clock + dati a livello TTL e connesso al PIC come ISCP
- la gestione della programmazione richiede
un apposito software che giri sul PC
|
Un "programmatore" non è degno del
suo nome se non ha almeno uno ZIF (Zero Force Inserction socket), che,
sicuramente, se utilizzato di frequente, non ha niente a che spartire con i
normali zoccoli per integrati.
ma troviamo utilizzati anche zoccoli ordinari, sopratutto se si vuole
risparmiare al massimo e se si usa raramente il dispositivo.
Anche qui, basta fare un brevissimo giro sul WEB per trovare migliaia di diverse
realizzazioni.
Ma dovrebbe essere ora chiaro che, per qualsiasi PIC, da 6 a 100 pin :
solamente i pin PGD, PGC e Vpp (assieme alle
alimentazioni) saranno quelli utilizzati per la programmazione.
Gli altri non partecipano
minimamente all' operazione ! |
In sostanza, dunque, l' hardware reale per programmare il PIC è
semplicemente limitato alla possibilità di accedere ai pin PGD, PGC e Vpp e
alle alimentazioni. Non serve nient' altro.
Il software
E' indubbio che occorra un programma
di controllo del programmatore per poter trasferire il file oggetto dal PC
al PIC.
E questa parte di solito sembra essere secondaria all' hardware. Ma non è
così.
Come diceva un Tale, "senza il software, l' hardware è solo un
mucchietto di componenti senza vita!".
E il software del programmatore deve poter gestire i vari dispositivi,
che sono in continua evoluzione con l' uscita di nuovi modelli ogni breve tempo.
Questo programma è una parte chiave del sistema di programmazione: come in tutte le realizzazioni dove sono contenuti microprocessori, l'
hardware senza un software di comando è materia morta.
Occorre quindi che questo software faccia proprio quello per cui è previsto e
al meglio, oltre ad essere aggiornato, seguendo in tempo reale
la continua evoluzione dei
prodotti.
Va detto che esistono iniziative open sources, come IC-PROG
o WINPIC800
che possono garantire una certa sicurezza di continuità, anche se, la loro
gestione è lasciata al volontariato. E a volte una comunità sul WEB può operare con
decisione e serietà maggiori di quelle di una company.
Essere o non essere....
Il problema, però, posto all' inizio è questo: ma serve
veramente un programmatore ? Ovvero, dobbiamo dunque costruire uno dei tanti schemi
o kit disponibili ?
Da quanto visto finora possiamo trarre alcune
conclusioni:
- un "programmatore" è
essenzialmente costituito da un qualcosa che collego al PC
- questo qualcosa ha un supporto per ospitare
il PIC (o più PIC in alternativa)
- questo qualcosa non fa altro che trasformare i
segnali provenienti dal PC nei livelli necessari a PGD, PGC e Vpp ed applicarli al PIC secondo le specifiche di ICSP
- questo qualcosa richiede un software di
gestione
|
Certamente posso con successo replicare uno
dei tanti schemi su USB (visto che le connessioni seriale e parallela sono
problematiche). Oppure posso acquistare uno dei tanti kit.
Ma questo qualcosa esiste anche già fatto ed
è semplicemente uno dei tanti tools di Microchip, a partire dai Pickit.
Le parti 1, 3, 4 le ho già
disponibili ad un costo che può essere anche inferiore a quello della
realizzazione home made. Basta aggiungerci la parte 2 e il gioco è fatto.
Parentesi: perchè togli il gusto del
fatelodavoi ?
Non si sta togliendo questo gusto, ma semplicemente facendo una considerazione:
Se dovete zappare un terreno, acquistate una buona zappa o vi auto costruite una
zappa genere età del bronzo ?
Ovvero: il programmatore è un accessorio che deve essere affidabile; non si
vede con gli occhi o si misura con il tester se il programma caricato è
corretto. Non si vede se il programmatore ha abusato del chip con tensioni e
temporizzazioni inadeguate. Neanche un hobbista penserebbe di costruirsi da se
una zappa; è dal neolitico che questo non accade. E se poi la differenza di costo tra la zappa neolitica e quella commerciale è a
favore di quest' ultima, cade qualunque discussione.
Una auto costruzione sarà sempre possibile, ma sarà fonte di insegnamento solo
quando si sarà in grado di capire esattamente cosa si sta facendo. Altrimenti è solo un
eseguire più o meno bene uno schema altrui. E nel momento in cui si
presentassero problemi non si sarebbe in grado di intervenire.
Inoltre, la differenza di costo tra un PICkit e un altro oggetto commerciale
è, non poche volte, a favore del PICkit; e anche il do-it-yourself, magari di
uno dei cloni, a fare bene i conti, non costa tanto meno.
E, a meno di una bravura abbastanza non comune, il prodotto finale è molto
meno maneggevole e funzionale dell' originale.
Chiusa parentesi.
Dunque:
- dato che Microchip ha reso gli accessi ai
pin PGC, PGD e Vpp uno "standard" ben documentato
è possibile realizzare uno zoccolo adatto ad
ogni chip. Ma, volendo, anche uno zoccolo adatto a più chip.
E a questo aggiungere una elettronica più o
meno complessa, auto costruita secondo uno dei tanti schemi ?
- visto che esiste già questa elettronica,
nei Pickit, che sono proprio degli accessi ICSP
perchè non associare le due cose ?
Buone idee come il progetto GTP-USB
partono dal presupposto di auto costruire ogni cosa, ma non si accorgono che
qualunque elettronica si costruisca per interfacciare il PIC al PC si tratta
solo, sempre e comunque di una connessione ICSP. E investire tempo, risorse e
genialità per rifare quello che già c'è può non essere sempre l' idea
migliore.
Anche perchè i Pickit non servono solo come ICSP, ma anche come ICD, cosa che un normale programmatore non fa.
E come si fa a lavorare sugli embedded senza un debugger ?
Alcuni schemi
Se osserviamo l' assegnazione dei pin per l' accesso ICSP/ICD, notiamo che
Microchip ha operato in modo tale da realizzare una certa compatibilità e,
sicuramente, la stessa posizione fisica dei pin nei vari packages.
Questo ci permette di realizzare dei socket in cui inserire qualsiasi chip
in un certo package DIL ed essere certi che le connessioni ICSP saranno
corrette.
Ecco allora alcuni schemi per collegare i vari
PIC all' ICSP del Pickit.
Su tutte le schede è stato aggiunto, rispetto
alla pura connessione ICSP, un LED con la sua resistenza di limitazione, tra Vdd
e Vss per visualizzare la situazione. Il consiglio è di usare LED a bassa
corrente (< 1 mA), ma se non si ritiene utile può essere omesso, assieme
alla resistenza.
Un condensatore da 0.1uF, sempre tra Vdd e Vss annulla eventuali problemi sull'
alimentazione (questo, invece, è meglio lasciarlo...).
Gli zoccoli è meglio siano con contatti a tulipano se si pensa di utilizzarli
intensamente.
Ed è semplicissimo crearsene altre per ogni tipo di package.
Ma possiamo raccogliere in un solo modulo le varie soluzioni: la posizione
dei pin di accesso è tale per cui un solo zoccolo è in grado di supportare
chip a 8/14/18 e 20 pin.
Ecco, dunque, un "general purpose" per i PIC
8-14-18-20 pin e su cui trovano posto anche i 10F a 8 pin, con il suo immancabile
ZIF: costa,
ma rende il lavoro molto più semplice.
Tutti i chip a 8/14/18/20 pin hanno il pin 1
allineato verso la leva dello Zif. Il jumper è aperto.
I PIC10F in DIP 8 hanno il pin 1 allineato con l' estremo opposto dello
zoccolo e il jumper va chiuso.
Tutti i circuiti sono alimentati direttamente
dal Pickit e si innestano direttamente sul suo connettore.
Ricordarsi di selezionare nel menu di
configurazione (Programmer->Setting->Power del menu principale di MPLAB)
l' alimentazione della scheda da parte del Pickit.
Ecco come inserire i chip nello zoccolo a seconda del loro package
I chip a 20/18/14 e 8 pin hanno il pin 1 allineato con il pin 1 dello
zoccolo. Il ponticello sul circuito stampato è aperto.
I chip PIC10F a 8 pin sono allineati sull' estremo opposto e il ponticello va
chiuso.
Realizzazioni
Tutti i circuiti proposti sono singola faccia
e facilmente realizzabili anche in casa.
Non volendo fare un cs (che è però la soluzione ideale), si potrà utilizzare
semplicemente delle connessioni punto-a-punto su una millefori.
LED e relativa resistenza sono opzionali (usare LED da 1 mA o meno).
I condensatori, 0.1uF, hanno funzione di stabilizzare l' alimentazione.
Il jumper serve a selezionare la Vpp nel caso dei PIC10F
Package pin |
jumper |
8-14-18-20 |
aperto |
PIC10F 8 pin |
chiuso |
Se non si pensa di usare i 10F a 8 pin, si può eliminare.
Il connettore a 6 poli, passo 2.54 (1/10") è del tipo dorato e
piegato a 90 ° per innestarsi direttamente nei PICkit senza alcun adattatore.
Come funziona
Niente di più semplice: basta conficcare il connettore del moduletto nel
tools di sviluppo.
Stiamo parlando principalmente dei PICkit per due motivi:
- possono operare come programmatori sia dall' ambiente di sviluppo MPLAB
IDE, sia come stand alone attraverso un programma di gestione messo a
disposizione da Microchip
- possono alimentare direttamente il chip durante la programmazione, in
quanto prelevano energia dalla connessione USB
- Inoltre possono operare come programmer-to-go, ovvero separati
dal PC, dopo aver caricato da questo il firmware da trasferire.
Queste caratteristiche li rendo ideali per questa applicazione, anche se
sarà possibile utilizzare anche gli altri tools.
Il programma per l' uso dei PICkit come programmatori è scaricabile
gratuitamente dal sito di Microchip
nelle aree dedicate ai singoli prodotti.
Si tratta di applicazioni del tutto chiare e facili da utilizzare. In ogni
caso, per chi avesse necessità di un tutorial a riguardo in italiano, lo
trova qui
Altre informazioni sui PICkit:
Su PICkit2:
e su PICkit3:
|