ICD
ICD (In Circuit Debug) è un modulo integrato nei PIC che
permette di effettuare un debug senza richiedere hardware speciale.
Con debug si intende la possibilità di seguire passo
passo lo svolgersi delle istruzioni del programma, l' arresto del programma
con breakpoint, l' accesso ai registri di memoria e la possibilità di
modificarli, l' accesso agli SFR con la possibilità di modificarli, ecc.
Questo permette di essere in diretto contatto con l'
hardware e il firmware del sistema in sviluppo, correggere errori di logica e
di comando, verificare il funzionamento di quanto collegato ai pin.
Il supporto è dato da uno dei tools economici come i
PICkit o gli ICD oppure anche da strumenti più sofisticati come il REAL ICE,
che comunicano con il processore attraverso due pin, in via seriale sincrona
(dati + clock).
Qualunque sia la tipologia del chip, il
Costruttore ha previsto di utilizzare gli stessi pin della programmazione; di
conseguenza basta un solo connettore comune, installato sulla scheda, per
debuggare e programmare senza bisogno di altro che di uno dei tools, tra cui
ce ne sono di estrememente econom ici (PICkit)..
Per ICD serviranno
-
ISCPDATA - PGD
-
ICSPCLK - PGC
Questi pin possono essere resi disponibili all' esterno
della scheda attraverso un semplice connettore unificato. Questo, se
realizzato correttamente, permette ii debug del programma senza togliere il
chip dalla scheda su cui è montato (indispensabile per gli smd).
Questa connessione viene chiamata ICD - In Circuit
Serial Programming, ed esendo in comune con ICSP, si denomina anche ICSP-ICD.
Inoltre, in diversi PIC è stata implementata una
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.
-
Non tutti i PIC dispongono di questo modulo, la cui
implementazione aumenta il costo del componente; di conseguenza è possibile
trovare chip che ne sono privi perchè previsti per produzione di massa,
dove il costo del componente diventa sensibile. Questo va
verificato consultando il foglio dati.
-
Per questi componenti Microchip ha una serie di
adattatori (headers) che permettono lo sviluppo.
-
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
|
Vediamo i dettagli.
L' hardware di ICD
E' lo stesso identico di quello descritto per ICSP: un connettore a 6 poli
che mette in comunicazione il dispositivo di sviluppo con il chip sulla sua
scheda.
- Vpp - non utilizzato
- Vdd +V
- Vss GND
- ICSPDATA - PGD
- ICSPCLK - PGC
- PGM - non utilizzato
Nulla di più !
Non serve nient' altro che un semplice connettore !
Più semplice di così: solo un connettore comune è sufficiente per cambiare
totalmente il modo di lavorare.
E questo si può fare sia su breadboard che sul circuito stampato o su millefori, mentre è di default sulle board di valutazione e di sviluppo di
Microchip e praticamente di tutti i costruttori terzi.
Valgono le stesse indicazioni date per ICSP.
PGM e Vpp non vengono usati in ICD.
GND deve essere la massa comune.
Vdd può essere usata per alimentare il circuito sotto test attraverso i
tools che possono fornire tensione, come i PICkit. Altrimenti sarà necessario
alimentare la scheda separatamente e la connessione Vdd non sarà usata.
Il software che controlla il debug è incorporato
in un ambiente di sviluppo; quello di Microchip è MPLAB IDE ed è disponibile
gratuitamente in download dal sito del Costruttore.
|