Elección entre oscilador interno y cristal externo: ATXMega32E5 [duplicado]

Estamos trabajando con un moderno microcontrolador ATXMega32E5, de la familia ATMEL XMega.

Nuestro objetivo es utilizar el UART del controlador para una comunicación efectiva, con una velocidad de alrededor de 9600 o 4800 baudios. Probamos el controlador con la frecuencia de reloj interna predeterminada de 2Mhz. UART funciona bien con velocidades de transmisión de 9600 y 4800 baudios.

Como el controlador funciona bien, ¿es realmente crítico usar un cristal externo para el reloj del sistema?

Solo queremos saber si usar el oscilador RC calibrado interno o cualquier cristal externo. Por favor elabora la explicación

RC internos están bien, pero la fluctuación y la respuesta de temperatura pueden eventualmente causar problemas. Tenga cuidado, golpee un resonador cerámico de 8Mhz como la pequeña serie Murata Ceralock que me encanta poner con mi ATmega328, por el tamaño pequeño del paquete y las buenas especificaciones, y por menos de $ 1 cada uno.

Respuestas (1)

La principal ventaja de los cristales de cuarzo externos es su estabilidad de frecuencia en un amplio rango de temperaturas. Los osciladores RC, por otro lado, tienden a variar considerablemente con la temperatura.

Un cristal, por ejemplo, puede anunciar una estabilidad de frecuencia de 50 ppm. Eso es solo un 0,005 % de desviación en todo el rango de temperaturas especificado. Echando un vistazo rápido a la hoja de datos del ATXMega32E5, se muestra que el RC interno solo es bueno para el 0,5 % y eso es solo a 25 °C . Vaya más caliente o más frío y la frecuencia de su oscilador se desviará aún más. Para empeorar las cosas, los fabricantes no prometen en qué dirección se desplazará la frecuencia del oscilador. Puede ser diferente de un chip a otro. En el peor de los casos, el oscilador de un dispositivo se desviará más rápido y el otro se desviará más lentamente, lo que posiblemente cause daños en la comunicación esporádicos y difíciles de rastrear.

En condiciones "agradables", no debería tener problemas para usar con éxito la comunicación UART con el oscilador RC interno. Pero si los dispositivos experimentarán grandes cambios de temperatura, es mejor cambiar a algo con mayor precisión, como un cristal.

En realidad, la serie XMega presenta el sistema de oscilador RC con sistema PLL, en realidad de bastante alta precisión, si es necesario para lograr una precisión suficiente de 0 a 85 grados centígrados para lograr una operación UART confiable. No olvide tampoco que un cristal solo es así de preciso cuando se usa exactamente a la temperatura correcta. Agregue el doble de pF en la carga (fácil de hacer sin buenas matemáticas y/o herramientas adecuadas) y obtendrá hasta 0.1% o peor.
@Asmyldof, no estoy de acuerdo con todo en tu comentario. La precisión anunciada de un cristal generalmente se establece para todo el rango de temperatura de funcionamiento (a veces hasta -40 a +125). No tiene que estar a "exactamente la temperatura adecuada". La hoja de datos del ATXMega32E5 muestra un rango de frecuencia de 8,14 MHz - 8,00 MHz para todo el rango de temperatura. Claro, eso probablemente esté bien para la mayoría de las aplicaciones UART, y puede ser bueno para un oscilador RC, pero es mucho peor que un cristal.
@Asmyldof Solo quiero saber qué tan confiable es el oscilador interno para el funcionamiento general del controlador. Usaremos I2C, UART, TEMPORIZADOR/CONTADOR, etc. ¿Es tan crítico cuando se usa en el producto final? ¿Se degradará la estabilidad del oscilador interno con los años? Si es así, al menos funcionará bien durante 5 años.