Tutorials - PIC 

 

PIC12F508/509 e 16F505


I PIC12F508/509 e 16F505

Tra i Baseline più conosciuti si trovano due PIC a 8 pin, 12F508 e 12F509. Essi hanno caratteristiche comuni con 16F505, che è in package a 14 pin:

PIC Packages Memoria Timer
8 bit
I/O Osc.
Interno
Osc.
Esterno
Stack
level
Set
istruzioni
Progam RAM
12F508 8 pin 512 25 1 6 4 MHz 4MHz 2 33
12F509 1k 41
16F505 14 pin 1k 72 12 20 MHz

Vediamo come l' unica differenza tra 12F508 e 12F509 sia costituita dalla diversa quantità di memoria integrata. Ne risulta che un programma scritto per uno di essi sarà immediatamente utilizzabile per l' altro, restando nei limiti delle disponibilità di memoria.
16F505 ha memoria programma uguale a 12F509, ma è in package a 14 pin, quindi dispone di un numero maggiore di I/O. Inoltre può operare fino a 20MHz, con clock esterno.

Tutti, comunque, hanno la possibilità di utilizzare un oscillatore interno, che evita la necessità di aggiungere componenti esterni. Oltre a questo, la mancanza di complicazioni dovuta al limitato numero di funzioni integrate e il costo molto basso ne fanno gli elementi ideali per chi vuole iniziare ad esercitarsi con i PIC. La presenza di una certa quantità di memoria fa si che si possano applicare anche compilatori C.

Non si tratta di componenti dell' ultima generazione, ma possono essere un inizio per entrare nello spirito dei PIC ed afferrare i concetti fondamentali che poi potranno essere facilmente riportati nell' approccio ai modelli maggiori.

Qui consideriamo essenzialmente i due componenti a 8 pin, ma quanto detto vale anche, con poche modifiche, anche per 16F505.
 


Le caratteristiche principali

Si tratta di un chip molto semplice ; le particolarità significative dal punto di vista hardware sono:

  • oscillatore interno a 4 MHz, programmabile, con possibilità di aggiustamento. Non sono richiesti componenti esterni per generare il clock.
  • possibilità di implementare un oscillatore esterno a quarzo o RC fino a 4MHz (20MHz per 16F505).
  • MCLR disabilitabile e configurabile come ingresso digitale (scelta da effettuare nel CONFIG): dove non necessario, il pin di reset diventa un ingresso digitale in più.
  • il classico timer/counter a 8 bit, TIMER0, con ingresso interno o esterno
  • rilevamento cambio di stato sui pin, per generare avvisi alla pressione di pulsanti e simili
  • WDT: il watchdog timer presente in tutti i PIC e utile per implementare sistemi di sicurezza
  • tensione di funzionamento tra 2 e 5.5V

Dal punto di vista del software:

  • memoria programma da 512 per il 12F508 (su una pagina) e il doppio per 12F509 e 16F505 (su due pagine)
  • solo 8 SFR: non si deve ricorrere a switches di banco per accedere ai registri speciali
  • stack a due livelli: occorre prestare attenzione all' annidamento delle chiamate a subroutine per non superare le possibilità dello stack
  • 33 opcodes: questo ne consente una rapida assimilazione, anche se ci si potrà trovare limitati dalla mancanza di altre istruzioni presenti in PIC maggiori

La memoria programma è di tipo Flash e quindi scrivibile e cancellabile molte centinaia di volte. Questo consente di utilizzare lo stesso chip per un gran numero di esperienze.
Non è integrata memoria di tipo EEPROM.


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 30/04/13.