Estoy en el proceso de hacer más trabajo en las plataformas ARM (específicamente para este ejemplo, la línea Atmel SAMD10 Cortex M0 +). La flexibilidad del reloj y la falta de ajustes ridículos de fusibles se siente como un soplo de aire fresco (muy atrasado).
Sin embargo, soy completamente ignorante con respecto a los compromisos de diseño en juego al considerar qué frecuencia de cristal elegir y cuánto utilizar el PLL para alcanzar el reloj de mi instrucción objetivo.
Como ejemplo, supongamos que mi limitación principal del ciclo de instrucciones es que quiero implementar un UART de 5 Mbps con el SAMD10. Quiero asegurarme de que los ciclos de instrucción sean idealmente una subdivisión entera del reloj de bits UART. Así que podría elegir un cristal de 20MHz sin multiplector PLL: 4 ciclos de instrucción por bit UART y 0 errores (teóricamente). Todo esto parece correcto: 20MHz es un valor de cristal muy común, lo que debería significar buena disponibilidad y bajo costo.
Pero, nuevamente, 32.768 kHz es bastante común, y parece lógico que el oscilador de cristal pueda extraer menos corriente a una frecuencia más baja, pero luego necesitaría un multiplicador PLL de 1525.9x para obtener un reloj de instrucciones de 50MHz (las salidas PLL fraccionarias solo entre 48MHz y 96MHz en este MCU). ¿Esto me daría peor fluctuación de tiempo? ¿Un multiplicador PLL de 1525.9x es grande o está dentro de lo que debería esperar para un MCU moderno?
¿Cómo los demás eligen sus valores multiplicadores de cristal / PLL en una situación como esta?