5 votos

Problema de PIC: Tocar el condensador de cristal hace que el sistema se ralentice

Estoy experimentando un problema muy inusual (al menos para mí). Cuando toco con mis dedos, o las sondas del osciloscopio, en el cristal o sus condensadores, el PIC funciona más lento... y MUCHO más lento de lo que debería... con mis dedos, la mayoría de las veces vuelve a la velocidad real, pero con las sondas, se cuelga para siempre.

Estoy corriendo el PIC18F2550 a 48MHz con un cristal de 20MHz... supongo que tal vez estoy cambiando la capacitancia "vista" por el PIC a través del cristal y el circuito de oscilación se está volviendo loco... ¿tiene algún sentido? Y si lo tiene, ¿qué puedo hacer para corregirlo?

EDITAR:

Las imágenes de abajo muestran el circuito. La imagen azul es la capa inferior de un tablero FR4 170Tg/290T ENIG de 2 capas. He resaltado los rastros del oscilador, es posible ver el plano de tierra, conectado a ambos condensadores y al cristal del medio, entre ellos. La imagen roja es la capa superior, donde hay un gran (y resaltado) plano de tierra, y algunos rastros de dos LEDs. También hay una mezcla transparente de la capa superior e inferior, así que mira cómo interactúan entre sí. Es posible ver la orientación del PIC y los esquemas de esta parte del proyecto por los rastros del oscilador.

El problema sólo aparece cuando se toca completamente el condensador del OSC1, o cuando se toca el pin del OSC1 en el PIC. Tocar los trazos o el condensador del OSC2 no trae ningún daño, como se esperaba.

El Cristal: http://www.digikey.com/product-detail/en/NX5032GA-20.000000MHZ-LN-CD-1/644-1039-1-ND/1128911

Los condensadores del cristal: http://www.digikey.com/product-detail/en/12061A150JAT2A/478-1439-1-ND/564471?cur=USD

EDIT2: El dedo puede tener una capacitancia de 5pF a 15pF, así que probablemente no hay mucho que se pueda hacer... http://ww1.microchip.com/downloads/en/AppNotes/01101a.pdf (página 2) Quitar el plano de tierra como se indica en las respuestas es lo peor.

Bottom Layer

Top Layer

Bottom and Top Layer

Las formas de onda del osciloscopio:

OSC1 antes de ser tocado:

OSC1 before being touched

OSC1 después de ser tocado:

OSC1 after being touched

OSC2 antes de que OSC1 sea tocado:

OSC2 before OSC1 being touched

OSC2 después de que OSC1 haya sido tocado:

OSC2 after OSC1 being touched

4voto

Joan Puntos 718

Creo que tal vez ese par de condensadores usualmente en los 10's de pF no están bien elegidos. Revisa las especificaciones del cristal. Sugeriría 10, 15 o 22pF pero depende del cristal y hasta cierto punto de la disposición y el circuito del oscilador. Las hojas de datos del microchip también tienen algunos consejos sobre los componentes del oscilador. Cada vez que tocas un circuito oscilador con el dedo o con una sonda, básicamente estás añadiendo una carga capacitiva que normalmente amortigua la oscilación y detiene el reloj, pero algunas veces (podría ser tu caso) hace que el cristal oscile en una frecuencia armónica. No es tan inusual.

4voto

SandeepJ Puntos 1339

He echado un vistazo a las cosas y aunque lo que se ve cuando se carga la clavija de alta impedancia del oscilador es de esperar, todavía es posible que su circuito no sea óptimo.

Lo ideal sería que las trazas de cristales fueran lo más cortas posibles, sin que las trazas de alta frecuencia/corriente cruzaran esas trazas en ningún punto (también correr bajo el micro no es lo ideal). En resumen, el cristal y sus condensadores de carga estarán tan cerca de los pines como sea posible.
Además, un rastro de "escudo" de tierra que recorre el exterior de los rastros del oscilador, y un plano de tierra local debajo del cristal puede ayudar a reducir cualquier problema de ruido externo. Estos se conectarían directamente a los microcontroladores Vss en un punto (si hay una capa de plano de tierra, los condensadores pueden ser conectados a tierra a través de vías a esto)

No sé qué es lo que llevan los otros rastros que cruzan sus rastros de cristal (así que cuánto de un problema serían), pero sea consciente de los problemas aquí. También los rastros son más largos de lo ideal.

Aquí hay un ejemplo de diseño:

Oscillator Layout

Para probar cuán marginal puede ser su circuito, necesita ver si comienza y funciona bien en su rango de temperatura de operación. Así que enfría/calienta el circuito según sea necesario y haz un ciclo de energía para ver si el oscilador arranca correctamente. Si aplicas un pequeño cambio y no arranca, necesitas arreglarlo.
Del mismo modo, hay que determinar cuán susceptible es al ruido. Esto es difícil de hacer "científicamente", pero colocar un circuito ruidoso (por ejemplo, algo que conmute rápidamente con alta corriente) cerca del oscilador puede dar una idea de lo fácilmente que puede ser afectado. El grado de preocupación que esto suponga dependerá de si su circuito está destinado, por ejemplo, a entornos automotrices/industriales o a entornos menos ruidosos.

Si descubres que el circuito es marginal, entonces podría ser que la conducción sea demasiado alta o baja, lo que puede causar problemas. Para una alta frecuencia como 20MHz, se necesita un nivel de accionamiento más alto, así que con un PIC esto correspondería al ajuste de HS. Si el nivel de accionamiento es demasiado alto, se puede incluir una resistencia en serie para ajustar el accionamiento según sea necesario (o con el modo PIC XT se podría intentar). La capacitancia de carga necesita ser calculada/ajustada para incluir la capacitancia perdida (CL1 || CL2 + Cstray - ver notas de aplicación abajo para detalles) Otra posibilidad es que el cristal en sí mismo no sea ideal, así que probar otro cristal es también una opción.

En las pruebas, lo ideal sería utilizar una sonda 100x o FET, y el acoplamiento de CA a la entrada del telescopio reducirá también la carga. Si se utiliza una sonda 10x (o incluso una sonda FET idealmente), entonces hay que tener en cuenta la capacitancia extra bajando el condensador de carga de ese lado.

Hay varias formas de probar su oscilador para asegurarse de que es estable y fiable. Además de las pruebas de temperatura, se puede probar el accionamiento adecuado, por ejemplo, añadiendo un bote en serie con el cristal, y aumentando hasta que el oscilador falle. Cuando se llega a este punto, el valor medido por los potenciómetros debe ser al menos 5 veces la ESR del cristal para proporcionar una ganancia adecuada en todas las condiciones. Este y otros métodos de prueba se discuten en el primer enlace de las útiles notas de aplicación que aparecen a continuación:

Haciendo funcionar su oscilador (nota bastante buena sobre varios métodos de prueba)
Guía de diseño del oscilador ST (el diagrama anterior proviene de esta nota)
Consideraciones sobre el diseño del oscilador EFM
Guía de solución de problemas del oscilador de cristal - Freescale (examina los problemas comunes)
Diseña un oscilador que se ajuste a tu aplicación - Maxim (mucha teoría útil)
Osciladores para microcontroladores - Intel (antiguo, pero aún muy relevante)


Datos experimentales y tomas de alcance

Para añadir algunos datos directos obtenidos por mí mismo a lo anterior, tomé un prototipo dsPIC con un cristal de 4MHz (lo siento, no hay tablas con un cristal de 20MHz a mano - el principio es exactamente el mismo en cualquier caso) que fue hecho en una tabla de pan (por lo que una disposición "ideal" no es realmente posible) y probé ambos pines OSC con una sonda estándar de 10x. Los propósitos eran averiguar si podía detener el oscilador, y hacer un par de tomas de ejemplo del oscilador para ver cómo funcionaba.

El resultado fue que al sondear cualquiera de los lados no se detuvo el oscilador, pero parece que el cristal está ligeramente sobreimpulsado (especialmente porque la carga extra debería reducir un poco la ganancia)
Tocar los pines ni siquiera causó que se detuviera, sin embargo, al presionar firmemente el cable (lado de alta impedancia) de la resistencia 1 MΩ que había puesto a través del oscilador, creó suficiente capacitancia para causar que la amplitud bajara y el recorte se detuviera (una indicación aproximada de un poco más de capacitancia de carga o una resistencia en serie que redujera ligeramente el accionamiento sería una buena idea)

La sobremarcha no es de interés para un prototipo de tabla de pan, ya que el oscilador hace su trabajo y es muy sólido. Sin embargo, la sobremarcha podría causar eventualmente un fallo prematuro, por lo que sería un problema al diseñar para la producción. Lo ideal sería tener suficiente potencia para dificultar la perturbación del oscilador, pero no tanta como para sobreactuar el cristal (así que una buena onda sinusoidal a ambos lados).
Esto es más fácil de decir que de hacer, ya que requiere las herramientas/enfoque correctos, por lo que en muchos casos los ingenieros sólo siguen las recomendaciones y esperan lo mejor. Este no es el mejor enfoque, ya que lo que puede funcionar bien a 25°C puede no funcionar a 35°C. Así que aunque puede ser difícil de hacer, probar el rendimiento de los osciladores en el momento del diseño puede ahorrar muchos problemas más adelante.

De todos modos, basta de sermones, aquí están las fotos:

Tablero (perdón por la mala iluminación) - note que aunque está desordenado, el cristal y las tapas (azules) están muy cerca de los alfileres. La resistencia 1MΩ a través de OSC1 y OSC2 está más cerca del borde.

Board picture

Lado de baja impedancia OSC 2 (ligeramente sobrecargado):

dsPIC Low Impedance side

Lado de alta impedancia de la clavija OSC1:

dsPIC high impedance side

Lado de alta impedancia con el dedo presionado firmemente en el OSC1 (usando el plomo de la resistencia mencionado) Note la reducción de la amplitud y la forma de la onda sinusoidal:

dsPIC high impedance side finger

4voto

user13107 Puntos 313

Para entender primero lo que está sucediendo necesitas entender CÓMO Los osciladores funcionan y los XCO en particular. XCO = Oscilador Controlado por Cristal. X es la abreviatura de Cristal AKA XTal.

Fundamentalmente, un oscilador es simplemente un amplificador que tiene un desplazamiento de fase de 180 grados en la frecuencia de interés. Si puede soportar eso, mientras suprime otras fases, entonces su oscilador funcionará a la frecuencia en la que la fase es de 180 grados y ninguna otra.

Típicamente, los osciladores simples son inversores lógicos con la salida que pasa a través de un elemento de retardo, o incluso un filtro de vuelta a su entrada. Así que la salida será de baja impedancia y la entrada será de alta impedancia. Los cristales pueden fabricarse y ajustarse fácilmente a determinados retardos/características de los filtros muy reproducibles, por lo que son un ajuste natural. Los condensadores que se utilizan con ellos se usan para filtrar (en algunos casos) los armónicos/tonos que se quieren suprimir, ya que los cristales son dispositivos resonantes, pueden tener sobretonos y armónicos.

En otros casos se desea "tirar" del XCO a una frecuencia ligeramente diferente afectando negativamente el retardo a través del cristal. Lo harías cambiando el valor C del lado de entrada del amplificador usado en el oscilador. Este cambio en C, cambia el retardo, que representa un valor de fase diferente para una frecuencia dada.

No todos los osciladores son tan sensibles, pero es bien sabido que ciertos tipos lo son. Y, de hecho, algunos fabricantes tienen recomendaciones sobre cómo colocar su PCB para evitar que los archivos perdidos, fugas y EMI/RFI afecten su frecuencia e incluso el jitter.

La versión TLDR:

  1. no toques el XTal o la entrada del oscilador. Tu resultado no es sorprendente.
  2. si debe, como se menciona en los comentarios, sondear el lado de salida del amplificador del oscilador ya que tendrá una impedancia mucho menor y PODRÍA ser capaz de manejar el aumento de la carga.
  3. O usar una sonda de baja C, como una sonda FET en su 'scope'.

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