I segnali in ICSP
In cosa consiste la connessione ICSP ?
Semplicemente si tratta di prevedere sul circuito stampato un semplice
connettore a 6 poli che porta i seguenti segnali:
-
Vpp
-
Vdd +V
-
Vss GND
-
ICSPDATA - PGD
-
ICSPCLK - PGC
-
PGM-spare
Nulla di più !
Non serve nient' altro che un semplice connettore ! E' solo 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.
Ovviamente ci sarà da seguire un minimo di cura per implementare
correttamente questo sistema così semplice e potente.
Vediamo i singoli segnali.
Vpp
-
E' la tensione di programmazione, di circa 13.5V per i PIC a 5V. Viene
collegata al pin MCLR.
Per i PIC a 3.3V, come 18FJ, 24H e 33F si utilizza una diversa gestione e
Vpp è un segnale digitale.
Questo è importante da considerare, in quanto non c'è una sola tensione
di programmazione per tutti i PIC, ma cambia a seconda delle famiglie e l'
applicazione di una Vpp elevata danneggerà un chip che richiede una
tensione minore. Occorre pertanto che il dispositivo di programmazione sia
aggiornato al modello di chip che si vuole programmare.
Vdd
-
E' l' alimentazione positiva del PIC. Alcuni tools di
programmazione/sviluppo, (ad esempio Real ICE) richiedono che la scheda
che supporta il PIC sia alimentata; altri, come i PICkit, sono in grado di
alimentare direttamente i dispositivi collegati e quindi non è richiesta
altra fonte di alimentazione, sia possono lavorare su schede con
alimentazione propria.
GND
-
La massa comune dell' alimentazione e dei segnali.
-
PGD
-
La linea di trasmissione dei dati seriali. Si tratta di una
comunicazione seriale sincrona, bi direzionale; il clock è generato dal
dispositivo programmatore. I dati sono validi al fronte di discesa
del clock.
Questa linea serve anche per lo scambio dati durante il debug.
PGC
-
La linea del clock che sincronizza lo scambio dei dati.
- L' illustrazione qui sotto schematizza la connessione tra PIC e
dispositivo di programmazione
Il dispositivo di programmazione, dipendente da un PC su cui gira il
software di controllo, può contenere un microcontroller e un generatore
della Vpp. Un firmware residente gestisce le varie funzioni.
PICkit e ICD implementano una struttura di questo genere.
Quali sono i pin di ICSP sul chip ?
Questo dipende dal chip. Se dispone del PORTB, in generale PGD e
PGC sono i bit 6 e 7 di questo port.
Per i chip più piccoli la situazione è varia e occorre consultare il
foglio dati.
Se non altro si trovano fisicamente in pin con posizioni analoghe, per cui
è possibile venire a capo della questione abbastanza rapidamente.
Ecco la posizione dei pin ICSP per alcuni chip comuni
Chip |
Pack |
PGC |
PGD
|
PGM |
Vpp
MCLR
|
ICSP |
ICD |
Port |
Pin |
Port |
Pin |
Port |
Pin |
Pin |
16F84
|
18
|
RB6 |
12 |
RB7
|
13
|
no |
4 |
Si |
No |
16F628
|
RB4 |
10 |
Si |
No |
16F88
|
RB3 |
9 |
Si |
Si |
18F1230 |
no |
Si |
Si |
16F690 |
20 |
RA1
|
18 |
RA0
|
19 |
no |
Si |
No |
16F676 |
14 |
12 |
13 |
no |
Si |
No |
18F2321
|
28
|
RB6
|
27
|
RB7
|
28
|
RB3
|
24
|
1 |
Si |
Si |
16F876 |
Si |
Si |
16F877 |
40
|
39 |
40 |
RB3
|
36 |
Si |
Si |
18F4321 |
Si |
Si |
12F675 |
8 |
GP1 |
6 |
GP0
|
7 |
no |
4 |
Si |
No |
10F206* |
8 |
GP1 |
4 |
GP0 |
5 |
no |
8 |
Si |
Si |
* I PIC10Fxxx sono componenti in SOT23 a 6 pin. Nel contenitore in DIP a
8 pin, hanno (chissà perchè) una piedinatura diversa dai PIC12Fxxx.
AVVERTENZA
-
Anche se in generale i PIC a 8-14 e 20 pin hanno i pin
ICSP in posizione analoga, come pure i 28-40 pin, altri chip possono avere
disposizioni differenti (ad esempio i PIC10Fxxx).
-
Non tutti i PIC hanno le stesse funzioni: tutti sono
programmabili HVP, anche se i più recenti non usano una tensione elevata;
alcuni sono programmabili anche LVP.
Alcuni chip hanno la funzione di debug integrata, altri no e richiedono un
adattatore esterno.
-
quindi, è più che mai necessario, affrontando un
nuovo componente, consultarne il foglio dati per verificare le possibilità
e le disponibilità.
|
Il programmatore per i chip PIC
In base a quanto detto, non serve assolutamente un hardware complesso per
programmare i PIC: basta uno dei tanti tools di Microchip, anche quelli più
economici, come i Pickit e un supporto fisico per il chip, da collegare in
ICSP.
Quindi:
Noi consigliamo vivamente di realizzare il nostro programmatore
, ultra semplice, ma realmente essenziale, facilmente
realizzabile in casa, economicissimo e sicuramente funzionante, da
abbinare con uno dei tools di Microchip, come i Pickit. |
|