PIC sovrapponibili.
Forse non tutti sanno che i progettisti di Microchip hanno fatto in modo
che i PIC a 8 bit in package DIP a 8, 14 e 20 pin sono sovrapponibili sullo
stesso zoccolo.
- La posizione delle alimentazioni Vss e Vdd è identica per tutti e tre i
packages .
- La posizione dei collegamenti ICSP è identica per tutti e tre i
packages .
- La posizione dei PORT è identica per tutti e tre i packages .
Ovviamente, il package a 14 pin disporrà solamente di PORTA5:0 e PORTC5:0,
mentre quello a 20 pin avrà PORTA5:0, PORTC7:0 e PORTB7:4.
Nel package a 8 pin, esiste un solo registro di I/O digitale, chiamato GPIO e i port sono nominati GPx.
Ovviamente, chip complessi avranno più periferiche integrate ed ogni pin
potrà assumere diverse funzioni, oltre a quelle base di I/O digitale. In ogni
caso, i GPIO sono nelle stesse posizioni e anche alcune altre funzioni
basilari hanno
la stessa corrispondenza con il pin.
Ecco la lista dei componenti attuali a 8/14/20 pin.
Pin |
Famiglia |
Modello |
Note |
8 |
Baseline |
10F200/202/204/206
10F220/222 |
PIC originariamente a 6 pin.
Connessioni differenti nel DIP.
Non sovrapponibili. |
Enh. Mid |
10F320 |
Baseline |
12F508
12F509
12F510
12F519 |
Sovrapponibili |
Mid |
12F609
12F615
12F617
12F629
12F635
12F675
12F683
12F752 |
Sovrapponibili |
Enh. Mid |
12F1501
12LF1522
12F1822
12F1840 |
Sovrapponibili con limitazioni |
14 |
Baseline |
16F505/506
16F526/527
16F610
16F616 |
Sovrapponibili |
Mid |
16F630
16F636
16F676
16F684
16F688 |
Sovrapponibili |
Enh. Mid |
16F1454/1455 USB
16F1503
16F1823/1824/1825 |
Sovrapponibili con limitazioni |
20 |
Baseline |
16F527
16F631 |
Sovrapponibili |
Mid |
16F677
16F685
16F687
16F689/690
16F720/721
16F785 |
Sovrapponibili |
Enh. Mid |
16F1459 USB
16F1507/1508/1509
16F1828/1829 USB |
Sovrapponibili con limitazioni |
18F |
18F14K22/K50
18F13K22
18F13K50 |
Sovrapponibili |
Ecco le connessioni principali pin-funzione per i chip a 14 e 20 pin
Pin |
AN |
Comp |
CCP |
USART |
MSSP |
Base |
Note |
RA0 |
AN0 |
C1IN+ |
|
|
|
ICSPDAT |
16f527 : opamp
16F631 : 7 AN, no serial, no CCP
16F685 : no serial
16F677: no CCP
16F687/689 : no CCP
16F690 : all
18F1xK22 : all
|
RA1 |
AN1 |
C12IN0- |
|
|
|
ICSPCLK |
RA2 |
AN2 |
C1OUT |
|
|
|
|
RA3 |
|
|
|
|
|
VPP |
RA4 |
AN3 |
|
|
|
|
OSC2 |
RA5 |
|
|
|
|
|
OSC1 |
RC0 |
AN4 |
C2+ |
|
|
|
|
RC1 |
AN5 |
C12IN1- |
|
|
|
|
RC2 |
AN6 |
C12IN2- |
P1D |
|
|
|
RC3 |
AN7 |
C12IN3- |
P1C |
|
|
|
RC4 |
|
C2OUT |
P1B |
|
|
|
RC5 |
|
|
P1A |
|
|
|
RC6 |
|
|
|
|
SS
|
|
RC7 |
|
|
|
|
SDO
|
|
RB4 |
AN10 |
|
|
|
SDI/SDA
|
|
RB5 |
AN11 |
|
|
RX |
|
|
RB6 |
|
|
|
|
SCK/SCL
|
|
RB7 |
|
|
|
TX |
|
|
Alcune eccezioni:
- PIC12Fxxxx a 8 pin hanno collegamenti differenti verso i moduli funzione interni
e i PIC dotati di USB hanno alcuni pin dedicati a questa funzione.
- I PIC10F in contenitore a 8 pin, per qualche ragione, NON hanno le stesse
connessioni degli altri chip a 8 pin.
Non sono sovrapponibili nello stesso zoccolo.
Il problema dei nomi.
I PIC a 8 bit, a 8/14/20 pin sono intercambiabili nell' hardware
come abbiamo visto qui sopra. Le famiglie interessate sono Baseline, Midrange,
Enhanced Midrange e PIC18F.
Le regole generali sono queste:
-
PIC a 8 pin: sono disponibili 6 I/O raccolti in un array
chiamato GPIO. I singoli pin sono nominati da GP0 a GP5.
-
PIC a 14 pin: sono disponibili 12 I/O raccolti in due array
da 6 elementi ciascuno, denominati PORTA e PORTC.
I singoli pin sono, rispettivamente, RA0-5 e RC0-5.
-
I PIC a 20 pin hanno disponibili 18 I/O, raccolti in tre
array. Questi sono chiamati PORTA (6 pin da RA0 a RA5), PORTB (6 pin da RB4
a RB7) e PORTC (8 pin da RC0 a RC7).
Questo vale per Midrange, Enhanced Midrange e PIC18F.
Purtroppo,
per i Baseline, pur essendo identici i rapporti tra pin e funzioni fondamentali,
nei chip a 14 pin la situazione dei nomi è diversa: sono sempre disponibili 12
I/O raccolti in due array da 6 elementi ciascuno, ma questi sono denominati
PORTB e PORTC.
Questa situazione può generare problemi a chi non è al corrente di questa
"anomalia".
Per chiarire meglio, riportiamo una tabella:
DIP20 |
DIP 14 |
DIP14
Baseline |
DIP 8 |
pinout |
DIP 8 |
DIP14
Baseline |
DIP 14 |
DIP20 |
Vdd |
Vdd |
Vdd |
Vdd |
|
Vss |
Vss |
Vss |
Vss |
RA5 |
RA5 |
RB5 |
GP5 |
GP0 |
RB0 |
RA0 |
RA0 |
RA4 |
RA4 |
RB4 |
GP4 |
GP1 |
RB1 |
RA1 |
RA1 |
RA3 |
RA3 |
RB3 |
GP3 |
GP2 |
RB2 |
RA2 |
RA2 |
RC5 |
RC5 |
RC5 |
|
|
RC0 |
RC0 |
RC0 |
RC4 |
RC4 |
RC4 |
|
|
RC1 |
RC1 |
RC1 |
RC3 |
RC3 |
RC3 |
|
|
RC2 |
RC2 |
RC2 |
RC6 |
|
|
|
|
|
|
RB4 |
RC7 |
|
|
|
|
|
|
RB5 |
RB7 |
|
|
|
|
|
|
RB6 |
In sostanza, ci troviamo con la seguente equivalenza:
DIP 8
tutti |
DIP 14
Baseline |
DIP 14
altri |
DIP 20
tutti |
GP0 |
RB0 |
RA0 |
RA0 |
GP1 |
RB1 |
RA1 |
RA1 |
GP2 |
RB2 |
RA2 |
RA2 |
GP3 |
RB3 |
RA3 |
RA3 |
GP4 |
RB4 |
RA4 |
RA4 |
GP5 |
RB5 |
RA5 |
RA5 |
|
RC0 |
RC0 |
RC0 |
|
RC1 |
RC1 |
RC1 |
|
RC2 |
RC2 |
RC2 |
|
RC3 |
RC3 |
RC3 |
|
RC4 |
RC4 |
RC4 |
|
RC5 |
RC5 |
RC5 |
|
|
|
RB4 |
|
|
|
RB5 |
|
|
|
RB6 |
|
|
|
RB7 |
La confusione nelle label riguarda l'array PORTA, che per
i Baseline a 14 pin è denominato invece PORTB, avendo però le stesse
caratteristiche. Da notare che questo PORTB dei Baseline non ha nulla a che fare
con il PORTB delle altre famiglie.
Niente di male, ma, sfortunatamente, occorre utilizzare le label adeguate nella
stesura dei sorgenti. Pertanto, nel passare programmi da o ai chip Baseline a 14
pin occorrerà verificare questo aspetto.