Sicuramente 16C84, 16F84 e 16F84A sono stati il "must"
di Microchip negli anni passati : migliaia di pagine di descrizione ed
applicazione e milioni di righe di codice sono disponibili sul WEB.
In particolare 16F84, con la possibilità di essere riprogrammato data dalla
memoria Flash, è stato uno dei microcontrollers più amati dagli hobbisti.
E' stato, perchè nella famiglia 16F sono disponibili da tempo dispositivi del
tutto similari, pin to pin compatibili, ma con prestazioni molto più
interessanti.
Perchè allora quando si parla di PIC, si incontra quasi sempre
per prima cosa
il 16F84 ? Essenzialmente perchè:
-
è stato uno dei primi embedded con memoria
programma in flash, quindi riutilizzabile più volte
-
ha avuto un stragrande diffusione anche grazie al costo
limitato ed alla intelligente politica di supporto di Microchip
-
ma sopratutto, perchè le pagine
che trovate in rete sono state scritte anni fa
-
e, non sicuramente seconda, per una certa inerzia che fa
trovare comodo usare un componente collaudato senza andare a verificare
che il costruttore è andato ben più avanti.
Microchip ha, e non da oggi, ampie famiglie di prodotti basati su flash e
spazia da 8 a 32 bit, con la disponibilità di funzioni DSP.
Inoltre, alla famiglia 16F (mid-range) va a succedere la famiglia 18F(enhanced), con performance,
disponibilità di memoria, I/O e periferiche che fornisco una solida base alla
programmazione con linguaggi ad alto livello.
Ma per chi non voglia o non abbia la necessità di affrontare il
C o le funzioni DSP e trovi sufficiente il 16F84, la scelta aggiornata è uno
dei suoi pin to pin compatibili.
Al momento nella fascia 16F esistono diverse
possibilità, ad esempio 16F88, 16F648A e 16F628 o anche 16F819 e 16F676 e
16F1827.
In particolare vediamo in cosa 16F628, uno dei più gettonati
candidati, si differenzia dal vecchio 16F84 :
La tabella seguente raccoglie le differenze più importanti tra i due chip.
PIC |
16F84 |
16F628 |
RAM |
68 |
224 |
Program memory |
1024 |
2048 |
EEPROM |
64 |
128 |
Package DIL |
18 pin |
18 pin |
I/O Pin |
13 |
14 (16) |
Comparatori analogici |
- |
2 |
Timer a 8 bit |
1 |
2 |
Timer a 16 bit |
- |
1 |
PWM |
- |
1 |
CCP |
- |
1 |
USART |
- |
1 |
Low Voltage programming |
- |
si |
Oscillator mode |
4 |
6 |
Clock massimo |
20MHz (16F84A) |
20MHz |
Costo * |
5.75 € |
2.95 € |
* valore
indicativo per 1 pezzo alla data di stesura della pagina
Informazioni più dettagliate sono rilevabili dai
data sheets, scaricabili gratuitamente dal sito del produttore.
|
PIC16F84
|
PIC16F628
|
XT oscillator mode |
si
|
si
|
HS oscillator mode |
si
|
si
|
LP oscillator mode |
si
|
si
|
EC External Clock |
si
|
si
|
RC oscillator mode (RC) |
si
|
no
|
ER oscillator mode (R) |
no
|
si
|
INTRC oscillator mode |
no
|
si
|
Dual Speed Oscillator |
no
|
si
|
4MHz - 20MHz |
si (PIC16F84A)
|
si
|
LVP |
no
|
si
|
In sostanza, F628 può operare in modo:
-
ER:
questo oscillatore è simile a RC, ma richiede solamente una resistenza
esterna
-
INTRC:
un oscillatore interno a 4 MHz funziona senza alcun componente esterno
e lascia liberi i due pin dell' oscillatore per uso generale come
IO (GPIO).
-
Dual Speed
Oscillator: che permette di passare da 4 MHZ a 37 kHz da
programma
INTRC , in particolare, è una
caratteristica molto interessante che consente di avere non solo meno
componenti, ma anche due pin di IO in più. Il che, su un package di 18 pin,
non è fatto secondario.
Inoltre è molto comoda in fase di sperimentazione o valutazione, nella
didattica e nell' auto istruzione, ma anche nella produzione, perchè consente
al chip di funzionare senza nessun componente esterno.
Inoltre, con riferimento alle periferiche
integrate:
|
PIC16F84
|
PIC16F628
|
Watch Dog |
si
|
si
|
Timer 0 8-bits |
si
|
si
|
Timer 1 16-bits |
no
|
si
|
Timer 2 8-bits |
no
|
si
|
Comparators |
no
|
si
|
PWM, Capture, Compare |
no
|
si
|
USART |
no
|
si
|
Voltage Reference |
no
|
si
|
In sostanza, F628, oltre ad avere tre timer
invece di uno, dispone di:
-
Modulo USART:
si può comunicare in RS-232 senza la necessità di costruirsi lunghe
emulazioni software
-
Modulo CCP:
generazione di PWM, Capture e Compare per impulsi, frequenze, periodi
-
Modulo
Comparatori Analogici: si risparmiano componenti esterni
-
Modulo Voltage
Reference: per le funzioni dei comparatori analogici
Ovviamente i chip sono pin-to-pin compatibili, secondo
la saggia politica di Microchip di avere per 1quanto possibile sempre una
compatibilità hardware tra chip con lo stesso package.
La differenza tra le funzioni indicate sui pin evidenzia solo la
differenza delle periferiche disponibili.
Ovvero, ogni pin svolge la stessa funzione di base di GPIO, a cui si
possono aggiungere altre funzioni attraverso la programmazione.
Ad esempio, in PIC16F84 il pin 1 svolge la funzione di RA2,, mentre in 16F628
ha la stessa funzione RA2, ma può anche essere programmato come AN2
(per i comparatori) o Vref.
Pin 10 è non solo RB4, ma anche l' ingresso di selezione dell' LVP.
E così via. Tutti i dettagli sulle funzioni addizionali di F628 si possono
consultare sul relativo fogli dati.
Quindi, dato che 16F628 costa meno, è più
performante, ha più funzioni,
può utilizzare il software e l' hardware scritto per 16F84, perchè continuare
ad usare 16F84 ?
Ed è anche e sempre opportuno mantenersi aggiornati, perchè sono da tempo in produzione
molti altri modelli interessanti, come 16F648, 16F876 e, sopratutto, la
più recente famiglia 18F, con ulteriori vantaggi su consumo, flessibilità,
memoria, ecc.
Per cui, anche se ci siamo affezionati, mettiamo il 16F84 in
soffitta.
Questo per quanto riguarda nuovi progetti o riedizione di vecchi
programmi.
Ma a molti, quello che interessa di più è il fatto che per passare il software scritto per
16F84 a 16F628 basta poco.
Si recuperano così a nuova vita applicazioni scritte per il vecchio F84, se
non per l' antico C84, senza modifiche sostanziali.
|