¿Cuándo se debe usar un cristal externo para esta MCU dado que el oscilador interno es mucho más rápido?

12

Estoy mirando este MCU y me preguntaba si tiene sentido usar un cristal externo.

Extraído de la hoja de datos pg1,

* Gestión del reloj
- Oscilador de cristal de 4 a 32 MHz
- Oscilador de 32 kHz para RTC con calibración - RC interno de 8 MHz con opción x6 PLL - Oscilador interno de 40 kHz RC

- Oscilador interno de 48 MHz con recorte automático basado en ext. sincronización*

El oscilador interno puede ser de hasta 48Mhz. El cristal externo está entre 4 y 32 Mhz. ¿Por qué uno usaría un cristal externo cuando el interno es más rápido que 48Mhz dado que el cristal externo cuesta dinero y ocupa espacio? ¿Cuándo se debe usar un cristal externo?

usuario768421
fuente
44
La única ventaja del oscilador interno de MCU es el ahorro de costos cuando no se necesita una precisión adicional de los externos.
Mahmoud Hosseinipour

Respuestas:

24

El oscilador interno es mucho menos estable que un oscilador de cristal externo.

Si estoy leyendo la hoja de datos correctamente, el oscilador interno de 48 MHz solo está calibrado de fábrica dentro del 2.9% de la frecuencia especificada, ni siquiera lo suficientemente bueno para RS-232. Hay formas de sincronizarlo con un reloj externo, creo que está diseñado para usarse en una situación de dispositivo USB donde puede bloquear el PLL al flujo de bits USB.

Un cristal externo suele tener una precisión de alrededor de 20 ppm , partes por millón. Eso es 0.002% de la frecuencia especificada. Si necesita aún mejor, hay incluso osciladores de cristal horneados con compensación de temperatura .

Además, es posible que desee una velocidad de reloj exacta a una frecuencia diferente, generalmente para la comunicación con un dispositivo o maestro a través de un canal de comunicaciones asíncronas. Para esto, puede necesitar un oscilador a, por ejemplo, 29491200 Hz (115200 * 256).

tubo
fuente
2
francamente, el 2.9% suele ser lo suficientemente bueno para UART / RS-232 (he usado 115200 UART con al menos 3.5% de tolerancia [debido a la falta de coincidencia de velocidad de baudios y a las inexactitudes internas del RC interno de 8 MHz] durante un par de semanas sin que se note nada errores); AFAIR, UART / RS-232 es bastante utilizable por debajo del 5% de desajuste total del reloj y límite utilizable incluso un porcentaje o dos más alto; además, se perdió el hecho (señalado por otros) de que puede usar PLL para multiplicar el reloj de cristal para obtener velocidades tan alto como el reloj interno.
2
@vaxquis tuviste suerte. El 5% es el desajuste máximo absoluto aceptable de la velocidad de transmisión, y si el emisor y el receptor están fuera del 2.5% en diferentes direcciones, entonces está justo en el límite.
Bruce Abbott
66
RS232 es un estándar de voltaje y pin no un estándar de protocolo.
old_timer
2
Si usa un sobremuestreo 4x, lo más probable es que tenga entre un 25 y un 50% de descuento. Con 8x probablemente puede ser peor que y 16x incluso mejor. Solo tiene que ser lo suficientemente preciso para atravesar un carácter y luego el receptor se vuelve a sincronizar en el bit de inicio. Algunos incluso pueden volver a sincronizarse en cada borde, lo que permite un error aún mayor. Entonces, la decodificación uart depende del diseño del receptor. Algunos diseños correctos podrían ejecutarse fácilmente para siempre con un error de reloj del 2.9% y nunca resbalar un poco.
old_timer
3
@pipe, ese es el punto completo de sobremuestreo 8 y 16x para obtener una mejor resolución de dónde están los bordes en relación con el lugar donde se está muestreando. Quizás las partes de las que estás hablando están usando osciladores internos. O tal vez los ingenieros junior utilizados, ya que es algo bastante trivial de diseñar. Puede sincronizar fácilmente en cada borde y permanecer sincronizado para siempre, incluso con la deriva del reloj. Como no sabemos, a menos que trabajemos allí y estemos en el departamento correcto, cómo está diseñado un receptor, es mejor tratar de llegar a ese pequeño porcentaje o hacer suficientes pruebas para generar estadísticas sobre la tasa de error de bits.
old_timer
10

El interno es un oscilador, generalmente un oscilador RC. Estos osciladores son mucho menos precisos que los cristales. Además, estos osciladores tienden a derivar con los cambios de temperatura.

Los cristales, por otro lado, pueden ser tan precisos como el dinero que desea gastar. La precisión es necesaria cuando, por ejemplo, se usa comunicación de alta velocidad, como USB. USB tiene tolerancias muy estrictas.

vini_i
fuente
8

Vea este diagrama en la página 16:

Árbol de reloj ST

Parece que también puede usar el cristal como entrada al PLL, lo que le permite alcanzar velocidades de reloj internas de 48MHz desde un cristal más lento.

pjc50
fuente
7

El oscilador de cristal se alimenta en un bucle bloqueado en fase (PLL) en el chip que puede multiplicar y dividir la frecuencia del cristal por valores entre 1 y 16. Por lo tanto, con un cristal de 8MHz puede generar un reloj principal de 48MHz para el procesador. Como han dicho otros, un cristal externo es más preciso y estable que el oscilador de alta velocidad en chip.

Steve G
fuente