Capture/Compare/PWM
Le funzioni dei moduli CCP sono analoghe a quelle dei PIC16 e
non sono richiesti cambiamenti del codice.
Comunque, i PIC18 offrono prestazioni addizionali non presenti
nei PIC16, in particolare con i moduli ECCP (Enhaced CCP).
A/D
Il modulo AD al reset è configurato in modo compatibile con
quello dei mid-range.
Il codice scritto per questi sarà lo stesso, con la sola
modifica relativa al fatto che i PIC18 dispongono di AD non di AD a 8 bit, ma
a 10 o a 12 bit.
Quindi ci sarà un ADRESL e un ADRESH.
Nel registro ADCON1 ci sono tre nuovi bit che offrono maggiori
prestazioni.
Il bit ADFM, ADCON1<7> controlla l' allinemanto dei bit di risultato
della conversione nei registri ADRES. Se l' utente necessita del solo
risultato a 8 bit, ADFM sarà posto a 0 e il risultato sarà recuperato in
ADRESH. I rimanenti bit della conversione saranno disponibili in ADRESL.
Nei PIC18 il ciclo di istruzione con un clock di 10 MHz e il
PLL x 4 (40 MHz) è di 100 ns. Il controllo del ciclo di conversione AD ora
viene effettuato su quattro bit, ADCS1:0, ADCON1<7:6> per adegyuare il
TAD (minimo 1.6 us) al clock. Un ulteriore terzo bit, ADCS2, ADCON1<6>
divide il clock per due.
Altri vantaggi sono dati dalla possibilità di selezionare gli
ingressi analogici in mdo più dettagliato che nei PIC16 e di programmare due
pin come riferimento di tensione esterna positivo e negativo.
Un esempio di inizializzazione del modulo AD proposta dalle AN
di Microchip.
Il controller utilizza un clock di 8 MHz (generabile anche
internamente, senza quarzo, con il PLL, ottenendo 32 MHz.
La sorgente del clock è ottenuta selezionando il valore 110b
sui bit ADSC2:0:
ADCS2= 1 , ADCS1= 1, ADCS0 = 0
In questo modo i 32 MHz sono divisi per 64, ottendneo un TAD
di 2.0 us (>1.6 us).
Vengono configurati ora gli ingressi analogici AN0 e AN1,
mettendo la tensione di riferimento negativa su AN2 e quella positiva su AN3:
PCFG3:0 = 1101b
ADFM è settato per avere una giustificazione a destra del
risultato
La lettura sul canale AN0 è ottenuta selezionandolo con CHS2:0
= 000b e la conversione viene avviata portando a 1 il bit GO/DONE,
ADCON0<2>.
Quando il bit va a 0, ADRESH:L contiene il risultato della
conversione.
Maggiori dettagli sull' uso del modulo AD dovranno essere
ricavati dalla lettura del foglio dati del componente utilizzato.
USART
L' USART degli enhanced è compatibile con quello dei
mid-range e non sono richieste modifiche al codice.
L'USART può monitorare messaggi a 9 bit: portando a 1 il bit
ADDEN, RCSTA<3> sarà generato un interrupt alla ricezione del nono bit.
RCREG viene caricato con l' indirizzo ricevuto.
Questo è comodo nelle reti di comunicazione.
SSP
SSPCON è rinominato in SSPCON1, ma per il resto il modulo SSP
è compatibile.
La comunicazione SPI è completamente compatibile e non sono richiesti cambi
nel codice.
Anche la comunicazione I2C è compatibile.
Negli enanched sono disponibili moduli MSSP che supportano la
modalità Master e multi master, con l' aggiunta di un registro SSPCON2 e la
modalità slave è aggiornata con l' aggiunta del supporto alla general call.
Altre periferiche
Per quanto riguarda le altre periferiche integrate, qlcune di quelle
presenti nei 18F non ci sono nei PIC16. Per le altre, in generale Microchip
ha cercato di mantenere disponibile al default una compatibilità con i
mid-range, come ad esempio nel modulo AD.
Però, data la complessità e la varietà delle periferiche integrate è
sempre giocoforza consultare il foglio dati del nuovo componente per
individuare cosa sia stato eventualmente cambiato rispetto all' equivalente
mid-range a cui si era abituati.
Un approccio con un linguaggio a livello più elevato dell' Assembly potrà
facilitare le cose, anche se la conoscenza delle funzioni e delle particolarità
delle periferiche è indispensabile per il loro uso migliore.
|