Warum beginnt meine Wellenform vor dem Trigger?

10

Ich lerne, wie man SPI-Bustakt und -daten mit einem digitalen Speicheroszilloskop der Einstiegsklasse analysiert. Ich verwende einen BK Precision 2542B , um die Ausgabe der Takt- und MOSI-Leitungen von einem Netduino zu messen, der einen ARM-Mikrocontroller verwendet.

Oszilloskop Bild

In diesem Bild habe ich die Uhr auf Kanal 1 (gelb) und den MOSI auf Kanal 2 (blau). Der Trigger ist so eingestellt, dass er Kanal 1 mit einem Trigger mit steigender Flanke von 1,44 V verwendet. Die Taktwellenamplitude beträgt ca. 3,3V.

Die Triggeranzeige befindet sich horizontal in der Mitte des Displays, aber ich habe einen Impuls links davon. Ich hatte erwartet, dass der erste Impuls der Uhr an der Triggerstelle startet. Ich weiß, dass Sie mit einem digitalen Speicheroszilloskop Ereignisse vor und nach dem Auslösen sehen können, aber ich bin verwirrt, warum der erste Impuls nicht dort ist, wo ich ihn mir vorgestellt habe.

Ist mein Verständnis des Auslösens falsch oder verwende ich nur ein seltsames Zielfernrohr?

Bearbeiten: Die Impulsfolge ist 300 μs breit, wiederholt sich in Intervallen von 2 ms und ich habe einen Trigger-Hold-Off-Wert von 500 μs. Das Einstellen des Hold-Offs hat nichts an der Tatsache geändert, dass ein Impuls dem Trigger vorausgeht.

Bearbeiten 2:

Nach einer genaueren Analyse des Signals, einschließlich der Verwendung des analogen Oszilloskops, habe ich festgestellt, dass die Pulsdauer manchmal etwa 350 μs statt 300 μs beträgt. Dies kann ein Fehler in den Code-generierenden Frames sein.

Ich entdeckte, dass eine Haltezeit von 352 μs das erwartete Ergebnis liefert, aber hin und wieder geht dem Trigger ein zusätzlicher Impuls voraus.

Haltewert

Ich habe einige Bilder aufgenommen, um den fehlenden und vorhandenen Puls zu zeigen:

Leitpuls fehlt Leitimpuls vorhanden

Wenn ich die horizontale Zeitbasis lang genug einstelle, um die Dauer der Impulse zu sehen, scheinen immer mindestens 1,7 ms zwischen ihnen zu sein:

Datenimpulse mit 1 ms pro Div

Obwohl ich denke, dass der Leitimpuls das Ergebnis eines "Fehlers" von der Quelle ist, bin ich mir immer noch nicht sicher, wie ein Trigger Hold-Off> 360 μs immer noch den unerwarteten Leitimpuls erzeugt.

JYelton
quelle
2
Überprüfen Sie Ihr Trigger-Menü - möglicherweise wird der Puls für eine bestimmte Zeit auf => ausgelöst, und dies entspricht dem von Ihnen gezeigten Screenshot. Versuchen Sie stattdessen die Kantenauslösung.
Andy aka
Ich habe auch einen "Einstiegsbereich", Owon SDS7102, und manchmal wird auch der erste Auslöser übersehen. Das Verhalten scheint von der Zeitbasis / Abtastrate / Speichereinstellungen und der Frequenz des Signals abzuhängen. Vielleicht könnten auch Sie von den Einstellungen für Zeitbasis / Abtastrate betroffen sein?
AndrejaKo
1
Ich habe gesehen, dass 18.000-Dollar-Oszilloskope in weniger als 5 ms nicht in der Lage sind, sich umzudrehen und erneut auszulösen. Wirklich ziemlich traurig. Zumindest mit einem Intervall von 2 Sekunden sollte das nicht Ihr Problem sein.
Darron
1
@darron Wie es passiert, war die 2s ein Tippfehler - die Impulse sind in Intervallen von 2 ms. Ich denke, das Zielfernrohr schaltet den Auslöser schnell genug wieder ein, aber andere Faktoren spielen eine Rolle, wie ich im Update der Frage erwähnt habe.
JYelton

Antworten:

3

Sie haben wahrscheinlich eine Art Triggerfilterung oder Verzögerung aktiviert. Andernfalls sollte ein regulärer Trigger für steigende Flanken den ersten Impuls abgefangen und nicht bis zum zweiten gewartet haben. Schauen Sie sich das Trigger-Menü genau an und schalten Sie alles aus, was als "Filter", "Verzögerung", "Holdoff" und dergleichen bezeichnet wird.

Olin Lathrop
quelle
Ich habe die Frage bearbeitet. Der Datenstrom wiederholt sich alle 2 ms, nicht 2s. Ich habe sichergestellt, dass keine Filterung aktiviert ist und dass das Abhalten des Triggers etwas länger ist als die Impulsfolge. Mein analoges Oszilloskop (BK 2190B) wird beim ersten Taktimpuls einwandfrei ausgelöst. Der Digitale vermisst es jedoch immer. Ich bin mir nicht sicher, was ich tun soll, außer das digitale Oszilloskop zurückzugeben. Es scheint nicht sehr fähig zu sein.
JYelton
3

Das gleiche Signal wird mit einem Tektronix TDS3014 einwandfrei ausgelöst, wobei die Trigger-Hold-Off-Werte zwischen 350 μs und 1,5 ms oder mehr liegen.

Tek TDS3014 Ergebnis

Ich denke, die Antwort besteht daher darin, Signale mit mehr als einem Bereich zu überprüfen, wenn etwas nicht richtig aussieht.

Ich war nie in der Lage, den BK 2542B dazu zu bringen, die Uhr richtig anzuzeigen, ohne entweder den ersten Impuls zu verpassen oder zufällige "Störungen" oder "Müll" zu zeigen, wodurch die Uhrimpulse unzählig wurden.

JYelton
quelle
0

Alter, der SPI-Bus wird beim Fall der Taktleitung synchronisiert, nicht beim Anstieg, deshalb sieht alles falsch aus!

Grüße, max

stalker2106
quelle
Ich wette, das Oszilloskop kümmert sich nicht darum, wie SPI synchronisiert wird. Es sieht nur Signal A und Signal B.
Dmitry Grigoryev
0

Technisch gesehen hat Ihr Oszilloskop nichts falsch gemacht: Sie wollten bei steigender Taktflanke synchronisieren, und alle Ihre Screenshots sind es. Niemand hat dir gesagt, dass es der erste Puls sein wird . Wenn das Oszilloskop ausreichend früh mit der Aufnahme beginnt, sollte der Auslöser den ersten Impuls treffen. Wenn nicht - Pech, Sie erhalten Bild 2.

Was ich nicht ganz verstehen kann, ist, warum Sie Ihren Trigger auf CLK und nicht auf SS-Signal wollen. Eine fallende Flanke bei SS garantiert, dass Sie am Anfang der Transaktion stehen, eine steigende CLK-Flanke nicht.

BEARBEITEN: Wenn man bedenkt, dass man immer genau einen Impuls verpasst, sieht es doch wie ein Fehler im Bereich aus. Überprüfen Sie dennoch, ob das Auslösen auf SS hilft.

Dmitry Grigoryev
quelle