¿Cómo debo seleccionar mi frecuencia de cristal?

8

He visto preguntas como esto que habla sobre la selección de un cristal para UART y yo hemos visto preguntas como esto que mencionan 32.768 kHz para RTC . Pero, ¿cómo decido el cristal adecuado para mi aplicación?

En este momento no estoy seguro de qué UART baudios usaré, pero será uno de los estándar. Sería bueno poder obtener un tiempo semi-preciso en milisegundos, pero no es un requisito. Intuitivamente creo que ir con el cristal más rápido que mi micro puede usar me dará la mayor flexibilidad, pero ¿hay algo que me esté perdiendo? ¿Existe una frecuencia de "propósito general" que las personas usan?

    
pregunta Kellenjb

2 respuestas

11

Honestamente, podría pasar horas describiendo las diferentes frecuencias y por qué usarlas, ¡pero alguien ya lo ha hecho!

enlace

Esta tabla tiene una columna UART para decirte en qué frecuencias UART se divide bien.

También le indica cuándo una frecuencia es un cristal estándar para un sistema de comunicaciones específico.

    
respondido por el Kortuk
2

Intuitivamente, I usaría el cristal MÁS LENTO que funciona para mi aplicación. Obtendrá menos desviación del reloj y los trazados del circuito generalmente se comportarán mejor en las frecuencias más bajas.

Como nota aparte, si quieres hacer cosas cada pocos milisegundos, puedes hacer algo como lo siguiente:

Fosc = 25MHz. 
T=1/Fosc = 40ns; 
1ms/40ns = 25000 cycles/ms;
0xFFFF-25000=0x9E57;

on overflow TMR1:  //assuming TMR1 is 16 bit and counts every clock cycle
doEveryMillisecond;
incrementMillisecondTimer;
TMR1 = 0x9E57;

No estoy seguro de qué micro está usando, pero MPLAB tiene utilidades para medir el tiempo de los eventos, por lo que puede usarlo para ajustar el valor de restablecimiento de TMR1 para lidiar con cualquier sobrecarga y / o un reloj inexacto. Los cristales pueden variar lo suficiente como para que esto no sea factible en un entorno de producción ... no estoy seguro.

    
respondido por el Isaac

Lea otras preguntas en las etiquetas