Tutorials - PIC18 by Data Sheet

 

Pagina 1

Nota : tutti i riferimenti sono al documento DS39689F .

Pagina 1 - Elenco delle caratteristiche

Le prime pagine del foglio dati di un PIC riportano un sommario delle caratteristiche principali, che troviamo elencate (page 1) raggruppate per funzioni.

Ci troviamo anche l' informazione che PIC18F2321 fa parte di una famiglia che comprende altri 3 PIC. Questa organizzazione in famiglie, tipica di Microchip, riguarda il fatto che , attorno ad uno stesso componente di base, sono state elaborate variazioni che riguardano essenzialmente il numero dei pin e la memoria disponibile.

Per cui, ad esempio, abbiamo anche un PIC18F4321, che è a 40 pin (quindi con un IO più ampio) o un PIC18F2221 che ha una quantità di Flash e RAM minore, pur conservando il resto delle caratteristiche di base.

Questo indica che è possibile scegliere un componente anche in funzione delle necessità di IO e di memoria, oltre che delle periferiche integrate: nella stessa micro-famiglia, il software prodotto per un chip sarà portabile sull' altro senza alcuna modifica.
La compatibilità hardware / software rende vantaggioso utilizzare per lo sviluppo, la sperimentazione, l' istruzione, i chip maggiori, che offrono il massimo delle possibilità, per poi passare, se necessario, a chip più piccoli (ed economici) in produzione.

Nel nostro caso, 18F2321 ci mette a disposizione :

  • GPIO (PORTA, PORTB, PORTC)

  • MSSP (SPI, I2C, Microwire)

  • EUSART (RS232, 485, LIN)

  • AD a 10 bit

  • CCP/ECCP (PWM, acquisition)

  • Comparatori Analogici

  • 4 Timer 

  • EEPROM

  • HVLD

  • ecc.

Il tutto in un DIP a 28 pin, pin to pin con il PIC16F876 e quindi sostituibile direttamente, senza modifiche, su un hardware esistente (circuito, scheda di sviluppo, ecc).


Page 1

Iniziando a sfogliare il data sheet, ci troviamo subito di fronte, in page 1, ad una descrizione della famiglia PIC18F4321 e dei suoi componenti.
La pagina, a prima vista appare complessa, ma si tratta solo di un elenco delle funzioni disponibili, ordinate per gruppi.

  • Power Managed Modes
     

  • Flexible Oscillator Structure
     

  • Peripheral Highlights
     

  • Special Microcontroller Features

Lasciamo da parte momentaneamente il primo gruppo, che dettaglieremo in seguito, e che riguarda le modalità di funzionamento a bassissimo consumo (nanoWatt Technology), e analizziamo gli altri. 

L' inglese è semplicissimo e fa riferimento a termini tecnici che dovrebbero essere ben noti a chiunque lavori con elettronica e microcontrolrer, per cui non dovrebbe esserci difficoltà di comprensione.



Flexible Oscillator Structure


Il sunto delle modalità con cui è possibile realizzare il clock del nostro microcontroller è impressionante.


  • Quattro modi con quarzo, fino a 40 MHz
  • Phase Locked Loop (PLL) moltiplicatore x4 per i modi con quarzo e oscillatore interno
  • Due modi RC fino a 4 MHz
  • Due modi con clock esterno fino a 40 MHz
  • Oscillatore interno (senza quarzo) :
    - 8 frequenze programmabili da 31 kHz a 8 MHz
    - Clock tra 31 Kh e 32 MHz con il PLL
    - Compensabile dall' utente 
  • Oscillatore secondario da 32 kHz attraverso Timer1
  • Clock Monitor di sicurezza
    -Shutdown di sicurezza se il clock si guasta

Questa varietà di modalità dell' oscillatore del clock consente una flessibilità ignota al mondo dei PIC16, sia per il limite massimo di frequenza operativa, che è il doppio (40 MHz contro 20), sia per la presenza di un PLL, della possibilità di funzionare senza alcun quarzo o condensatore esterno e della possibilità di modificare via software le condizioni operative.
Una discussione particolareggiata sui modi programmabili del clock è disponibile più avanti. Per chi a fretta, può consultarla subito facendo click qui.


 


 

Peripheral Highlights

Di immediato interesse la conoscenza di cosa ci offre il chip in fatto di periferiche integrate.


Se seguiamo riga per riga, il foglio dati ci informa che :

  • La corrente, sia sink che source, dei pin di IO è di 25 mA (massimi !)

  • Sono disponibili tre pin con possibilità di chiamata di interrupt (programmabile).

  • 4 pin sono programambili per l' interrupt al cambio di stato

  • Nei chip a 28 pin ci sono due moduli CCP con auto shutdown
    Nei chip a 40 pin è stato implementato anche un modulo ECCP, il che costituisce l' unica differenza tra i 28 e i 40 pin, al di là della quantità di IO disponibili.

Il modulo CCP/ECCP sarà trattao nei dettagli più avanti. Per chi a fretta, può consultarla subito facendo click qui.

  • E' presente il modulo MSSP, a cui fanno capo le comunicazioni sincrone, come SPI e I2C, in modo Master o Slave

  • E' disponibile un EUSART (Enhanced Adresssable USART) che supporta non solo il clssico RS-232, ma anche RS-485 e LIN 1.2.  In particolare, può utilizzare i modi di oscillatore interno (e non richiede quarzo esterno), oltre ad avere l' Auto Wake up all' arrivo del bit di start della comunicazione e la possibilità di Auto Baud Detect

  • C'è un modulo di conversione AD a 10 bit, con 10 ingressi per i chip a 28 pin e 13 ingressi per quelli a 40 pin. La conversione continua anche in fase di SLEEP.

  • Ci sono due comparatori analogici con possibilità di usare diversi pin di ingresso e uscita e con un riferimento di tensione interno

  • A questo si aggiunge un modulo rivelatore di sovra e sotto tensione (HLVD), selezionabile sia per il controllo della Vdd/Vss che di una tensione esterna su un pin.

Le caratteristiche e l' uso di tutte queste periferiche sono descritte nello svilupparsi del corso. Per ora, quello che ci interessa è avvicinarci al chip ed alla sua documentazione in modo graduale.

 


 

Special Microcontroller Features

In questa sezione della page 1 del documento DS39689E ci troviamo davanti all' elenco di alcune particolarità del microcontroller.

 

  • Architerrtura ottimizzata per il C
    - otto istruzioni opzionali ottimizzano il codice rientrante, tipico del C
  • La flash (memoria programma) può essere cancellata e scritta 100000 volte almeno
  • La EEPROM può essere cancellata e scritta 1000000 volte almeno
  • I dati sono conservato in Flash e EEPROM per circa 100 anni
  • Si auto programma sotto controllo del software
  • Dispone di interrupt con priorità (2 livelli)
  • Dispone della moltiplicazione 3x8 hardware
  • Il watchdog ha un tempo di intervento programmabile tra 4 ms e 131 secondi
  • Dispone di ICSP a 5V (usa PB7:6)
  • Può operare tra 2 e 5.5 V
  • Il Brown-Out reset è programmabile e abilitabile da software
  • ???

Quanto all' informazione che l' ultima riga riporta (e che sarebbe stata cosa molto interessante), si tratta invece di un errore ! 
Un altro chip PIC18, il PIC18F4550 dispone di questa opzione ed evidentemente la persona preposta alla compilazione del foglio dati ha usato un po' troppo disinvoltamente il copia-e-incolla.

Da questa evidenza nasce l' obbligo di scaricare e leggere anche gli Errata e i Silicon errata di un dispositivo, in quanto è l' unica via per sapere se c'è qualcosa di sbagliato nei fogli dati, prima di farne esperienza sgradita.

Quindi, è opportuno scaricare dal sito di Microchip anche il documento PIC18F2221/2321/4221/4321 Data Sheet Errata, dove viene riportata la correzione necessaria.

Alla base della pagina, una tabella riassume le caratteristiche salienti dei 4 componenti della famiglia. Evidenziato il nostro PIC18F2321.

Ci troviamo anche l' informazione che PIC18F2321 fa parte di una famiglia che comprende altri 3 PIC, che si differenziano tra di loro per il numero dei pin, 28 o 40, e quindi con un IO più ampio; e per la quantità di memoria, RAM e Flash, disponibili. 

Tutte le altre caratteristiche (periferiche, clock, ecc)  sono uguali.
Questo permette di scegliere un componente in funzione delle necessità di IO e della  memoria necessaria all' applicazione, oltre che delle periferiche integrate (è ovvio che i componenti con un maggior numero di pin o con maggiore quantità di memoria avranno costi maggiori e questo può essere determinante nella scelta del componente in applicazioni di quantità, dove il costo è un fattore sensibile).
Così, se servono più IO si sceglierà il 4321, se serve meno memoria il 2221.

Comunque, il nostro chip dispone di :


Memoria
programma
Memoria
dati [bytes]
EEPROM
[bytes]
I/O AD CCP/ECP MSSP UART Comparatori
analogici
Timer
16 bit
Timer
8 bit
4 kbytes
(2 kword)
512 256 25 10 2/0 1 1 2 3 1

Vanno fatte alcune precisazioni, prima che da questi dati si possano trarre considerazioni fuorvianti :

  1. Il numero degli IO è quello possibile, ovvero il numero di pin che possono essere impostati come GPIO.. Ma non è il numero che posso usare se ne dedico alcuni al altre funzioni, come ingressi dell' AD, comunicazioni seriali, PWM, ecc. Ovvero, per valutare con certezza di quanti pin di IO generico ho bisogno per il mio progetto devo verificare quali periferiche utilizzo e a quali pin fanno capo.
    Ovviamente, un chip a 40 pin disporrà di maggiori possibilità di uno a 29 pin.
     

  2. Stesso discorso vale per gli ingressi AD. Come vedremo, se utilizzo un pin come ingresso del convertitore Analogico-Digitale, non posso usarlo contemporaneamente per altre funzioni.
     

  3. L' indicazione della memoria dati (flash), in kbytes e kword fa riferimento al fatto, descritto nei particolari più avanti, che gli enhanced hanno istruzioni codificate su almeno 2 bytes (2 bytes = 1 word) e quindi in 4 kbytes possono contenere al massimo 2 k istruzioni da 1 word ciascuna.

E' chiara già da qui la superiorità dei PIC18 rispetto ai 16. Se confrontiamo le risorse di PIC16F876 e PIC18F2321, entrambi a 28 pin, troviamo quanto segue :
 

  Memoria
programma
Memoria
dati [bytes]
EEPROM
[bytes]
AD CCP/ECP MSSP UART Comp.
analog.
Timer
16 bit
Timer
8 bit
Max Clock
[MHz]
Istruzioni
18F2321 4 kbytes
(2 kword)
512 256 10 2/0 1 EUSART 2 3 1 40 75+8
16F876 4 kbytes 192 128 5 - 1 USART - 1 2 20 35

Tenendo conto che, alla data di creazione di questa pagina, MicrochipDirect offriva :
 

 

PIC16F876A  PDIP 3.80 €
PIC18F2321  PDIP

2.45 €

non ci si dovrebbero porre dubbi sulla scelta.

 


 

 

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