¿Puedes elegir cualquier cristal para un microcontrolador PIC?

8

Estoy usando el PIC16F690 y sé que el oscilador interno tiene ciertos valores (20,8,4 ...).

Me gustaría poner un cristal externo de 8MHz, pero solo pude encontrar 8.8MHz o 7.6MHz.

Me gustaría saber si es posible poner alguno de estos en el PIC, ¿o debe ser exactamente 8MHz? Además, ¿cómo debo elegir los condensadores para cada uno?

Curioso
fuente

Respuestas:

10

Puede usar cualquier cristal siempre que esté dentro del rango de frecuencia para el que está especificado el controlador de cristal PIC.

El controlador de cristal de la mayoría de los PIC (no busqué su PIC específicamente, ese es su trabajo) se puede configurar en tres niveles de unidad diferentes, generalmente llamados LP (baja potencia), XT (cristal) y HS (alta velocidad). Los más lentos usan menos energía pero también tienen una frecuencia de cristal máxima más baja que pueden soportar. El modo HS podría sobrecargarse y dañar los cristales sensibles de baja frecuencia de 32768 Hz, como los que se usan en los relojes de pulsera. Juntos, los tres niveles de la unidad de cristal cubren el rango de unos 10s de kHz a 20 MHz, que es el más rápido en el que se puede conducir PIC de todos modos.

Otro punto es que desea utilizar un cristal especificado para la aplicación de resonancia paralela. Eso significa que su frecuencia se especifica para la forma en que el controlador de cristal PIC conducirá el cristal. Estos cristales se especificarán con una capacidad de carga. Los cristales resonantes en serie funcionarán, pero la frecuencia probablemente no estará dentro de la tolerancia.

Olin Lathrop
fuente
Muchas gracias . mi problema fue que el oscilador interno me dio un reloj de instrucciones de 0.47us en lugar de 0.5us, para los 8mhz. así que supongo que un oscilador EXTERNO será más preciso. ¿es eso cierto? Otra cosa, no podía entender cómo configurar los fusibles para esa f?
Curnelious
44
@Curn: Sí, un cristal externo será más preciso que el oscilador interno. Incluso los cristales baratos son buenos para 50 ppm, y 20 ppm generalmente están disponibles por no mucho más dinero. En cuanto a la configuración, todos están bien descritos en la hoja de datos. Para un cristal de 8 MHz, querrá usar el modo HS.
Olin Lathrop
8

Suponiendo que no exceda la especificación de la frecuencia de reloj en el silicio, los fusibles programados y el código de aplicación, puede usar cualquier cristal que desee. Las hojas de datos explicarán qué condensadores usar.

Ignacio Vazquez-Abrams
fuente
3
Vale la pena señalar que cambiar la velocidad del reloj también cambiará los cálculos para cosas como la velocidad de transmisión y los temporizadores de intervalo. Parece obvio, pero es fácil de olvidar.
Scott Winder
@Scott: solo si escribe un código irresponsable con divisores de velocidad de transmisión y similares codificados. Con la codificación adecuada, cambia un número que es la frecuencia del oscilador y todo se deriva automáticamente de eso en el momento de la compilación, con, por supuesto, la comprobación de errores para casos imposibles o fuera de rango. Tienes razón en que debes recordar cambiar el número uno.
Olin Lathrop
1
@OlinLathrop: Estoy de acuerdo con usted en el caso de ligeros cambios en la frecuencia. Sin embargo, los cambios drásticos de frecuencia pueden requerir una modificación en el pre y / o posescalar de un generador de velocidad en baudios para mantener las frecuencias intermedias dentro del rango recomendado. En el lado del temporizador, algunos interruptores en la frecuencia del reloj pueden provocar desbordamientos y cualquier frecuencia diferente le dará una resolución de reloj diferente, por lo que modificar el conteo del temporizador (usando una macro de frecuencia) es solo una parte de la solución. Es posible que también sea necesario modificar el reloj del temporizador para lograr la precisión y longitud requeridas.
Scott Winder
1
@Scott: Pero eso es todo lo que se calcula en el momento de la compilación o al menos se verifica. Si codifica algo como un preescalador (generalmente no es necesario) y la nueva frecuencia de instrucción no admite lo que desea hacer, entonces el código de tiempo de construcción arrojará un error para alertarlo. Si puede manejarlo, lo hace en silencio. No hay excusa para que un cambio de frecuencia silenciosamente cause un problema. Eso es solo una mala codificación.
Olin Lathrop
@OlinLathrop: No estoy en desacuerdo. Solo estoy señalando que no siempre es tan fácil como cambiar un solo número, incluso en el caso de una buena codificación. En cualquier caso, es algo a tener en cuenta al cambiar la frecuencia.
Scott Winder
0

Como dice la hoja de datos, puede usar un oscilador de hasta 20Mhz. Para el condensador, la hoja de datos puede decirle qué uso de qué tipo de esos, pero para la cantidad de condensador, debe usar su experiencia.

Roh
fuente
1
Si bien la "experiencia" siempre es algo bueno, la capacidad de carga requerida depende del cristal y debe especificarse en la hoja de datos de cristales. Esto tiene que ver con la frecuencia de resonancia paralela. Además, se debe tener en cuenta la capacitancia parásita de los pines y trazas uC.
Rev1.0
@ Rev1.0 Genial y gracias! Te he votado. Por ejemplo, vi esta hoja de datos: html.alldatasheet.com/html-pdf/236074/CRYSTEKCRYSTAL/CYSDXX/… a su derecha, puede ver una tabla (número de parte estándar). ¿Debo usarlo para elegir el condensador? por ejemplo, para 16mhz, ¿debería usar un condensador de 20pf?
Roh
1
No, la capacidad de carga dada es la capacidad total requerida, no el valor para ambos condensadores. Calcule CX = 2 * (CL - Cstray), donde CX es el condensador que necesita, CL = 20pf y Cstray depende de su diseño (alrededor de 2-5pf).
Rev1.0
1
Cstray es la capacitancia de los pines del microcontrolador (hoja de datos) + la capacitancia parásita de las trazas en su placa (se puede aproximar conociendo la longitud, el ancho y la capa de las trazas). Si esto es solo para un proyecto de afición, asuma 5pf y probablemente esté bien.
Rev1.0
1
Lee y comprende esto :). "Si Cin y Cout no se especifican, entonces un valor de conjetura de 5 pF para cada uno es un buen comienzo".
Rev1.0