PIC - Progetti

 

 

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:

  1. un "programmatore" è essenzialmente costituito da un qualcosa che collego al PC
  2. questo qualcosa ha un supporto per ospitare il PIC (o più PIC in alternativa)
  3. 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
  4. 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:

  1. 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
     
  2. possono alimentare direttamente il chip durante la programmazione, in quanto prelevano energia dalla connessione USB
     
  3. 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:

 


 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 14/10/11 .