Cómo obtener una señal cuadrada de 8 MHz en un pic18f45

Estoy usando un Pic18F45K40 para controlar un chip de red de línea de alimentación ST7590 que requiere una señal de reloj de 8 MHz para funcionar. Leí la hoja de datos y parece que se puede generar una señal de 16 MHz a partir del microchip de 64 MHz.

Configuré el módulo de salida del reloj de referencia de la siguiente manera:

#pragma config CLKOUTEN = ON

y

#define oCLK_INIT()      CLKRCLKbits.CLK=1; \
                         CLKRCONbits.EN=0;  \
                         CLKRCONbits.DC=2;  \
                         CLKRCONbits.DIV=3; \
                         SCANTRIGbits.TSEL=1;
                         //OSCCON1bits.NOSC=6;
#define oCLK_EN_ON()       CLKRCONbits.EN=1;

y usó PPS para fijar RB4 configurando

  RB4PPS=0b10100;        /* B4=CLKR 8MHz      */ \

Obtengo una señal de 8 MHz, pero se ve así:

ingrese la descripción de la imagen aquí

Esto es más sinusoidal que cuadrado y podría ser la razón por la que no puedo hablar con el chip ST7590 a través de UART. ¿Alguien puede explicar lo que está pasando?

EDITAR: Resultado de cambiar la velocidad de giro.

ingrese la descripción de la imagen aquí

¿Te refieres a PIC18 F 45 K 40?
¿Será que la señal se degrada cuando llega a las entradas del osciloscopio? Por ejemplo, ¿por capacitancia y/o inductancia en los cables?
Sí, es PIC18F45K40. Es una señal de 8 MHz, no creo que la longitud del cable del osciloscopio cambie la señal de esta manera.
Veo que ha progresado, pero ¿cuál es el ancho de banda de su osciloscopio? Si desea que represente con precisión una onda cuadrada, los armónicos impares (3x8MHz, 5x8MHz, 7x8MHz, etc.) deben estar dentro del ancho de banda del alcance. Por ejemplo, un osciloscopio (o sonda de osciloscopio) de 20 MHz mostraría una onda cuadrada de 8 MHz que parece una onda sinusoidal, y realmente querría 80 MHz o más si desea observar la integridad de la señal de una onda cuadrada a 8 MHz.

Respuestas (2)

Dos posibilidades: capacitancia parásita o control de velocidad de respuesta.

Si estuviera trabajando en placas de prueba, pensaría que se trata de una capacitancia no deseada entre las tiras de clavijas, pero debido al paquete del dispositivo STmicro, creo que está trabajando con PCB adecuadas.

Eso lleva a la otra posibilidad: el PIC está limitando las tasas de cambio en el puerto. Esto se hace para reducir la EMC del "rebote" de conmutación rápida, por lo que las velocidades de giro de los transistores se reducen para crear un gradiente agradable. Funciona muy bien por debajo de 1 MHz, pero debe tener cuidado con 8 MHz.

Consulte la página 244 para obtener instrucciones sobre cómo borrar los registros SLRCONx para evitar o reducir la limitación de la velocidad de respuesta.

15.2.5 Slew Rate Control
The SLRCONx register controls the slew rate option for each port pin. Slew rate for each port pin can be
controlled independently. When an SLRCONx bit is set, the corresponding port pin drive is slew rate
limited. When an SLRCONx bit is cleared, The corresponding port pin drive slews at the maximum rate
possible.
Oh wow eso tuvo un efecto.
¿Tuvo el efecto deseado? Borrar completamente el registro puede provocar un timbre no deseado en la señal, por lo que es posible que desee acelerar la velocidad de respuesta.
He añadido la respuesta a la pregunta. Gracias, haré el próximo lote de pruebas en breve.
Suponiendo que haya borrado el registro por completo, esto es ahora lo que esperaría al ver la capacitancia parásita, es decir, el borde ascendente en rampa, el borde descendente agudo con una rampa en la parte inferior.
Estoy de acuerdo con su forma actual y como Xin en el ST7590 es un pin analógico, leerá el alto y el bajo apropiados. Solo limpié el pin conectado al SLRCONB. por lo que el resto del registro permanecerá activo. Sigo sin obtener respuesta del ST7590 pero es por otro motivo y no por el reloj. Gracias. Publicaré otra pregunta en breve.

No existe una señal de onda cuadrada ideal. Siempre tendrás un cierto tiempo de subida y bajada en tu señal. Cuanto mayor sea su frecuencia, mayor será la cantidad relativa de tiempo de subida y bajada en comparación con su tiempo total de encendido y apagado, respectivamente. Lo que sufre son, por un lado, las propiedades parásitas de su ruta y el cableado interno del pin, incluida la protección ESD y la capacitancia a tierra.

Un oscilador externo tampoco produce una señal de onda cuadrada limpia, sino una que se parece a la impresión de su osciloscopio, pero eso no es un problema, ya que normalmente tiene una función de detección de bordes en las entradas de su reloj.