¿Qué tan rápido debo muestrear con un analizador lógico?

11

Si tengo una señal digital de 10 MHz, ¿qué tan rápido necesito muestrear con un analizador lógico para evitar errores de bit? ¿Aumenta la frecuencia de muestreo mínima si deseo adjuntar un decodificador de protocolo (por ejemplo, SPI)?

Soy consciente del teorema de muestreo de Nyquist-Shannon y del hecho de que una onda cuadrada de 10 MHz tiene una energía significativa en armónicos más altos (30 MHz, 50 MHz, etc.). Sin embargo, un analizador lógico no necesita muestrear o reproducir perfectamente una onda cuadrada para saber si es un 1 lógico o 0. Estoy buscando lo que es prácticamente necesario para evitar errores de bit o errores de decodificación de protocolo.

Estoy usando el Saleae Logic Pro 16.

Patricio
fuente

Respuestas:

7

Lo menos que puede hacer es el teorema de Shannon-Nyquist : para poder leer una señal, deberá muestrear al menos el doble de su frecuencia. Aquí, puede muestrear a 20MS / s (Mega muestra por segundo). Sin embargo, 2 puntos por un período son muy pocos e introducen mucha fluctuación en la señal reconstruida.

Su analizador lógico no compartirá su reloj de señal. Este es un caso común en la transmisión, y le recomendaría que haga lo mismo que la mayoría de las interfaces UART / SPI / I2C / ...: tome 3 puntos por estado. Esto permite filtrar el ruido EMC utilizando un filtro mayoritario y, al analizar, permite ver un sesgo significativo entre sus señales. Tenga en cuenta que el reloj de un bus SPI de 10MHz es alto y bajo cada 100ns, por lo que debe tomar muestras a 6 veces su frecuencia SPI (60MS / s).

60MS / s es común para los analizadores lógicos, y esto le permitirá detectar un sesgo excesivo (entre sus datos y su reloj) para la mayoría de los protocolos (incluido SPI). No obstante, con un reloj no simétrico (con tHIGH! = TLOW), necesitará muestrear lo suficientemente rápido como para muestrear la parte más corta del reloj. Si su reloj es ALTO para 1 µs y BAJO para 9 µs, tiene una señal de 100 kHz, pero necesita 3MS / s.

Esta respuesta solo considera la señal que desea analizar. Para problemas de EMC, usualmente usamos ámbitos analógicos con una frecuencia de muestreo 10 veces mayor que la frecuencia más alta en el sistema, pero es un poco costoso y fuera de tema, considerando que la pregunta es decodificar un bus SPI.

Jacen
fuente
1
Yo uso 6 veces la frecuencia del reloj como frecuencia de muestreo. 4 veces deberían ser suficientes para ver cualquier sesgo, pero en mi experiencia, es más difícil de entender cuando se trata de un gran tiempo de subida / bajada.