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

4

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

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

    
pregunta user3095420

3 respuestas

9

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

No creo que su número de pieza 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 transparencia de los cristales se explica en esta nota de la aplicación. Tenga en cuenta que la carga típica desde una sonda de alcance de 10x solo cambiaría la frecuencia en quizás 100 ppm (0.01%), lo cual no es importante en muchas aplicaciones distintas del cronometraje.

    
respondido por el Spehro Pefhany
9

Este es un tema separado 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 eso, 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 más temprano posible. Por lo general, hago esto haciendo que mi bucle principal inicialmente solo active un pin. Configure primero el banco para el registro LAT apropiado, luego BSF, BCF y BRA para volver a hacerlo. Eso debería llevar 4 ciclos de instrucción. Mire eso en un alcance y verifique que la frecuencia de pines es en realidad 1/4 del reloj de instrucciones que esperaba.

    
respondido por el Olin Lathrop
1

La capacidad de la sonda podría ocasionar fallas en la generación del reloj. La forma más sencilla de evitar esto es conectar 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án bien.

    
respondido por el Ilia Nedoluzhko

Lea otras preguntas en las etiquetas