6 votos

¿Cuál es la diferencia entre un oscilador interno y externo para un microcontrolador?

Soy un principiante en lo que respecta a los microcontroladores, así que solo quiero preguntar si hay dos opciones para elegir la frecuencia del microcontrolador: ¿interna o externa?

¿Si hay frecuencia interna disponible en el controlador, entonces no necesitamos usar un oscilador de cristal externo?

1 votos

13voto

isdi Puntos 606

Depende de para qué quieras usar el procesador, el fabricante, etc. Los osciladores internos RC son "solo" buenos para una precisión del 1-2%, hay algunos procesadores que tienen registros de ajuste de sintonización que te permiten ajustar la frecuencia, por lo que con el software/calibración adecuados, etc. puedes obtener mejores resultados.

Para las comunicaciones de tipo puerto serie (asíncronas), la inexactitud de RC puede volverse crítica a altas velocidades de baudios (generalmente 230kbps o más, dependiendo del procesador y la flexibilidad de la velocidad de baudios)

Con osciladores RC típicamente obtienes 1 o 2 frecuencias a menos que el MCU ofrezca capacidades PLL en cuyo caso puede haber una amplia gama. Esto se puede utilizar en ventaja para escalar dinámicamente la velocidad del reloj para situaciones con alimentación a batería donde no se puede 'dormir' debido a situaciones de monitoreo complicadas, pero no es necesario correr al máximo rendimiento.

Un cristal puede proporcionarte cualquier frecuencia que desees dentro de los límites operativos del MCU, sin embargo, debes verificar que la carga sea correcta para que el oscilador se inicie correctamente y sea preciso y estable con el tiempo y la temperatura.

El oscilador interno de RC generalmente está garantizado para funcionar por el fabricante sin problemas de diseño de hardware.

1 votos

Buena respuesta, pero no estoy seguro acerca de "la inexactitud del RC puede volverse crítica a velocidades de baudios altas". ¿Por qué sería esto? ¿Debido a una selección de divisores más limitada para la velocidad de baudios, o me estoy perdiendo de algo?

1 votos

@domen Porque lo que crees que es un flujo de bits nominal de 230 kbps podría ser en realidad un flujo de 235 kbps (debido a la inexactitud en el oscilador RC) y posiblemente fuera de las tolerancias de la línea serie.

7voto

Hamsteriffic Puntos 367

La principal diferencia es que el oscilador interno suele ser un oscilador de tipo RC que no es muy preciso. Los osciladores externos pueden ser de tipo cristal de cuarzo, que son mucho más precisos.

5voto

filo Puntos 1

Las diferencias prácticas más comunes que he encontrado:

  1. Estabilidad de frecuencia (especialmente a través de diferentes temperaturas). Depende de tu aplicación si necesitas un reloj muy estable o no. Una vez tuve problemas usando un ATmega8 funcionando con el oscilador interno con un UART que perdía la sincronización por debajo de cero. Para VGA un cristal es imprescindible.

  2. Consumo de energía: los osciladores internos generalmente serán más eficientes en consumo de energía que los cristales externos.

  3. Frecuencias disponibles. Por ejemplo, para obtener la sincronización ideal de UART a 115200 baudios en un ATmega8 necesitarás un reloj con una frecuencia "extraña" de 7.3728 MHz, mientras que la frecuencia más cercana que el reloj interno puede ofrecer es de 8 MHz (por lo que algunos baudios no estarán disponibles).

Dependiendo del MCU exacto, también puedes obtener una gran estabilidad de reloj si lo usas como un dispositivo USB. El oscilador interno puede bloquearse a la señal de reloj del host USB (que está estabilizada con cristal).

0 votos

También podría imaginarme que quieres hacer algo sincronizado entre diferentes microcontroladores en una placa, lo cual puede ser más fácil si usas un reloj externo.

0 votos

Depende. Puedes hacer que uno de ellos sea el maestro (por ejemplo, SPI) y la velocidad de reloj no importará. Si dos MCUs tienen relojes idénticos pero separados, NUNCA estarán sincronizados. Algunos MCUs pueden enviar sus relojes a través de pines, por lo que el reloj interno de MCU A podría estar conectado a un pin y luego ser usado como reloj externo para MCU B, entonces ambos pueden estar sincronizados, incluso si la fuente de reloj no es perfectamente estable.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X