Tutorials - PIC18

 

Passare da PIC16 a PIC18

 


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.


 

 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 05/06/19.