La programmazione dei PIC
Molti sono abituati a considerare il "programmatore", ovvero il
dispositivo per programmare il chip, come simile ad uno di questi:
Si tratta di schede o apparti più o meno complessi,
dotati di vistosi zoccoli, ZIF nei modelli più pregiati, normali zoccoli nei
modelli più economici.
Il chip deve essere inserito nel programmatore, che sarà collegato ad un PC dal
quale, sotto il controllo di un apposito programma, riceve il file HEX
che andrà fissato nella memoria.
Ma ben pochi sanno che gli zoccoli di questi dispositivi
di programmazione servono più che altro a sostenere il chip, in quanto:
I microcontroller PIC vengono programmati,
qualunque
sia la tipologia del dispositivo di programmazione,
attraverso una
comunicazione seriale con il chip, che si svolge utilizzando due o tre pin
|
In particolare, si possono individuare due modalità di
programmazione: Il modo HVP (High Voltage
Programming) che utilizza i pin:
-
ISCPDATA - PGD
-
ICSPCLK - PGC
-
Vpp
e il modo LVP (Low Voltage Programming) in cui non
è usato Vpp, ma un pin definito PGM.
Occorre poi che il chip sia alimentato (Vss/Vdd), ma non
occorre nè che abbia un oscillatore esterno, nè che i pin non coinvolti
nella programmazione siano collegati in qualche modo particolare.
Dunque, ad esempio, sui 28 pin di un 16F876,
solamente
-
pin 28 - PGD
-
pin 27 - PGC
-
pin 1 - Vpp
-
pin 20 - Vdd
-
pin 8-19 - Vss
saranno quelli necessari alla programmazione.
|
|
e sui 40 pin di un 16F877
-
pin 40 -
PGD
-
pin 39
- PGC
-
pin 1
- Vpp
-
pin 11-32 - Vdd
-
pin 12-31 - Vss
ovvero 7 pin su 40.
E questo vale praticamente per tutti i
package: solamente pochi pin sono necessari a stabilire una
comunicazione seriale sincrona dati + clock tra chip e dispositivo di
programmazione.
|
|
In sostanza, non ha importanza l' interfaccia tra PC e
programmatore: può essere seriale, parallela, USB, ma in ogni caso la programmazione avviene
sempre per via seriale, essendo PGD la linea dati e
PGC la linea di clock.
Ovviamente occorre anche alimentare il chip e per questo
è consigliato, per motivi pratici, utilizzare tutti i pin Vdd-Vss,
anche se teoricamente ne basterebbe una coppia.
Va anche considerato che la tensione di alimentazione del chip può essere
fornita da una fonte diversa da quella del programmatore, con cui però avrà
la massa/Vss in comune.
Inoltre, come detto, HVP impiega il pin
MCLR/Vpp e LVP
richiede il pin PGM libero.
Il totale minimo quindi è di 5 pin
indispensabili.
|