Microchip ha realizzato una interessante serie di PIC con un numero
limitato di pin, solo 6, di cui 4 utilizzabili come I/O: si tratta della serie
PIC10Fxxx.
Al momento (marzo 2013) sono prodotti 8 dispositivi; i primi 6,
appartenenti alla famiglia Baseline, divisi in
due sotto gruppi, hanno le seguenti caratteristiche:
PIC |
Memoria |
Timer
8 bit |
Comparatori |
ADC
8 bit |
PWM
10 bit |
Stack
level
|
Set
istruzioni
|
Packages
|
Progam
|
RAM |
10F200 |
256 |
16 |
1 |
- |
- |
- |
2
|
33
|
DIP 8
SOT23-6
2x3 DFN
|
10F202 |
512 |
24 |
1 |
- |
- |
- |
2 |
10F204 |
256 |
16 |
1 |
1 |
- |
- |
2 |
10F206 |
512 |
24 |
1 |
1 |
- |
- |
2 |
10F220 |
256 |
16 |
1 |
- |
2 |
- |
2 |
10F222 |
512 |
23 |
1 |
- |
2 |
- |
2 |
Si possono osservare alcuni punti comuni che li differenziano dagli altri
PIC (e da altri microcontroller, facendone un unicum):
- package minuscolo (SOT-23-6) con 4 pin di I/O
- set di istruzioni Baseline da 33-35 opcodes
- da 16 a 24 bytes di RAM e program memory da 256 a 512 bytes
- uno stack a 2 livelli
Il numero ridotto dei pin è funzione delle dimensioni altrettanto ridotte
del componente che è disponibile nel minuscolo SOT23-6 o nell' ancora più
piccolo 2x3DFN. E' evidente la collocazione: automatizzare processi semplici e
oggetti dove le dimensioni sono la componente più critica.
Nonostante questa vocazione, Microchip mette a disposizione gli stessi chip in DIP a 8 pin per facilitare l' avvicinamento al prodotto anche
dell' utente che non vuole partire direttamente con SMD.
Per quanto ci interessa, ovvero anche per una applicazione didattica o
hobbistica, questi mini-PIC sono oggetti molto interessanti:
- sono essenziali, semplici da utilizzare: nascondono poche trappole,
mentre non hanno i problemi delle serie maggiori (16F) dei banchi e delle
pagine.
- 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.
10F3xx
Questi chip non appartengono realmente alla famiglia dei precedenti 10F2xx,
di cui condividono solamente le minuscole dimensioni dei package SOT-23 o DFN
e richiedono una trattazione a parte.
Infatti, i PIC10F320/322, dispongono di
risorse molto superiori ai precedenti e di una struttura molto più complessa
e differenziata:
PIC |
Memoria |
Timer
8 bit |
Comparatori |
ADC
8 bit |
PWM
10 bit |
CLC
NCO
CWG |
Stack
level
|
Set
istruzioni
|
Progam
|
RAM |
10F320 |
256 |
64 |
2 |
- |
3 |
2 |
1 |
8 |
35
|
10F322 |
512 |
64 |
2 |
- |
3 |
2 |
1 |
8
|
Se viene mantenuto il package a 6 pin e lo stesso pinout, pure siamo di
fronte a chip quanto mai diversi dai PIC10F2xx. Sono, piuttosto che dei
Baseline, analoghi ai più recenti
PIC16F15xx/18xx, Enhanced
Mid-range, dove trovano posto non solo ADC e PWM, ma anche le
le nuove funzioni che Microchip sta implementando, ovvero CLC,
NCO, CWG, FVR e sensore di temperatura,
mentre aumenta la disponibilità di RAM e stack, oltre al set di istruzioni
ampliato, per l' appoggio a compilazioni
più complesse di quelle possibili negli altri modelli.
Queste pagine
Certamente la scarsità delle risorse di memoria, stack e istruzioni dei
PIC10F2xx 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 PIC10F2xx sono
ideali per questo.
Non vuol dire, però, che il programmatore in C debba rinunciare o diventare un
guru dell' Assembly: semplicemente, 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 NON sono alternative alla lettura del
foglio dati (Data Sheet) del componente che si sta usando!
Non sono neppure 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 come superare le "trappole" che, ad una analisi troppo
superficiale, sfuggono all' utilizzatore e creano seri problemi
nell' uso del componente.
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.