Tutorials - PIC 

 

PIC 16F5xx


I PIC a 14-20 pin - 16F5xx

I PIC16F505/506/526/527 appartengono alla famiglia Baseline e sono caratterizzati da package a 14 o 20 pin, con le seguenti caratteristiche:

PIC Memoria Stack
level
Timer
8 bit
Comp. ADC
8 bit
OSCint
MHz
Set
istruzioni
Packages
Progam EEP. RAM
16F505 1k - 72 2 1 - - 4 33

14pin DFN, MSOP, PDIP
SOIC 150mil

16F506 1k - 67 2 1 2 1 4
16F526 1k 64 67 2 1 2 1 4/8
16F527 1k 64 68 2 1 2 1 4/8

20pin PDIP, QFN0,SOIC 300mil, SSOP 208mil

Caratteristiche comuni sono quelle di tutti i Baseline :

  • sono tutti operativi nel range 2.2-5.V 
  • hanno un limitato numero di timer e altre periferiche speciali
  • hanno oscillatore interno, per ridurre il numero di componenti esterni
  • hanno costi molto contenuti
  • non dispongono di moduli di comunicazione
  • non hanno integrato il motore di debug

Per quanto ci interessa, ovvero anche per una applicazione didattica o hobbistica, questi  piccoli PIC sono oggetti molto interessanti:

  • sono essenziali, semplici da utilizzare
  • hanno un set di istruzioni ridotto
  • hanno le periferiche base, I/O e timer, e quindi si possono fare parecchie cose
  • hanno oscillatore interno e non richiedono alcun componente esterno (cristallo, condensatori, resistenze).
  • hanno consumo molto basso e funzionano in una ampia gamma di tensioni, adatti quindi per una alimentazione a batteria
  • costano pochissimo, il che non guasta

Inoltre:

  • hanno lo stesso pin out e quindi sono compatibili a livello hardware per quello che riguarda le risorse comuni
  • hanno la stessa struttura interna per cui sono compatibili anche come software per quello che riguarda le risorse comuni. Un passaggio da un componente ad un' altro può limitarsi a pochissime modifiche del sorgente.

Sono quindi molto adatti per iniziare a fare i primi passi nel mondo dei PIC.

Esistono, poi, alcuni Baseline con package a 18, 28 e 40 pin, ovvero:

PIC Memoria Stack
level
Timer
8 bit
Comp. ADC
8 bit
OSCint
MHz
Set
istruzioni
Packages
Progam EEP. RAM
16F54 512 - 25 2 1 - - - 33

18pin PDIP
SOIC 300mil

16F57 2k - 72 2 1 - - -

28pin PDIP
SOIC 300mil

16F570 2k 132 64 2 1 2 1 8 oem
16F59 2k - 134 2 1 - - -

40pin PDIP
44pin TOFP

16F707 8k   368 1 1   1 16

Poco dotati di periferiche, dispongono invece di molti I/O digitali a causa del package con molti pin. Non sono di uso molto comune nella didattica o presso gli hobbisti, ma li citiamo ugualmente in quanto è possibile trovare sul WEB applicazioni ed articoli che li riguardano.


Queste pagine

Certamente la limitata quantità delle risorse di memoria, stack e istruzioni dei Baseline fa si che siano oggetti in cui è più indicato un approccio in Assembly che non in un linguaggio superiore, anche se è comunque possibile implementare programmi in C. 
Comunque, hanno un set di istruzioni molto ridotto, che è facile da apprendere anche per chi non conosce l' Assembly.

Li utilizzeremo in vari esempi applicativi proprio perchè riteniamo sia fondamentale che un programmatore di microcontroller abbia una ragionevole conoscenza dell' Assembly e delle risorse hardware del componente che sta usando, altrimenti non avrà alcuna possibilità di maneggiarlo decentemente. E i PIC12F5xx sono ideali per questo.
Non vuol dire, però, che il programmatore in C debba rinunciare o diventare un guru dell' Assembly: rispetto ai Baseline minori (10F2xx) questi PIC a 14/20 pin hanno una discreta quantità di memoria programma, che è adeguata anche per piccole applicazioni C (pur permanendo il limite di uno stack con solo due livelli).
Per contro, la memoria programma e la RAM possono essere a pagine e banchi, difficoltà che, però, riguarda principalmente l' Assembly.

Così, con questi componenti "essenziali", vediamo la possibilità di un primo approccio al mondo dei PIC, in grado di dare una idea di base della filosofia di Microchip e dell' uso dei suoi tools di sviluppo, sia con Assembly che con C.

In ogni caso, è interessante considerare che, data l' uniformità della filosofia alla base dei PIC e della struttura analoga di questi processori in particolare, è possibile vedere bene come un sorgente scritto per un tipo potrà essere portato su un' altro senza problemi.  

Gli unici obblighi sono quelli dell' assegnazione del giusto header di definizione del processore e l' impiego delle medesime risorse.Molto spesso i dispositivi di una certa famiglia, pur essendo ampiamente compatibili a livello di codice con altri sviluppati nella stessa filosofia progettuale, per quanto possano essere semplici, nascondono qualche piccola insidia nella corretta configurazione, insidie che, ad una analisi troppo superficiale, sfuggono all' utilizzatore e creano seri problemi nell' uso del componente.

Ecco allora una rapida panoramica e alcune indicazioni per chi li vuole sperimentare.


Avvertenza :

Le pagine seguenti sono offerte come riassunto di facile consultazione del foglio dati (Data Sheet) del componente che si sta usando, ma non sono un completo sostitutivo.

Non sono un corso su un determinato componente, ma riassunto degli elementi essenziali, allo scopo di dare una panoramica delle sue caratteristiche e possibilità e, principalmente, indicare rapidamente come utilizzare le varie risorse e come superare le "trappole" che sfuggono ad una analisi troppo superficiale e creano seri problemi nell' uso del componente. 

Le informazioni non si susseguono nell' ordine fornito dal foglio dati, ma in un ordine derivato dalle necessità di impiego del componente e non comprendono tutti i particolari che la documentazione originale tratta.

La consultazione del foglio dati e della documentazione messa a disposizione dal costruttore sarà indispensabile per approfondire i singoli argomenti.

Le "trappole" saranno evidenziate con il simbolo , che indica la necessità di fermarsi e comprendere quale è l'azione necessaria per ottenere un determinato risultato.



 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 18/10/13.