À quelle vitesse dois-je échantillonner avec un analyseur logique?

11

Si j'ai un signal numérique à 10 MHz, à quelle vitesse dois-je échantillonner avec un analyseur logique pour éviter toute erreur de bit? La fréquence d'échantillonnage minimale augmente-t-elle si je souhaite connecter un décodeur de protocole (par exemple SPI)?

Je connais le théorème d'échantillonnage de Nyquist-Shannon et le fait qu'une onde carrée de 10 MHz a une énergie importante à des harmoniques plus élevées (30 MHz, 50 MHz, etc.). Cependant, un analyseur logique n'a pas besoin d'échantillonner ou de reproduire parfaitement une onde carrée pour savoir s'il s'agit d'une logique 1 ou 0. Je cherche ce qui est pratiquement nécessaire pour éviter les erreurs de bits ou les erreurs de décodage de protocole.

J'utilise le Saleae Logic Pro 16.

Patrick
la source

Réponses:

7

Le moins que vous puissiez faire est donné par le théorème de Shannon-Nyquist : pour pouvoir lire un signal, vous devez échantillonner au moins deux fois sa fréquence. Ici, vous pouvez échantillonner à 20 ms / s (méga échantillon par seconde). Néanmoins, 2 points pour une période sont très peu nombreux et introduisent beaucoup de gigue sur le signal reconstruit.

Votre analyseur logique ne partagera pas votre horloge de signal. C'est un cas courant en transmission, et je vous conseille de faire la même chose que la plupart des interfaces UART / SPI / I2C / ...: prendre 3 points par état. Cela permet de filtrer le bruit CEM à l'aide d'un filtre majoritaire et, lors de l'analyse, permet de voir une asymétrie importante entre vos signaux. Veuillez noter que l'horloge d'un bus SPI 10 MHz passe à la fois haute et basse toutes les 100 ns, vous devez donc échantillonner à 6 fois votre fréquence SPI (60 MS / s).

60 MS / s est courant pour les analyseurs logiques, et cela vous permettra de détecter une asymétrie excessive (entre vos données et votre horloge) pour la plupart des protocoles (y compris SPI). Néanmoins, avec une horloge non symétrique (avec tHIGH! = TLOW), vous devrez échantillonner assez rapidement pour échantillonner la partie la plus courte de l'horloge. Si votre horloge est ÉLEVÉE pour 1 µs et FAIBLE pour 9 µs, vous avez un signal de 100 kHz, mais vous avez besoin de 3 ms / s.

Cette réponse ne prend en compte que le signal que vous souhaitez analyser. Pour les problèmes CEM, nous utilisons généralement des oscilloscopes analogiques avec une fréquence d'échantillonnage 10 fois supérieure à la fréquence la plus élevée du système, mais c'est un peu cher et hors sujet, étant donné que la question est de décoder un bus SPI.

Jacen
la source
1
J'utilise 6 fois la fréquence d'horloge comme fréquence d'échantillonnage. 4 fois devraient suffire pour voir un biais, mais d'après mon expérience, il est plus difficile de comprendre lorsqu'il s'agit de temps de montée / descente importants.