I Packages
Le pagine seguenti ci informano delle possibili versioni
meccaniche in cui il chip può essere ordinato : DIP 28 o QFN28 o SSOP28 per i
"piccoli" e DIP 40 o QFN44 o TQFP44 per i "grossi". Le
ultime pagine del foglio dati (dalla 367 in avanti) informano chi è
interessato sulle dimensioni meccaniche dei vari packages.
A scopo di istruzione, è evidente che una breadboard o una scheda di sviluppo
sono più pratiche se dotate di un chip nel classico DIP, che può essere
rimosso senza problemi dallo zoccolo e sostituito con un altro per diverse
esperienze.
Dunque, una selezione del chip ideale per l' applicazione che
vogliamo sviluppare va fatta considerando le caratteristiche del chip, la sua
disponibilità di memoria e periferiche, le dimensioni del package.
Alla fine del Data Sheet sono riportate una serie di pagine
con le dimensioni meccaniche dei vari packages.
Nei Tutorial PIC esiste una pagina che tratta in modo più dettagliato i
package.
PINOUT del PIC18F2321
Nelle pagine 2, 3 e 4 del foglio dati sono riportate
anche le silohuettes (pinout) dei vari chip della famiglia PIC18F4321.
Confrontando più chip tra di loro (non solo questa famiglia,
ma in generale la produzione di Microchip) è possibile riscontare
(con piacere) che
sono compatibili tra di loro a livello di
pin,
ovvero che
allo stesso pin, per diversi processori, corrisponde la stessa funzione base.
E questo è fondamentale per la possibilità di sostituire un chip con un'
altro senza cambiare la base hardware.
E questo vale anche per la compatibilità
tra PIC16 e PIC18 : a pari package, sono pin to pin compatibili. Nulla osta al
pensionare il vecchio e glorioso 16F876 e mettere al suo posto il più
brillante 18F2321 (o un' altro 28 pin...).
Questa possibilità, a cui si aggiunge i costo minore dei componenti 18F
rispetto a quelli più datati, rende ancora più interessante la sostituzione.
Come esempio, la tabella seguente riporta le assegnazioni dei pin di due
modelli comuni, PIC16F877 e PIC18F4321: le differenze principali
consistono in una più ampia disponibilità di funzioni da parte del PIC18.
Non utilizzandole, la compatibilità hardware è completa.
In rosso sono
evidenziate le differenze.
|
PIC16F877 |
|
PIC18F4321 |
PIN
|
Funzione |
|
Funzione |
1 |
MCLR/VPP |
|
MCLR/VPP/RE3 |
2 |
RA0/AN0 |
RA0/AN0 |
3 |
RA1/AN1 |
RA1/AN1 |
4 |
RA2/AN2/VREF- |
RA2/AN2/VREF-/CVREF |
5 |
RA3/AN3/VREF+ |
RA3/AN3/VREF+ |
6 |
RA4/T0CKI |
RA4/T0CKI/C1OUT |
7 |
RA5/AN4/SS |
RA5/AN4/SS/HLVDIN/C2OUT |
8 |
RE0/RD/AN5 |
RE0/RD/AN5 |
9 |
RE1/WR/AN6 |
RE1/WR/AN6 |
10 |
RE2/CS/AN7 |
RE2/CS/AN7 |
11 |
VDD |
VDD |
12 |
VSS |
VSS |
13 |
OSC1/CLKI |
OSC1/CLKI/RA7 |
14 |
OSC2/CLKO |
OSC2/CLKO/RA6 |
15 |
RC0/T1OSO/T1CKI |
RC0/T1OSO/T13CKI |
16 |
RC1/T1OSI/CCP2 |
RC1/T1OSI/CCP2 |
17 |
RC2/CCP1 |
RC2/CCP1/P1A |
18 |
RC3/SCK/SCL |
RC3/SCK/SCL |
19 |
RD0/PSP0 |
RD0/PSP0 |
20 |
RD1/PSP1 |
RD1/PSP1 |
21 |
RD2/PSP2 |
RD2/PSP2 |
22 |
RD3/PSP3 |
RD3/PSP3 |
23 |
RC4/SDI/SDA |
RC4/SDI/SDA |
24 |
RC5/SDO |
RC5/SDO |
25 |
RC6/TX/CK |
RC6/TX/CK |
26 |
RC7/RX/DT |
RC7/RX/DT |
27 |
RD4/PSP4 |
RD4/PSP4 |
28 |
RD5/PSP5 |
RD5/PSP5/P1B |
29 |
RD6/PSP6 |
RD6/PSP6/P1C |
30 |
RD7/PSP7 |
RD7/PSP7/P1D |
31 |
VSS |
VSS |
32 |
VDD |
VDD |
33 |
RB0/INT |
RB0/INT0/FLT0/AN12 |
34 |
RB1 |
RB1/INT1/AN10 |
35 |
RB2 |
RB2/INT2/AN8 |
36 |
RB3/PGM |
RB3/AN9/CCP2 |
37 |
RB4 |
RB4/KBI0/AN11 |
38 |
RB5 |
RB5/KBI1/PGM |
39 |
RB6/PGC |
RB6/KBI2/PGC |
40 |
RB7/PGD |
RB7/KBI3/PGD |
Stessa cosa per PIC16F876 e il nostro PIC18F2321 nel package a 28 pin :
|
PIC16F876 |
|
PIC18F2321 |
PIN
|
Funzione |
|
Funzione |
1 |
MCLR/VPP |
MCLR/VPP/RE3 |
2 |
RA0/AN0 |
RA0/AN0 |
3 |
RA1/AN1 |
RA1/AN1 |
4 |
RA2/AN2/VREF- |
RA2/AN2/VREF-/CVREF |
5 |
RA3/AN3/VREF+ |
RA3/AN3/VREF+ |
6 |
RA4/T0CKI- |
RA4/T0CKI/C1OUT |
7 |
RA5/AN4/SS- |
RA5/AN4/SS/HLVDIN/C2OUT |
8 |
Vss |
Vss |
9 |
OSC1/CLKI |
OSC1/CLKI/RA7 |
10 |
OSC2/CLKO |
OSC2/CLKO/RA6 |
11 |
RC0/T1OSO/T1CKI |
RC0/T1OSO/T13CKI |
12 |
RC1/T1OSI/CCP2 |
RC1/T1OSI/CCP2 |
13 |
RC2/CCP1 |
RC2/CCP1 |
14 |
RC3/SCK/SCL |
RC3/SCK/SCL |
15 |
RC4/SDI/SDA |
RC4/SDI/SDA |
16 |
RC5/SDO |
RC5/SDO |
17 |
RC6/TX/CK |
RC6/TX/CK |
18 |
RC7/RX/DT |
RC7/RX/DT |
19 |
Vss |
Vss |
20 |
Vdd |
Vdd |
21 |
RB0/INT |
RB0/INT0/FLT0/AN12 |
22 |
RB1 |
RB1/INT1/AN10 |
23 |
RB2 |
RB2/INT2/AN8 |
24 |
RB3/PGM |
RB3/AN9/CCP2 |
25 |
RB4 |
RB4/KBI0/AN11 |
26 |
RB5 |
RB5/KBI1/PGM |
27 |
RB6/PGC |
RB6/KBI2/PGC |
28 |
RB7/PGD |
RB7/KBI3/PGD |
Quindi, componenti come 16F74,77, 870, 871, 874, 876, 877
possono essere sostituiti pin-to-pin nell' hardware dai più recenti e performanti
18F442, 452, 4520, 4220, 4320, 2320, 2520, 2321, ecc senza particolari
cambiamenti al circuito stampato.
Analoga situazione si ha per i package a 44 pin per montaggio
superficiale.
Avvertenza importante:
Alcuni PIC18F con caratteristiche particolari possono avere pin con diverse
possibilità rispetto a quelle riportate nelle tabelle precedenti e la
compatibilità pin-to-pin va, come ogni cosa, valutato "cum grano salis".
Perchè se è pur vero che a livello base il pinout è lo stesso, ci sono da
considerare due punti :
-
alcuni PIC dispongono di periferiche speciali, come l'
USB
e questo fa si che alcuni pin siano dedicati a questa funzione. Ad esempi,
confrontando il pinout di 18F2321 e di 18F2550, troviamo una completa
analogia di tutti i pin, ad eccezione del pin 14, che nel 2321 ha solita
funzione RC3/SCK/SCL, mentre nei modelli dotati di USB ha la sola funzione di
Vuss.
|
|
|
- In secondo luogo, i PIC18 hanno un numero maggiore di periferiche
integrate, come è rilevabile dalle tabelle precedenti, e quindi una più
ampia possibilità di impostazione dei pin. Nel caso di un
"trapianto" di PIC18 su scheda PIC16, sarà necessario fare si che
il software mantenga ai pin le compatibilità volute se
questo non avviene per default.
- Va notato che nella famiglia PIC18F esistono componenti a 64, 80 e 100
pin che non hanno equivalenti tra i PIC16 e che per ora non esistono PIC18F a 6, 8 o 14 pin , mentre ce ne sono vari modelli
a 18 e 20 pin.
|
Comunque, nella stragrande maggioranza dei casi
si può sostituire un
vecchio PIC16 con un più recente PIC18F
senza modificare l' hardware e il
circuito stampato.
Le
modifiche interesseranno solamente il sorgente del programma. E vedremo che
queste non saranno poi così drammatiche.
Anzi, programmare in Assembly i 18 è molto più semplice che per i mid range.
Mentre per quanto riguarda il C gli enhanced offrono un supporto decisamente
migliore dei mid-range.
Il foglio dati procede poi con l' indice del contenuto, a pagina 6 (Table
of Contents).
Ma questo serve solamente per una
versione cartacea, in quanto, come abbiamo visto, per quella elettronica c'è
un indice "elettronico".
Ma
quello che ci può interessare è la nota a page 6, dove il costruttore invita a
tenersi
aggiornati su eventuali nuove release del documento e, sopratutto, a consultare
gli Errata, che, solitamente sconosciuti, possono diventare indispensabili per
uscire da situazioni inaspettate.
Inoltre viene dato il suggerimento di verificare l' esistenza
di Errata, di scaricarli e consultarli, come abbiamo già detto in più punti.
Per ultimo, una registrazione sul sito del costruttore
consente di essere informati via WEB delle novità.
Per chi è interessato è una possibilità da non scartare.
|