ICSP
Dunque, per programmare un PIC basta connettere al
dispositivo di programmazione le linee sopra indicate. E questo può essere
fatto anche se il chip NON viene estratto dalla scheda su cui deve lavorare e
messo nello zoccolo del programmatore (cosa indispensabile per gli smd).
Infatti, basterà che questi pin siano resi disponibili all' esterno
della scheda attraverso un semplice connettore unificato. Questo, se
realizzato correttamente, permette di programmare il PIC anche senza
toglierlo dalla scheda su cui è montato. Anche senza la necessità di un
dispositivo di programmazione con ZIF.
Questa connessione viene chiamata ICSP - In
Circuit Serial Programming.
Sfruttando il modulo integrato di questa comunicazione
seriale ad alta velocità, in diversi PIC è stata implementata una ulteriore circuiteria ausiliaria che ha lo scopo di supportare la funzione di debug
on-board, direttamente attraverso le risorse del componente e senza
aggiungere altri moduli esterni.
Questa funzione è denominata ICD (In Circuit Debugger).
Attraverso l' ICD è possibile avanzare passo-passo le istruzioni,
eseguire il programma con breakpoint, visualizzare i registri di memoria e
modificarli, visualizzare gli SFR e modificarli, il tutto senza rimuovere
il chip dalla sua posizione sulla scheda.
Microchip ha sfruttato gli stessi pin della
programmazione per effettuare una connessione seriale tra il sistema di
sviluppo (un PC con installato l' ambiente di sviluppo, ad esempio MPLAB) e il
microcontroller: così si può parlare di una connessione ICSP/ICD
unica.
Dunque, implementando sulla scheda una connessione ICSP/ICD
avremo la possibilità di programmare il PIC senza spostarlo e, per i modelli che ne sono dotati, potremo
anche effettuare un debug completo del firmware, sempre senza muovere il
chip.
-
Tenere ben presente che anche i dispositivi di
programmazione che utilizzano zoccoli o ZIF impegnano solamente i pin
di alimentazione del PIC e quelli dei segnali di programmazione.
-
Durante la programmazione non occorre che il
chip sia fornito di oscillatore o altri componenti esterni.
-
I pin utilizzati per programmare il chip, prima e dopo
l' operazione di programmazione sono rilasciati alle loro funzioni
originarie. La programmazione HVP con ICSP non sottrae all' uso
nessun pin.
Per contro, la programmazione LVP, sempre possibile attraverso la
stessa connessione, sottrae all' uso un pin, chiamato PGM.
-
La funzione ICD utilizza gli stessi pin
ICSPDATA-ICSPCLK che sono usati in programmazione e li impegna per tutto il
tempo del debug, dove non possono essere utilizzati per altri scopi. PErò,
al termine del debug, i pin sono rilasciati alla destinazione prevista dal
programma
-
ICSP/ICD non rende inutili i dispositivi di
programmazione esterni, in quanto essi saranno sempre necessari per la
produzione, dove occorre ripetere la programmazione su vari chip, o anche su
molti per volta (gang programmer), indipendentemente dal sistema di sviluppo
del software.
Ma certamente rende il dispositivo di programmazione del tipo visto all'
inizio, superfluo per la sperimentazione, i prototipi, l' istruzione, ovvero
dove si stanno sviluppando programmi o si fanno modifiche e aggiornamenti
del firmware, che è pratico poter inserire rapidamente senza levare e
rimettere il chip sulla scheda.
|
Vediamo più dettagli.
|