el cristal externo no funciona pero el reloj interno funcionó normalmente en PIC18F45K22

0

He diseñado un PCB basado en el microcontrolador PIC18F45K22. Quiero usar un cristal externo (cristal de 4Mhz con dos capacitores de 22pF). Puedo programar con éxito el código pero el PIC no se ejecuta. Cuando se cambia el modo de oscilador en los ajustes de configuración para usar el reloj interno, funciona bien.

El código que estoy tratando de probar es un simple código LED parpadeante.

tenga en cuenta que cuando el microcontrolador no se ejecutó, no pude ingresar al modo de depuración.

He intentado varios valores de mayúsculas, pero eso no ayudó. Noté que la mala soldadura en realidad agregó alguna capacitancia parásita entre los pines OSC1 / OSC2 y la tierra (medida usando un medidor RLC), así que intenté reducir el valor de los capacitores a 15pF.

He probado varios cristal (reemplazé el 4MHz, luego probé un cristal de 16MHz) pero eso no ayudó. También reemplacé el microcontrolador pero nada cambió.

He intentado hacer exactamente la misma conexión en una placa de pan y funcionó normalmente usando el modo de cristal externo. Solo rellené MCLR, VSS, VDD, PGD, PGC y un LED con una resistencia en serie.

He rediseñado el diseño de la placa, pensando que es un problema de diseño con el cristal, pero eso no ayudó.

He buscado un problema similar pero no puedo encontrar ninguna respuesta útil

número de pieza del cristal: ATS040B-E hoja de datos de crystal: enlace

Acabo de lograr que esta placa funcione ... El plano de tierra que conecta los condensadores del cristal está conectado a GND en un punto según lo recomendado por muchas notas de aplicación ... pero hay un condensador de 100 nF entre este plano y + 5V para el desacoplamiento ... esto fue un error del diseñador de diseño. Quité este condensador y funcionó. Hay otro entre GND y + 5V cerca de los pines del PIC como debería ser.

todavía no puedo entender por qué resolvió esto el problema ...

Hice una prueba antes para comprobar si hay algún voltaje de CA entre este plano y el GND del PIC ... y el voltaje de CA entre este plano y + 5V en el microcontrolador. Eran como 5 mV, así que supuse que estaba bien ...

Ahora, la pregunta es ¿cómo diablos esta tapa de 100 nF desordenó el circuito del oscilador para evitar que oscile ??

    
pregunta fhlb

3 respuestas

3

¿Has consultado la hoja de datos? Por lo general, cuando no hace nada es un problema de configuración.

No tengo ningún conocimiento sobre esto, pero de PIC18 (L) F2X / 4XK22 Hoja de datos .

  

Nota 1: Las características del cristal de cuarzo varían según el tipo, el paquete y el fabricante. El usuario debe consultar las hojas de datos del fabricante para conocer las especificaciones y la aplicación recomendada.

     

2: siempre verifique el rendimiento del oscilador en el VDD y el rango de temperatura que se espera para la aplicación.

     

3: Para obtener ayuda con el diseño del oscilador, consulte las siguientes Notas de aplicación de Microchip:

     

• AN826, “Conceptos básicos sobre el oscilador de cristal y la selección de cristal para dispositivos rfPIC® y PIC®” (DS00826)

     

• AN849, “Diseño básico de oscilador PIC®” (DS00849)

     

• AN943, “Diseño y análisis práctico de osciladores PIC®” (DS00943)

     

• AN949, “Cómo hacer que su oscilador funcione (DS00949)

Parece que los problemas del oscilador son comunes. Así que empezaría allí. Sé que tienes un prototipo funcionando, pero si no se configura el bit correcto, no ocurre magia.

Y:

  

FIGURA 2-6: FUNCIONAMIENTO DE CRISTAL DE CUARZO (MODO LP, XT O HS)

     

Nota 1: Es posible que se requiera una resistencia en serie (RS) para los cristales de cuarzo con bajo nivel de unidad.

     

2: el valor de RF varía con el modo de Oscilador seleccionado (normalmente entre 2MΩ y 10MΩ).

O:

  

FIGURA 2-7: OPERACIÓN DEL RESONADOR CERÁMICO (MODO XT O HS)

     

Nota 1: Es posible que se requiera una resistencia en serie (RS) para resonadores cerámicos con bajo nivel de unidad.

     

2: el valor de RF varía con el modo de oscilador seleccionado (normalmente entre 2 MΩ y 10 MΩ).

     

3: puede requerirse una resistencia de retroalimentación paralela (RP) adicional para que el resonador cerámico funcione correctamente.

También desde Cómo hacer que tu oscilador funcione

  

Pregunta:   Estoy tratando de usar un resonador de 4 MHz con VDD a 3V. La hoja de datos lo permite, pero el oscilador no funciona. ¿Qué estoy haciendo mal?

     

Respuesta:   Puede estar usando el oscilador de modo XT. Cuando se levanta VDD, el oscilador puede comenzar a funcionar. Seleccione el oscilador de modo HS en su lugar. Esto permitirá que el oscilador funcione a un voltaje más bajo, pero también consumirá corriente adicional. Alternativamente, cambie el resonador a un cristal, use el modo XT como antes y verifique la selección del condensador de carga. Al realizar tal cambio, vuelva a probar el circuito del oscilador para asegurarse de que funcionará como   esperado.

No estoy seguro de si esto se aplica, pero me hizo sonreír.

También verificaría mi software de programación para ver si realmente está configurando la palabra de configuración de la manera deseada, porque me he topado con los valores predeterminados del sistema en los PIC que no eran los que seleccioné. El oscilador se seleccionó pero se ejecutó muy lentamente porque la sincronización RC era la predeterminada del sistema. (OK, tengo algo de conocimiento, lo suficiente como para hacerme peligroso - Buena suerte SSR).

    
respondido por el StainlessSteelRat
0

El valor de los condensadores afecta la frecuencia del cristal final más que la capacidad de oscilar. Así que un extra de 1 pf no debería matarlo. Pero tal vez es hora de aplicar un poco de investigación. El oscilador de cristal es solo un amplificador con realimentación. El pin OSC2 es la salida; debe estar sentado alto o bajo (no en medio) si no está oscilando. El pin OSC1 es una entrada. Debería estar en el estado opuesto de la salida (de lo contrario, habrá encontrado algo mal). Al ser una entrada, debería poder subirla o bajarla utilizando una resistencia de alto valor conectada a + o tierra. Arrastrarlo a la tensión opuesta debería cambiar el estado de OSC2. Cualquier cosa que no funcione aquí sugiere una configuración incorrecta o un problema con el circuito.

Los cristales también pueden dañarse, así que es bueno que hayas podido probar más de uno.

Además, muchas veces es el momento en que comenzó a oscilar mientras estaba hurgando en las conexiones, así que sigue observando eso.

He tenido problemas de configuración, y solo lo creí después de haber probado todas esas otras cosas. A veces, solo tienes que comprobar todo lo demás para convencerte.

    
respondido por el gbarry
0

En realidad funcionó después de otras mejoras en el diseño ... No puedo decir que haya identificado dónde estaba el problema. Luego edité las 2 placas que no funcionaban ... conecté rastros por cables y eliminé los rastros de PCB (rastros de cristal, tapas y su GND) ... funcionaron bien.

    
respondido por el fhlb

Lea otras preguntas en las etiquetas