Tutorials - PIC

 

ICSP-ICD


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.


 

   

 

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