Tutorials - PIC peripherals

 

Il CLOCK

 


OSCILLATORE ESTERNO

Si può fare ricorso ad un oscillatore esterno, il cui segnale andrà applicato al pin OSC1 mentre OSC2 sarà libero ed utilizzabile a seconda delle possibilità di configurazione del processore.

Quando usare questa configurazione ? Essenzialmente :

  • quando è già disponibile un generatore clock nel circuito, ad esempio condiviso con altri processori o periferiche, per cui si può risparmiare il quarzo ed i componenti associati
     

  • quando si richiede una precisione o una stabilità maggiore di quella ottenibile con cristalli o risonatori ceramici: oscillatori esterni TCXO o OCXO permettono stabilità e precisioni molto superiori ai normali quarzi.
     

  • quando è necessario eliminare lo start up time dell' oscillatore al Reset o all' uscita dalla condizione di Sleep, dato che è possibile scegliere un oscillatore esterno con  tempo di avviamento minimo

Con Start Up Time (OST - Oscillator Stratup Timer) si intende il tempo necessario dall' arrivo della tensione di alimentazione all' entrata in funzionamento dell' oscillatore in modo stabile: questo tempo, pur essendo breve, non è immediato e potrebbe essere inadeguato per applicazioni particolarmente critiche (mentre nella maggior parte dei casi è del tutto trascurabile.

Esistono essenzialmente due modi per ricorrere all' oscillatore esterno : EC (External Clock) ed ECIO (External Clock with I/O).

Modo Descrizione Configurazione
EC EC prevede che lì ingresso del segnale di clock sia OSC1, mentre da OSC2 esso viene prelevato per altri usi, diviso per 4
ECIO In questo modo il pin OSC2 diventa un general purpose I/O, solitamente RA6 del PORT A

Con "external clock" si intende una qualsiasi sorgente di clock esterna al processore e che disponga di forma d'onda e livelli adeguati. In applicazioni a batteria, va considerato il consumo del generatore esterno che può essere non trascurabile. 

Oscillatore TCXO NKG , zoccolatura DIL

Oscillatore half size
(Wuxi Beide El.) 

Oltre ai componenti integrati, è anche possibile utilizzare altre fonti esterne di clock, come i classici oscillatori con gate CMOS o TTL:

Oscillatore per cristallo serie Oscillatore per cristallo parallelo

Il clock esterno può essere condiviso con altre periferiche, curando il fan out del generatore, ad esempio per sincronizzare vari dispositivi o se un clock di valore adeguato è già presente sulla scheda. 

 


 

OSCILLATORE RC

Un modo economico per attivare l' oscillatore è quello che prevede l' impiego di una rete R-C esterna, collegata al pin OSC1.  Anche qui sono possibili diverse configurazioni  :

Modo Descrizione Configurazione
RC La rete RC è applicata al pin OSC1 e dal pin OSC2 è prelevabile la frequenza divisa per 4

 

RCIO COme sopra, con il pin OSC2 che assume funzioni di GPIO, solitamente assegnato come RA6

Lo schema di principio indica come dispositivo di scarica del condensatore un MOSFET N il cui gate è azionato dall' uscita del trigger.

In questo modo la frequenza di oscillazione dipende da :

  • il valore della tensione di alimentazione

  • i valori di R e C

  • la temperatura

  • i parametri di dispersione del PIC

Il valore di R deve essere compreso tra 3 e 100Kohm, mentre quello di C tra 20 e 300pF. 

Ovviamente, contro una notevole riduzione del costo rispetto ai cristalli, l' oscillatore RC offre parametri di stabilità e precisione di gran lunga inferiori.
La precisione dipende infatti in buona parte dalle tolleranze di R e C e, se resistenze stabili e precise (1% o meglio, a strato metallico) sono facilmente reperibili e ad un costo molto limitato, è ben nota la difficoltà di trovare condensatori con precisione maggiore del 5% e stabilità NPO per tutti i possibili valori necessari.
Tensione e temperatura di funzionamento sono altri elementi che influiscono sensibilmente sul valore della frequenza generata.

La selezione RC permette di avere una "copia" del clock (FRC/4) del processore sul pin OSC2 e questo è utile sia per diagnostica sia necessità un clock per altre periferiche.
Se questo non serve, la selezione RCIO  mette a disposizione un I/O , il che è sempre ben accetto sopratutto nei chip con un basso numero di pin.

Sui alcuni data sheet si trovano curve indicative del rapporto RC e frequenza ed il campo in cui spazia il clock generabile varia tra 25 kHz e 4 MHz circa.

Ad esempio, queste curve sono date nel foglio dati della famiglia 18Fxx2, 39564c.pdf.

Si nota subito che l' andamento della frequenza non è lineare, principalmente per bassi valori di R (ovvero frequenze alte) ed è fortemente dipendente dalla tensione di alimentazione.

E questo è confermato da un' altro diagramma:

dove viene espressamente sconsigliato di ottenere frequenze superiori ai 4 MHz e l' andamento delle curve è sempre legato fortemente alla tensione di alimentazione; e  anche un calcolo supponendo un normale circuito di carica-scarica di un condensatore, con la solita formula:

f = 1 / ( 2 pi R C)

da risultati molto approssimativi.

Non pare però che la documentazione Microchip dettagli in alcun punto una formula di calcolo dei componenti dell' oscillatore RC esterno e, comunque, non nel foglio dati che stiamo studiando.
in altri documenti si rileva la seguente formula:

f = 950 / ( R + 1.25) (C + 12)

dove:

  • è in MHz

  • R è in kohm

  • C  è in pF

Probabilmente questa modalità non è particolarmente considerata, in quanto troppo dipendente dalle tolleranze dei componenti usati, dalla tensione di alimentazione e dalla temperatura.
In effetti, da prove effettuate, si sono ottenuti risultati in range abbastanza ampi:

  5 k 10 k 100 k
20 pF circa 5 MHz circa 2.5 MHz circa 350 MHz
100 pF circa 1.3 MHz circa 750 kHz circa 80 kHz
300 pF circa 400 kHz circa 250 kHz circa 25 kHz

con una variazione di circa lo 0.2% per K di temperatura e tra 10 e 25%  per variazione di tensione di alimentazione da 3.3 a 5 V, oltre un altro 10-20% per le tolleranze da componente a componente.

In effetti, negli enhanced e in generale nei PIC che dispongono di un RC interno e quindi possono lavorare senza componenti aggiunti, l' RC esterno non ha particolare senso. 
L' RC interno permette una discreta scelta tra i valori più comunemente usati gestibile interamente da programma. Inoltre va ricordato che la frequenza dell' oscillatore interno è aggiustabile attraverso il registro OSCTUNE , mentre un aggiustamento dell' oscillatore RC esterno deve essere effettuata variando fisicamente i componenti.

Il modo RC esterno può essere preso in considerazione solamente quando sia necessario ottenere a basso costo una frequenza al di fuori di quelle possibili attraverso l' oscillatore interno.


 

 

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