El módulo PIC24 PLL siempre está fuera de bloqueo

1

He estado trabajando en una placa de desarrollo PIC24FJ128GA310 desde hace algún tiempo y hace poco conseguí una PCB. Si trato de mover mi código a la nueva placa, todas las funciones y las matemáticas relacionadas con el tiempo fallan en el oscilador HS, incluso las líneas UART no funcionan a la velocidad en baudios deseada. El dispositivo no se ejecuta cuando lo coloco en el oscilador XT.

Después de un poco de depuración, descubrí que el módulo PLL no se estaba bloqueando. Tengo un oscilador de 8 MHz con el bit de configuración PRIPLL activado. Entonces, en lugar de tener FCY de ((8 * 4) / 2) tengo (8/2). El caso es cierto si tengo POSCMD como HS. Pero si pongo POSCMD como XT, el controlador simplemente no funcionará en absoluto. No puedo depurar el código con POSCMD como XT, IDE dice que el dispositivo no está listo para la depuración ya que algunos bits de configuración son incorrectos o el emulador no está conectado correctamente. Estoy seguro de que las conexiones pickit3 están bien porque cuando cambio el POSCMD a HS o pongo el dispositivo en funcionamiento en el oscilador interno, puedo entrar en modo de depuración.

Intenté hacer un tiempo (OSCCONbits.LOCK == 0); en el inicio para comprobar si el temporizador de arranque del módulo PLL está satisfecho. Pero nunca sale de ese bucle. También intenté comenzar con el oscilador interno y luego cambiar al oscilador externo y al PLL sin mucha suerte.

Luego de algunas investigaciones en línea, llegué a este hilo, que dice que el capacitor en el pin Vcore debería estar causando el problema. Cambié ese condensador a un orificio pasante 10uF tantalio. Pero aún queda por resolver el problema.

Aquí está el esquema y el diseño de las secciones relevantes.

Circuito del oscilador

Vcorepin

Diseño de ambos. Capa inferior

Me he quedado sin opciones y necesito ayuda. Por favor sugiera cualquier otro curso de acción. Gracias por cualquier ayuda.

    
pregunta Siddharth

1 respuesta

1

En primer lugar, el capacitor Vcore: Microchip recomienda una tapa de 10uF de bajo ESR (como la cerámica). Su 10uF tantalum en paralelo con la cerámica de 100nF probablemente funcionará, así que no creo que este sea su problema.

En cuanto a la configuración de su oscilador: para un cristal de 8MHz, debería tener los bits POSCMD configurados para el modo XT (01), ya que el modo HS está diseñado para usarse con cristales de 10MHz y superiores. El uso de un cristal de 8 MHz en modo HS puede hacer que el oscilador sea demasiado inestable para que el PLL se bloquee.
Verifique la capacitancia de carga recomendada para su cristal específico y si su fabricante recomienda algún otro componente 'extra' (en ocasiones he necesitado agregar una resistencia grande en paralelo para lograr una oscilación confiable), pero sospecho que la capacitancia es su problema más probable .
Recuerde que una especificación de capacitancia xxpF en la hoja de datos del cristal NO significa "usar un par de capacitores xxpF" ... Luché con este dato divertido sobre los cristales durante demasiado tiempo antes de finalmente descubrirlo.

    
respondido por el brhans

Lea otras preguntas en las etiquetas