Quando si dovrebbe usare un cristallo esterno per questo MCU dato che l'oscillatore interno è molto più veloce?


12

Sto guardando questo MCU e mi chiedevo se abbia senso usare un cristallo esterno.

Estratto dal foglio dati pg1,

* Gestione dell'orologio
- Oscillatore a cristallo da 4 a 32 MHz
- Oscillatore a 32 kHz per RTC con calibrazione - RC interno a 8 MHz con opzione PLL x6 - Oscillatore RC interno a 40 kHz

- Oscillatore interno a 48 MHz con taglio automatico basato su ext. sincronizzazione*

L'oscillatore interno può essere fino a 48 MHz. Il cristallo esterno è compreso tra 4 e 32 Mhz. Perché uno dovrebbe usare un cristallo esterno quando quello interno è più veloce di 48 Mhz dato che il cristallo esterno costa denaro e occupa spazio? Quando si dovrebbe usare un cristallo esterno?


4
l'unico vantaggio dell'oscillatore interno di mcu è il risparmio sui costi quando non è necessaria una maggiore precisione di quelli esterni.
Mahmoud Hosseinipour,

Risposte:


24

L'oscillatore interno è molto meno stabile di un oscillatore a cristallo esterno.

Se sto leggendo correttamente la scheda tecnica, l'oscillatore interno a 48 MHz è calibrato in fabbrica solo entro il 2,9% della frequenza specificata, nemmeno abbastanza per RS-232. Ci sono modi per sincronizzarlo con un orologio esterno, penso che sia progettato per essere utilizzato in una situazione di dispositivo USB in cui è possibile bloccare il PLL sul bitstream USB.

Un cristallo esterno ha in genere una precisione di circa 20 ppm , parti per milione. Questo è 0,002% dalla frequenza specificata. Se hai bisogno anche di meglio, ci sono anche oscillatori di cristallo a forno compensati in temperatura .

Inoltre, potresti desiderare una velocità di clock esatta a una frequenza diversa, in genere per la comunicazione con un dispositivo o master su un canale di comunicazione asincrono. Per questo potrebbe essere necessario un oscillatore ad esempio 29491200 Hz (115200 * 256).


2
francamente, il 2,9% è di solito abbastanza buono per UART / RS-232 (ho usato UART 115200 con almeno il 3,5% di tolleranza [a causa della mancata corrispondenza sia del baud rate interno di 8 MHz sia delle imprecisioni interne] per un paio di settimane senza alcun evidente errori); AFAIR, UART / RS-232 è abbastanza utilizzabile al di sotto del 5% di disadattamento dell'orologio totale e limite utilizzabile anche di una percentuale o due in più - inoltre, hai perso il fatto (notato da altri) che puoi usare PLL per moltiplicare l'orologio a cristallo per ottenere velocità alto quanto il clock interno.

2
@vaxquis sei stato fortunato. Il 5% è la discrepanza massima accettabile massima in baud rate e se mittente e destinatario sono fuori del 2,5% in diverse direzioni, allora hai ragione.
Bruce Abbott,

6
RS232 è uno standard di tensione e pin non uno standard di protocollo.
old_timer

2
Se usi il sovracampionamento 4x puoi probabilmente avere uno sconto del 25-50%. Con 8x probabilmente può essere peggio di così e 16x anche meglio. Devi solo essere abbastanza preciso da superare un carattere, quindi il ricevitore si risincronizza sul bit iniziale. Alcuni possono anche risincronizzarsi su ogni fronte consentendo un errore ancora maggiore. Quindi la decodifica uart dipende dal design del ricevitore. Alcuni progetti sani di mente potrebbero funzionare facilmente per sempre con un errore del 2,9% e mai scivolare un po '.
old_timer

3
@pipe, ovvero l'intero punto di sovracampionamento 8 e 16x per ottenere una migliore risoluzione di dove i bordi sono relativi a dove si sta campionando. Forse le parti di cui stai parlando utilizzano oscillatori interni. O forse gli ingegneri junior usati dal momento che è una cosa abbastanza banale da progettare. Puoi facilmente sincronizzare su ogni lato e rimanere sincronizzato per sempre anche con la deriva dell'orologio. Dal momento che non sappiamo a meno che non lavoriamo lì e non siamo nel reparto giusto, come è progettato un ricevitore, è meglio provare a raggiungere quel pochi percento e o fare test sufficienti per generare statistiche sul tasso di errore bit.
old_timer

10

L'interno è un oscillatore, di solito un oscillatore RC. Questi oscillatori sono molto meno precisi dei cristalli. Inoltre questi oscillatori tendono a spostarsi con i cambiamenti di temperatura.

D'altra parte i cristalli possono essere accurati quanto i soldi che vuoi spendere. L'accuratezza è necessaria quando, ad esempio, viene utilizzata la comunicazione ad alta velocità come l'USB. USB ha tolleranze molto strette.


8

Vedi questo diagramma a pagina 16:

Albero dell'orologio ST

Sembra che tu possa anche usare il cristallo come input per il PLL, permettendoti di raggiungere velocità di clock interne di 48 MHz da un cristallo più lento.


7

L'oscillatore a cristallo si inserisce in un Phased Locked Loop (PLL) su chip che può moltiplicare e dividere la frequenza del cristallo per valori compresi tra 1 e 16. Quindi, con un cristallo da 8 MHz è possibile generare un clock principale a 48 MHz per il processore. Come altri hanno già detto, un cristallo esterno è più preciso e stabile dell'oscillatore ad alta velocità su chip.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.