Tips & Tricks - PIC

 

PIC 8-14-20 pin


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.
 
 


Copyright © afg . Tutti i diritti riservati.
Aggiornato il 13/01/16 .