¿Cómo medir la frecuencia de reloj de PIC?

Estoy usando un microcontrolador PIC (PIC16F1846) con un cristal externo de 8 MHz conectado a los pines del reloj externo (RA6 y RA7).

¿Por qué cuando uso la sonda de mi osciloscopio para intentar medir la frecuencia del reloj, mi programa básico de parpadeo LED deja de funcionar (el estado de la luz se congela) y tengo que realizar un reinicio?

¿Conecta su osciloscopio a RA6 y RA7 al mismo tiempo? Quiero decir, la punta de la sonda a uno y la tierra al otro. ¿Utiliza una sonda 1:10 adecuada?

Respuestas (3)

Pruebe con una sonda 10x (no 1x) en el pin OSC2. Debería poder ver el reloj. La frecuencia cambiará ligeramente por la carga de la sonda.

No creo que su número de parte sea correcto, pero la mayoría de los chips 16F son similares.

Editar: la carga de la sonda de alcance se explica en este documento de Tektronix.

La capacidad de extracción del cristal se explica en esta nota de aplicación. Tenga en cuenta que la carga típica de una sonda de alcance 10x solo cambiaría la frecuencia quizás en 100 ppm (0,01 %), lo que no es importante en muchas aplicaciones además del cronometraje.

Tiene razón, la pieza es en realidad PIC16F1847. ¡Usar la sonda en x10 funcionó!
¿Podría explicar esta idea de que la carga de la sonda afecta la frecuencia?
Por favor, vea la edición anterior
No me funciona el link del pdf.
@DanNeely Debería estar trabajando ahora. Tek agregó algunas cosas a la URL que tal vez tenían la intención de desalentar los enlaces profundos.
@hobbs My Tek TPS2024 con sonda P2220 es 200 MHz BW en 10x y solo 6 MHz BW en 1x. La única razón para usar 1x son las señales de bajo nivel.

Este es un tema aparte pero relacionado.

La medición de la frecuencia en el pin de salida del oscilador le indica la frecuencia del oscilador, no necesariamente la frecuencia del reloj de instrucción. En los PIC antiguos, eso era solo 1/4 de la frecuencia del oscilador. Sin embargo, muchos PIC más nuevos tienen cadenas de reloj más complicadas que esa, con un PLL y varios divisores opcionales.

Es una buena idea asegurarse de que el reloj de instrucciones sea realmente lo que cree que es lo antes posible. Por lo general, hago esto haciendo que mi bucle principal inicialmente solo cambie un pin. Configure el banco para el registro LAT apropiado primero, luego BSF, BCF y BRA para volver a hacerlo. Eso debería tomar 4 ciclos de instrucción. Miras eso en un osciloscopio y verificas que la frecuencia del pin es realmente 1/4 del reloj de instrucciones que esperabas.

Aunque esto no responde directamente a mi pregunta, es un muy buen punto y probablemente me haya ahorrado mucho dolor en el futuro. ¡Gracias!

La capacidad de la sonda podría causar fallas en la generación del reloj. La forma más sencilla de evitar esto es cablear una resistencia al contacto central de la sonda y realizar la medición colocando otra pata de la resistencia en su cristal. 100 ohmios estará bien.