¿Por qué mi forma de onda comienza antes del disparador?

10

Estoy aprendiendo cómo analizar el reloj y los datos del bus SPI utilizando un osciloscopio de almacenamiento digital de nivel de entrada. Estoy usando un BK Precision 2542B para medir la salida del reloj y las líneas MOSI de un Netduino que utiliza un microcontrolador ARM.

Imagen del osciloscopio

En esta imagen, tengo el reloj en el canal 1 (amarillo) y el MOSI en el canal 2 (azul). El disparador está configurado para usar el canal 1, usando un disparador de flanco ascendente de 1.44V. La amplitud de la onda cuadrada del reloj es de aproximadamente 3.3V.

El indicador de disparo está en el centro de la pantalla horizontalmente, pero tengo un pulso a su izquierda. Esperaba que el primer pulso del reloj comenzara en la ubicación del disparador. Sé que un osciloscopio de almacenamiento digital le permite ver eventos previos y posteriores al disparo, pero estoy confundido por qué el primer pulso no está donde pensé que estaría.

¿Mi comprensión de la activación es incorrecta o solo estoy usando un alcance extraño?

Editar: El tren de pulsos tiene 300 μs de ancho, se repite a intervalos de 2 ms y tengo un valor de retención de disparo de 500 μs. Ajustar la suspensión no ha cambiado el hecho de que un pulso precede al disparador.

Edición 2:

Después de un mayor análisis de la señal, incluido el uso del osciloscopio analógico, creo que he determinado que a veces la duración del pulso es de aproximadamente 350 μs en lugar de 300 μs. Esto puede ser una falla en los marcos generadores de código.

Descubrí que un tiempo de espera de 352 μs producirá el resultado esperado, pero de vez en cuando un impulso adicional precede al disparador.

Valor de retención

Grabé algunos cuadros para mostrar el pulso tanto ausente como presente:

Pulso principal ausente Pulso principal presente

Si configuro la base de tiempo horizontal el tiempo suficiente para ver la duración de los pulsos, siempre parece haber al menos 1,7 ms entre ellos:

Pulsos de datos a 1 ms por div

Entonces, aunque creo que el pulso principal es el resultado de un "fallo" de la fuente, todavía no estoy seguro de cómo un retraso de disparo> 360 μs todavía produce el pulso principal inesperado.

JYelton
fuente
2
Verifique su menú de activación: es posible que esté activando cuando el pulso esté bajo por => cierto tiempo y esto coincidirá con la captura de pantalla que ha mostrado. Intenta disparar por el borde.
Andy, alias
También tengo un alcance de "nivel de entrada", Owon SDS7102, y a veces también perderé el primer disparador. El comportamiento parece depender de la configuración de la base de tiempo / frecuencia de muestreo / memoria y la frecuencia de la señal. ¿Quizás usted también podría verse afectado por la configuración de la base de tiempo / frecuencia de muestreo?
AndrejaKo
1
He visto alcances de $ 18,000 que no pueden cambiar y reactivarse en menos de 5 ms. Bastante triste, de verdad. Con un intervalo de 2 segundos, al menos, ese no debería ser tu problema.
darron
1
@darron Como sucede, el 2s fue un error tipográfico: los pulsos están en intervalos de 2 ms. Creo que el alcance es volver a armar el gatillo lo suficientemente rápido, pero hay otros factores en juego como he mencionado en la actualización de la pregunta.
JYelton

Respuestas:

3

Probablemente tenga algún tipo de filtro de activación o retraso activado. De lo contrario, un disparador regular de borde ascendente debería haber captado el primer pulso, no esperar hasta el segundo. Mire cuidadosamente a través del menú del disparador y apague cualquier cosa que se llame "filtro", "retraso", "espera" y similares.

Olin Lathrop
fuente
Edité la pregunta. El flujo de datos se repite cada 2 ms, no 2 s. Me he asegurado de que no esté habilitado el filtrado, y que la retención del gatillo sea un poco más larga que el tren de pulsos. Mi alcance analógico (BK 2190B) se dispara muy bien en el primer pulso de reloj. El digital, sin embargo, siempre lo echa de menos. No estoy seguro de qué más hacer, excepto devolver el alcance digital, no parece muy capaz.
JYelton
3

Esta misma señal se dispara muy bien usando un Tektronix TDS3014, con valores de retención de disparador que varían de 350 μs a 1.5 ms o más.

Resultado Tek TDS3014

Creo que la respuesta, por lo tanto, es verificar las señales con más de un alcance cuando algo no se ve bien.

Nunca pude hacer que el BK 2542B mostrara correctamente el reloj sin perder el primer pulso o mostrar "interferencias" o "basura" aleatorias que hacen que los pulsos del reloj sean incontables.

JYelton
fuente
0

Amigo, el bus SPI se sincroniza en la caída de la línea del reloj, no en el ascenso, ¡es por eso que todo parece fuera de lugar!

Un saludo, Max

stalker2106
fuente
Apuesto a que al alcance no le importa cómo se sincroniza SPI, todo lo que ve es la señal A y la señal B.
Dmitry Grigoryev
0

Bueno, técnicamente su alcance no hizo nada malo: quería sincronizar en el borde del reloj ascendente, y todas sus capturas de pantalla son. Nadie te dijo que será el primer pulso . Si el osciloscopio comienza a grabar lo suficientemente temprano, el gatillo debe golpear el primer pulso, si no, mala suerte, obtienes la imagen # 2.

Lo que no puedo entender es por qué quieres tu disparador en CLK, y no en la señal SS. Falling edge en SS garantiza que usted está al comienzo de la transacción, mientras que CLK edge no lo hace.

EDITAR: teniendo en cuenta que parece que siempre pierde exactamente un pulso, después de todo, parece un error en el alcance. Aún así, vea si la activación de SS ayuda.

Dmitry Grigoryev
fuente