Problemas con el uso de cristal de 20Mhz con PIC18f2420

Estoy usando PIC18f2420 para generar PWM. Estoy usando Timer 2 con cristal de 4MHZ, que funciona perfectamente dándome PWM. Necesito obtener 100 KHZ de frecuencia para PWM, para lo cual, el cristal de 4 MHz no es suficiente, ya que reducirá mi resolución a un nivel inaceptable. Cambié el cristal de 4MHZ a 20MHZ sin cambiar ninguno de los bits de configuración, hardware o programa, ya que no sé que tengo que cambiar. ¿Me pueden aconsejar qué debo cambiar? Mi cristal está conectado a dos condensadores de 27pF, ¿funcionarán bien para cristal de 20MHz también?

Bits de configuración actuales:

#pragma config OSC = HS //HS oscillator 
#pragma config PWRT = ON, BOREN = OFF //power-up timer on, brown-out detect off 
#pragma config WDT = OFF //watchdog timer off 
#pragma config LVP = OFF //low voltage programming off 
#pragma config PBADEN = OFF //Configuration setting
  • Puerto B todas las E/S digitales
Eso depende casi por completo del cristal de 20 MHz que haya elegido. Algunos cristales necesitan capacidades de carga diferentes a otros. Lea la hoja de datos.
¿Qué hay de mostrar esos bits de configuración?
Si usa un cristal de 10 MHz y configura sus bits Fosc en CONFIG1H en la configuración HSPLL (0110) para habilitar el multiplicador de reloj PLL 4x, tendrá 40 MHz para trabajar. Eso le dará 100 pasos de resolución de ciclo de trabajo PWM a 100 kHz.
¿Qué pasa si no quiero usar el multiplicador de reloj PLL y solo uso cristal de 20 MHz directamente? Simplemente me da una señal de onda sinusoidal aleatoria con ruido en el pin PWM.
Tut:Estos son los bits de configuración: #pragma config OSC = HS //oscilador HS #pragma config PWRT = ON, BOREN = OFF //temporizador de encendido encendido, detección de bajada de tensión desactivada #pragma config WDT = OFF //perro guardián temporizador apagado #pragma config LVP = APAGADO //programación de bajo voltaje desactivada #pragma config PBADEN = APAGADO //Ajustes de configuración, Puerto B todas las E/S digitales
Póngalos en su pregunta, usando el estilo "código".

Respuestas (1)

En primer lugar, su cristal funcionará bien con condensadores de 27pf si está diseñado para funcionar con condensadores de 27pf . Proporcione un enlace a la hoja de datos del cristal para que podamos ver lo que requiere (27pf me parece un poco alto).

En segundo lugar, según su descripción, parece que el cristal puede no estar oscilando. Sus bits de configuración se ven bien para un cristal de 20 MHz.

Usando su osciloscopio, ajuste la sonda a una impedancia de 10x. Luego pruebe el OSCIpin del PIC18 para ver si obtiene una forma de onda de 20 MHz. Si lo hace, entonces obviamente está oscilando. Si no, entonces no puede iniciar las oscilaciones. Esto podría deberse a que sus condensadores de carga son demasiado grandes (como dije, 27pf suena un poco alto, pero no podemos decirlo sin saber qué cristal está usando).

La "señal de onda sinusoidal aleatoria" es probablemente que el pin tiene una alta impedancia debido a que el chip no se inicia, por lo que está captando ruido local de la red eléctrica.