Recuento de impulsos afectado por la sonda del osciloscopio

2

Como se muestra en el diagrama de bloques a continuación. Genero un reloj de 128 KHz y una secuencia de pulsos conocidos en 10 ms (el temporizador de 10 ms se implementa en el contador de impulsos al dividir los 128 KHz por 1280) y los envío al contador de impulsos en el sistema bajo prueba.

El problema es que cuando envío 1000 pulsos en 10 mseg, el contador no cuenta exactamente 1000. Sigo obteniendo conteos más bajos (982 ~ 998). Cuando acabo de sondear los 128 KHz en el punto de prueba que se muestra (¡o lo toco con mi dedo!), El número contado disminuye mucho hasta alcanzar los 400 conteos a pesar de que el 128 KHz detectado está limpio y no tuvo problemas.

¿Alguna idea de lo que está pasando aquí ?!

¡Problema resuelto!

El resistor pull up en la salida del optoacoplador es 4K, por lo que la corriente máxima del optoacoplador es ~ 1.2mA, que es tan pequeña para controlar la entrada FPGA. Reemplazar la resistencia por 400 ohmios solucionó este problema y el conteo ahora es estable cuando pruebo o toco con mi dedo.

Gracias a todos por su contribución.

    
pregunta Abdella

5 respuestas

2

Parece que la unidad del optoacoplador es marginal para el FPGA.

El hecho de que la sonda de alcance lo cargue lo suficiente como para empeorar las cosas parece confirmarlo. Esto es probablemente capacitancia en lugar de resistencia. Por ejemplo, una sonda pasiva Tek P2200 1x / 10x en la posición 1x puede poner 80 pF en el circuito que se está sondeando. A 100 kHz, eso es -j 20K ohmios, lo que PUEDE ESTAR BIEN. A 1 MHz (100 kHz x 10), eso es -j 2K ohms, que probablemente no lo sea.

Realmente no quiere saber por qué puedo citar esos números para esa sonda en este momento. No llevé un hacha a la cosa de la presa, pero fui muy tentado.

Eche un vistazo a las especificaciones de la unidad actual para los optoacopladores. Considere el uso de buffers. Si los optoacopladores son dispositivos de drenaje abierto (colector abierto), NECESITA resistencias pull-up, y cuanto más pequeña sea la resistencia con la que pueda salirse, más nítidos serán sus bordes ascendentes.

    
respondido por el John R. Strohm
2

Aquí, probablemente los optoacopladores no transmiten señales de 128Khz con buena calidad (lo que es muy fácil con un esquema mal diseñado). Por lo tanto, el contador de pulsos (¿qué es la entrada?) Simplemente pierde algunos de los pulsos.

Además, cuando conecta la capacitancia de la sonda en el circuito, la calidad de la señal empeora y el contador pierde más pulsos.

Intente colocar el disparador de Schmitt en la otra entrada del contador y vea qué sucede. También revisa la parte del optoacoplador. Intente modelarlo para comprobar las características de frecuencia.

Adendum1: Si declara que las señales son perfectas (y si realmente lo son), es probable que su contador no cuente correctamente. No puedo ver ninguna otra razón para tal comportamiento extraño.

Por cierto, algunos diagramas de tiempo pueden ser de gran ayuda para el análisis.

    
respondido por el johnfound
2

Podría ser algo que ver con la entrada en el FPGA que requiere un cierto dv / dt. Observo que la entrada que parece estar afectada no tiene entradas de activación de Schmitt.

Una forma de ver esto es usar una sonda pasiva hecha de un cable coaxial y una resistencia en serie (tienes que aumentar tu ganancia en el canal para compensar) pero te da una sonda muy rápida que carga la señal solo por 1 pF o menos.

Howard Johnson lo llama "sonda 21: 1 construida por el taller" con un proveedor de 1K.

    
respondido por el placeholder
1

Otra idea es la sincronización de pulsos de reloj. Si los pulsos son "sincrónicos a la fuente" y los pulsos se producen con el flanco ascendente del reloj, y su circuito fpga también usa el flanco ascendente del reloj para contar, puede tener un problema.

La sonda retrasará los bordes ascendentes pero no los bordes descendentes (tanto), debido a la constante RC del pullup.

¿Los pulsos tienen exactamente la duración de un período de reloj, o son más cortos?

Intente codificar su contador para usar los flancos descendentes del reloj (simplemente podría invertir el reloj), en el intento de asegurarse de que el pulso haya estado allí durante un tiempo (configuración) y que permanezca allí durante otro tiempo ( mantener) y ver si hay alguna diferencia en sus resultados.

    
respondido por el apalopohapa
0

También es posible que desee comprobar su tierra eléctrica. Esto puede suceder cuando algunas partes no están correctamente conectadas a tierra.

    
respondido por el martinm

Lea otras preguntas en las etiquetas