CALIBRAZIONE DELL'
OSCILLATORE
Il Registro OSCTUNE
Gli oscillatori interni, pur basandosi su componenti di precisione, non
ha certamente le caratteristiche ottenibili con un cristallo. Per ovviare a
questo, il circuito è calibrato in fabbrica, ma può essere messo a punto
dall' utente, via software, all' interno dell' applicazione. Questo si
ottiene con un opportuno registro, OSCTUNE.
Quando il valore contenuto in OSCTUNE
viene modificato, le frequenze generate da INTOSC
e INTRC cambiano automaticamente.
INTRC raggiunge il nuovo valore in 8
impulsi di clock (8 * 32 us = 256 us), mentre INTOSC
si stabilizza in 1 ms. Durante questi tempi di aggiustamento, il flusso
delle istruzioni in corso prosegue senza alcun arresto.
Il registro OSCTUNE contiene un bit INTSRC
che permette di selezionare quale sorgente interna genera il clock a 31kHz.
La variazione della frequenza generata da INTRC
e INTOSC in funzione della tensione di
alimentazione e della temperatura sono riportate sul foglio dati del
processore. Va notato che i due oscillatori sono separati e cambi di
frequenza per queste variazioni non influiscono ugualmente sui due circuiti.
OSCTUNE |
bit |
INTSRC |
PLLEN |
- |
TUN4 |
TUN3 |
TUN2 |
TUN1 |
TUN0 |
funzione |
R/W |
R/W |
0 |
R/W |
R/W |
R/W |
R/W |
R/W |
-
bit 7 INTSRC
: selezione della sorgente interna del clock a 31kHz
1 = 31.25kHz derivato dagli 8 MHz dell' INTOSC ( /256)
0 = 31 kHz derivati dall' RC interno (INTRC)
-
bit 6 PLLEN : abilita il
PLL nelle modalità INTOSC
1 = PLL abilitato (solo per 4 e 8 MHz)
0 = PLL disabilitato
-
bit 5 non utlizzato - se letto,
riporta 0
-
bit 4-0 TUN4:0 :
calibrazione della frequenza
01111 = frequenza massima
...
00001
00000 = Centrale, pari al valore calibrato in fabbrica
11111
...
10000 = frequenza minima
Da notare che i valori di TUN4:0
permettono una variazione in su e in giù rispetto al valore centrale
assegnato in fabbrica, quindi 0x00 è il valore centrale, mentre per
aumentare la frequenza il campo va da 0x01 a 0x0E e per diminuire da 0xFF a
0x10. La calibrazione della frequenza va fatta verificando un segnale posto
come riferimento accessibile all' esterno (ad es. PWM) oppure controllando
la risposta a processi che interessano il tempo, come le trasmissioni
seriali o timer in modo cattura-compara. Dato che la variazione del
contenuto di OSCTUNE non interrompe il
flusso delle istruzioni, si possono scrivere procedure di aggiustamento del
clock automatizzate.
CLOCK Switch
Una funzione interessante dei PIC 18F è quella di poter
cambiare, durante il funzionamento, la sorgente del clock. Lo scopo può
essere duplice : quello di disporre di due clock adeguati per due diversi
tipi di operazione, ma sopratutto, di poter disporre di un clock a frequenza
elevata per lo operazioni più complesse e di un clock a frequenza minore
per mantenere attivo il processore con un ridotto consumo di energia.
Sostanzialmente sono intese tre tipologie di sorgenti del clock :
-
Oscillatori primari , che includono gli oscillatori con
circuito esterno
-
Oscillatori secondari, ovvero le sorgenti non connesse
ai pin OSC1/OSC2. Queste sorgenti
possono continuare a funzionare anche con il controller posto in una
delle modalità di Power Management. Ad esempio, alcuni controller
offrono un oscillatore ausiliario collegabile a Timer 1, usando
tipicamente un cristallo da 32.768 kHz connesso ai pin RC0/T1OSO/T13CKI
e RC1/T1OSI/UOE, normalmente con lo
scopo di mantenere attive operazione di conteggio del tempo (Real Time
Clock).
-
Oscillatori interni, come INTOSC
e INTRC; quest' ultimo può essere
utilizzato anche da funzioni speciali come il Watchdog Timer (WDT) e
come Fail Safe Clock Monitor.
La chiave di questa funzione è la possibilità di passare
da una sorgente all' altra da programma, senza arrestare le operazioni del
controller.
Il registro preposto al controllo di molte funzioni del clock è OSCCON
.