Quand faut-il utiliser un cristal externe pour ce MCU étant donné que l'oscillateur interne est beaucoup plus rapide?

12

Je regarde ce MCU et je me demandais s'il était logique d'utiliser un cristal externe.

Extrait de la fiche technique pg1,

* Gestion de l'horloge
- Oscillateur à cristal 4 à 32 MHz
- Oscillateur 32 kHz pour RTC avec étalonnage - RC interne 8 MHz avec option x6 PLL - Oscillateur RC 40 kHz interne

- Oscillateur interne de 48 MHz avec ajustement automatique basé sur ext. synchronisation*

L'oscillateur interne peut atteindre jusqu'à 48 MHz. Le cristal externe est compris entre 4 et 32 ​​MHz. Pourquoi utiliser un cristal externe alors que le cristal interne est plus rapide que 48Mhz étant donné que le cristal externe coûte de l'argent et occupe de l'espace? Quand faut-il utiliser un cristal externe?

user768421
la source
4
le seul avantage de l'oscillateur interne de mcu est la réduction des coûts lorsque vous n'avez pas besoin d'une précision supplémentaire des oscillateurs externes.
Mahmoud Hosseinipour

Réponses:

24

L'oscillateur interne est beaucoup moins stable qu'un oscillateur à cristal externe.

Si je lis correctement la fiche technique, l'oscillateur interne de 48 MHz n'est calibré en usine qu'à 2,9% de la fréquence spécifiée - pas même assez bon pour RS-232. Il existe des moyens de le synchroniser avec une horloge externe, je pense qu'il est conçu pour être utilisé dans une situation de périphérique USB où vous pouvez verrouiller la PLL sur le flux binaire USB.

Un cristal externe est généralement précis à environ 20 ppm , parties par million. C'est 0,002% de la fréquence spécifiée. Si vous avez besoin encore mieux, il existe même des oscillateurs à cristal à four compensé en température .

En outre, vous souhaiterez peut-être une vitesse d'horloge exacte à une fréquence différente, généralement pour la communication avec un périphérique ou un maître sur un canal de communication asynchrone. Pour cela, vous pourriez avoir besoin d'un oscillateur à par exemple 29491200 Hz (115200 * 256).

tuyau
la source
2
franchement, 2,9% est généralement assez bon pour UART / RS-232 (j'ai utilisé 115200 UART avec une tolérance d'au moins 3,5% [en raison de l'inadéquation du débit en bauds et des inexactitudes internes du RC 8 MHz RC) pendant quelques semaines sans aucun effet notable les erreurs); AFAIR, UART / RS-232 est assez utilisable en dessous de 5% de décalage d'horloge total et limite utilisable même un pour cent ou deux plus - vous avez également manqué le fait (noté par d'autres) que vous pouvez utiliser PLL pour multiplier l'horloge en cristal pour obtenir des vitesses aussi élevé que l'horloge interne.
2
@vaxquis vous avez eu de la chance. 5% est le décalage absolu maximum acceptable en débit en bauds, et si l'expéditeur et le récepteur sont à 2,5% dans des directions différentes, alors vous avez raison.
Bruce Abbott
6
RS232 est une norme de tension et de broche et non une norme de protocole.
old_timer
2
Si vous utilisez un suréchantillonnage 4x, vous pouvez très probablement avoir entre 25 et 50% de réduction. Avec 8x peut probablement être pire que et 16x encore mieux. Il suffit d'être suffisamment précis pour passer à travers un caractère, puis le récepteur se resynchronise sur le bit de départ. Certains peuvent même se resynchroniser sur chaque bord, ce qui permet des erreurs encore plus importantes. Le décodage uart dépend donc de la conception du récepteur. Certaines conceptions / sensées pourraient très facilement fonctionner indéfiniment avec une erreur d'horloge de 2,9% et ne jamais glisser un peu.
old_timer
3
@pipe, c'est le point entier de suréchantillonnage 8 et 16x pour obtenir une meilleure résolution de l'endroit où les bords sont par rapport à l'endroit où vous échantillonnez. Peut-être que les pièces dont vous parlez utilisent des oscillateurs internes. Ou peut-être les ingénieurs juniors utilisés, car c'est une chose assez banale à concevoir. Vous pouvez facilement synchroniser sur chaque bord et rester synchronisé pour toujours, même avec la dérive de l'horloge. Puisque nous ne savons pas, sauf si nous y travaillons et que nous sommes dans le bon département, comment un récepteur est conçu, il est préférable d'essayer d'atteindre ce pourcentage et / ou de faire suffisamment de tests pour générer des statistiques sur le taux d'erreur sur les bits.
old_timer
10

L'intérieur est un oscillateur, généralement un oscillateur RC. Ces oscillateurs sont beaucoup moins précis que les cristaux. Ces oscillateurs ont également tendance à dériver avec les changements de température.

D'autre part, les cristaux peuvent être aussi précis que l'argent que vous souhaitez dépenser. La précision est nécessaire lorsque, par exemple, une communication à haute vitesse est utilisée, comme USB. L'USB a des tolérances très strictes.

vini_i
la source
8

Voir ce schéma à la page 16:

Arbre d'horloge ST

Il semble que vous pouvez également utiliser le cristal comme entrée pour la PLL, vous permettant d'atteindre des vitesses d'horloge interne de 48 MHz à partir d'un cristal plus lent.

pjc50
la source
7

L'oscillateur à cristal alimente une boucle verrouillée phasée (PLL) sur puce qui peut multiplier et diviser la fréquence du cristal par des valeurs comprises entre 1 et 16. Ainsi, avec un cristal à 8 MHz, vous pouvez générer une horloge principale de 48 MHz pour le processeur. Comme d'autres l'ont dit, un cristal externe est plus précis et stable que l'oscillateur haute vitesse sur puce.

Steve G
la source