Pourquoi ma forme d'onde démarre-t-elle avant le déclenchement?

10

J'apprends à analyser l'horloge et les données du bus SPI à l'aide d'un oscilloscope de stockage numérique d'entrée de gamme. J'utilise un BK Precision 2542B pour mesurer la sortie de l'horloge et des lignes MOSI d'un Netduino qui utilise un microcontrôleur ARM.

Image de l'oscilloscope

Dans cette image, j'ai l'horloge sur le canal 1 (jaune) et le MOSI sur le canal 2 (bleu). Le déclencheur est réglé pour utiliser le canal 1, en utilisant un déclencheur à front montant de 1,44 V. L'amplitude de l'onde carrée de l'horloge est d'environ 3,3 V.

L'indicateur de déclenchement est au centre de l'écran horizontalement, mais j'ai une impulsion à sa gauche. Je m'attendais à ce que la première impulsion de l'horloge commence à l'emplacement de déclenchement. Je sais qu'un oscilloscope à stockage numérique vous permet de voir les événements avant et après déclenchement, mais je ne comprends pas pourquoi la première impulsion n'est pas là où je pensais qu'elle serait.

Ma compréhension du déclenchement est-elle incorrecte, ou est-ce que j'utilise simplement une lunette étrange?

Edit: Le train d'impulsions a une largeur de 300 μs, se répète à des intervalles de 2 ms et j'ai une valeur de maintien de déclenchement de 500 μs. Le réglage du maintien n'a pas changé le fait qu'une impulsion précède le déclenchement.

Modifier 2:

Après plus d'analyse du signal, y compris à l'aide de l'oscilloscope analogique, je pense avoir déterminé que parfois la durée d'impulsion est d'environ 350 μs au lieu de 300 μs. Cela peut être un problème dans les trames génératrices de code.

J'ai découvert qu'un temps d'attente de 352 μs produirait le résultat attendu, mais de temps en temps une impulsion supplémentaire précède le déclenchement.

Valeur de retenue

J'ai enregistré quelques images pour montrer l'impulsion à la fois absente et présente:

Impulsion de tête absente Impulsion de tête présente

Si je règle la base de temps horizontale assez longtemps pour voir la durée des impulsions, il semble toujours y avoir au moins 1,7 ms entre elles:

Impulsions de données à 1 ms par div

Donc, même si je pense que l'impulsion de tête est le résultat d'un "pépin" de la source, je ne sais toujours pas comment une impulsion de déclenchement> 360 μs produit toujours l'impulsion de tête inattendue.

JYelton
la source
2
Vérifiez votre menu de déclenchement - vous pourriez déclencher si le pouls est faible pendant => un certain temps et cela correspondra à la capture d'écran que vous avez montrée. Essayez plutôt le déclenchement sur front.
Andy aka
J'ai également une portée "d'entrée de gamme", Owon SDS7102, et elle manquera aussi parfois le premier déclencheur. Le comportement semble dépendre de la base de temps / de la fréquence d'échantillonnage / des paramètres de mémoire et de la fréquence du signal. Peut-être que vous aussi pourriez être affectés par les paramètres de base de temps / fréquence d'échantillonnage?
AndrejaKo
1
J'ai vu des portées de 18 000 $ incapables de faire demi-tour et de redéclencher en moins de 5 ms. Vraiment triste, vraiment. Avec un intervalle de 2 secondes au moins, cela ne devrait pas être votre problème.
darron
1
@darron Il se trouve que le 2s était une faute de frappe - les impulsions sont à des intervalles de 2 ms. Je pense que la portée réarme le déclencheur assez rapidement, mais d'autres facteurs sont en jeu comme je l'ai mentionné dans la mise à jour de la question.
JYelton

Réponses:

3

Vous avez probablement une sorte de filtrage de déclenchement ou de retard activé. Sinon, un déclencheur à front montant régulier aurait dû prendre la première impulsion, sans attendre la seconde. Regardez attentivement dans le menu de déclenchement et désactivez tout ce qui est appelé "filtre", "retard", "holdoff", etc.

Olin Lathrop
la source
J'ai édité la question. Le flux de données se répète toutes les 2 ms, pas 2 s. J'ai veillé à ce qu'aucun filtrage ne soit activé et que la détente de déclenchement soit légèrement plus longue que le train d'impulsions. Mon oscilloscope analogique (BK 2190B) se déclenche très bien à la première impulsion d'horloge. Le numérique, cependant, le manque toujours. Je ne sais pas quoi faire d'autre que de retourner la portée numérique, elle ne semble pas très capable.
JYelton
3

Ce même signal se déclenche très bien en utilisant un Tektronix TDS3014, avec des valeurs de maintien de déclenchement allant de 350 μs à 1,5 ms ou plus.

Résultat Tek TDS3014

Je pense donc que la réponse est de recouper les signaux avec plus d'une portée lorsque quelque chose ne va pas bien.

Je n'ai jamais réussi à faire en sorte que le BK 2542B affiche correctement l'horloge sans manquer la première impulsion, ni montrer des "pépins" ou des "ordures" aléatoires rendant les impulsions d'horloge indénombrables.

JYelton
la source
0

Mec, le bus SPI est synchronisé sur la chute de la ligne d'horloge, pas sur la montée, c'est pourquoi tout semble déplacé!

Cordialement, Max

stalker2106
la source
Je parie que la portée ne se soucie pas de la façon dont SPI est synchronisé, tout ce qu'elle voit est le signal A et le signal B.
Dmitry Grigoryev
0

Eh bien, techniquement, votre portée n'a rien de mal: vous vouliez synchroniser sur le front d'horloge montant, et toutes vos captures d'écran le sont. Personne ne vous a dit que ce serait la première impulsion . Si la portée commence à enregistrer suffisamment tôt, le déclencheur devrait frapper la toute première impulsion, sinon - chance, vous obtenez l'image n ° 2.

Ce que je ne comprends pas, c'est pourquoi vous voulez que votre déclencheur soit sur CLK, et non sur le signal SS. Le front descendant sur SS garantit que vous êtes au début de la transaction, pas le front CLK ascendant.

EDIT: étant donné que vous semblez toujours manquer exactement une impulsion, cela ressemble à un bug dans la portée après tout. Pourtant, voyez si le déclenchement sur SS aide.

Dmitry Grigoryev
la source