PIC18F2620 Jitter de reloj interno

0

Tengo una placa de circuito que usa el dispositivo PIC18F2620 SOIC. Estoy configurado para usar el reloj interno a 8Mhz y PLL para obtener FOSC a 32MHz. FOSC / 4 se envía en el pin RA6 / CLKOUT a un analizador lógico. La siguiente traza muestra jitter en el reloj a diferencia de lo que he visto con otros PIC18F. Vea abajo. Utilicé auto-store para capturar / superponer muchos ciclos en esta pantalla de seguimiento. El jitter se puede ver en la pantalla.

Estoy usando el siguiente código para configurar el oscilador:

static void OSC_Init(void)
{
    OSCCONbits.IRCF    = 7;       // Internal Oscillator to 8 MHz.
    OSCCONbits.SCS0    = 0;       // Set system clock to use...
    OSCCONbits.SCS1    = 0;       // ... primary oscillator.
    while (OSCCONbits.IOFS == 0); // Wait until INTOSC is stable.
    OSCTUNEbits.PLLEN  = 1;       // then PLL Enabled (8Mhz x 4 = 32 MHz).
}

Mi configuración de bits de configuración es la siguiente:

#pragma config OSC     = INTIO7  // Internal osc, CLKOUT on RA6, port function on RA7. 
//#pragma config OSC   = INTIO67 // Internal osc, port function on RA6 and RA7.
#pragma config WDT     = OFF     // WDT disabled (control is placed on the SWDTEN bit) 
#pragma config FCMEN   = OFF     // Fail-Safe Clock Monitor = OFF.
#pragma config IESO    = OFF     // Oscillator Switchover mode disabled
#pragma config PWRT    = ON      // Power-up Timer Enable bit: enabled 
#pragma config BOREN   = OFF     // Brown-out Reset disabled in hardware and software  
#pragma config XINST   = OFF     // Extended Instruction set disabled
#pragma config PBADEN  = OFF     // PORTB<4:0> pins are configured as digital I/O on Reset 
#pragma config STVREN  = ON      // Stack full/underflow will cause Reset 
#pragma config LPT1OSC = ON      // Timer1 configured for low-power operation
#pragma config MCLRE   = ON      // MCLR pin enabled; RE3 input pin disabled 
#pragma config LVP     = OFF     // Single-Supply ICSP enabled  
#pragma config CCP2MX  = PORTC   // ECCP2/P2A is multiplexed with RC1

He leído todas las hojas de datos de erratas de Microchip, pero el reloj interno no aparece con errores.

¿El reloj interno del PIC18F2620 es realmente inestable, o debería estar buscando otra cosa como la causa?

¿Los bits de configuración establecidos en INTIO7 para monitorear la línea CLKOUT afectarán esto?

¿Debería estar pensando en ir a un cristal para mejorar la estabilidad?

Gracias por la ayuda y el conocimiento de este problema.

    
pregunta Doug12745

3 respuestas

2

SOLUCIONADO. El problema fue el desacoplamiento de potencia del dispositivo PIC18F2620. Cambié el 0.1uF a un 1.0uf más grande y luego coloqué un 0.01uf adicional más pequeño en paralelo con el primero. El 1.0uF pretende ser un "depósito de potencia" y el 0.01uF como filtro de ruido. Esta configuración solucionó el problema de jitter muy bien. Gracias a todos los que publicaron consejos y respuestas.

    
respondido por el Doug12745
0

Permite calcular un piso de fluctuación temporal para un oscilador de cristal. Suponga 10MHz con + -1volt de sinusoide. Sabemos la velocidad de giro exacta SR:

SR = 1vpeak * 2 * pi * freq

SR = 1v * 62.8 millones de rad / s = 62.8 millones de voltios por segundo.

TimeJitter = Vnoise / SlewRate

Suponga que el pico de 0,628 voltios se acopla a través de los diodos ESD, exactamente cuando el circuito interno de SCHMIDT se activa para convertir la sinusoide en onda cuadrada. ¿Qué pasa?

TimeJitter - 0.628 voltios / 62.8 millones de voltios por segundo

TimeJitter = 10 nanosegundos, incluso cuando usaste un oscilador de cristal mágico.

¿Puedes lidiar con eso?

Tenga en cuenta que la MCU de CUALQUIER fabricante es vulnerable de esta manera.

¿Cómo lograr bajo jitter? Use una caja independiente que contenga SOLO un oscilador. Si debe realizar la función de cuadratura dentro de ese cuadro, use pines VDD / GND separados para el circuito de cuadratura.

    
respondido por el analogsystemsrf
0

Síntomas:
Excesivo ruido de FM 25% de desviación usando x4 luego / 4 conversión de frecuencia 8MHz ref en 32MHz x4 multiplicador en PLL luego / 4 fout mostrado en alcance a 8MHz con fluctuación de frecuencia en todos los bordes, excepto el flanco de disparo.

Impresiones:

Este reloj controlado por el ruido de control de PLL VCO muestra una desviación de frecuencia de FM excesiva (25%), por lo que solo el borde de disparo es estable. Y todos los demás bordes de jitter en un 25%. Casualmente o no, esto es una división por 4 salidas.

Revise el diseño para conocer las causas de la FM inducida por hardware o software.

  
  • ¿Inmunidad al ruido CM? ¿La tierra conectada hace una diferencia?
  •   
  • ¿Cómo cambia al elegir 4MHz x4 y 16MHz x4?   Ver si aleatorio, banda ancha o velocidad de línea
  •   
  • Si es posible, cambie la configuración del software FOUT para cambiar y busque cambios de estabilidad. ¿Es de disparador de contador falso a 32MHz? o de la opción de x4 multiplicador de frecuencia o la opción de 8 MHz vs 16 o 4.
  

¿El problema desaparece en cualquier momento? ¿Puedes alterarlo haciendo algo con los dedos cerca de chip y gnd? Esto modula la interferencia EMI y el ruido CM.

  • Use el analizador de espectro para demodular e identificar la tasa de modulación. Esto puede sugerir pistas más fuertes sobre la fuente analógica subyacente en el jitter. (¿Sonando el desajuste de impedancia, la entrada de ruido de la línea f CM o la interferencia de la lógica?)
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas