Warum beginnt meine Wellenform vor dem Trigger?

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

Oszilloskopbild

In diesem Bild habe ich die Uhr auf Kanal 1 (gelb) und das MOSI auf Kanal 2 (blau). Der Trigger ist so eingestellt, dass er Kanal 1 verwendet, wobei ein Trigger mit steigender Flanke von 1,44 V verwendet wird. Die Rechteckwellenamplitude des Taktgebers beträgt etwa 3,3 V.

Die Auslöseanzeige befindet sich horizontal in der Mitte des Displays, aber ich habe einen Impuls auf der linken Seite. Ich hatte erwartet, dass der erste Impuls der Uhr am Triggerort beginnt. Ich weiß, dass Sie mit einem digitalen Speicheroszilloskop Pre- und Post-Trigger-Ereignisse sehen können, aber ich bin verwirrt, warum der erste Impuls nicht dort ist, wo ich es 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 Anpassen des Holdoffs hat nichts an der Tatsache geändert, dass dem Trigger ein Impuls vorausgeht.

Bearbeiten 2:

Nach weiterer Analyse des Signals, einschließlich der Verwendung des analogen Oszilloskops, habe ich, glaube ich, festgestellt, dass die Impulsdauer manchmal etwa 350 μs statt 300 μs beträgt. Dies kann ein Fehler im Code sein, der Frames generiert.

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

Hold-Off-Wert

Ich habe einige Frames aufgenommen, um den Puls sowohl abwesend als auch vorhanden zu zeigen:

Leitpuls fehlt Leitpuls 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 liegen:

Datenimpulse bei 1 ms pro div

Obwohl ich denke, dass der führende Impuls das Ergebnis eines "Glitch" von der Quelle ist, bin ich mir immer noch nicht sicher, wie ein Trigger-Hold-off> 360 μs immer noch den unerwarteten führenden Impuls erzeugt.

Überprüfen Sie Ihr Trigger-Menü - Sie triggern möglicherweise auf einen niedrigen Puls für => eine bestimmte Zeit, und dies stimmt mit dem Screenshot überein, den Sie gezeigt haben. Versuchen Sie es stattdessen mit Flankentriggerung.
Ich habe auch ein "Einstiegs"-Oszilloskop, Owon SDS7102, und auch es verfehlt manchmal den ersten Auslöser. Das Verhalten scheint von Zeitbasis/Abtastrate/Speichereinstellungen und Frequenz des Signals abzuhängen. Vielleicht könnte auch Ihr von den Zeitbasis-/Abtastrateneinstellungen beeinflusst werden?
Ich habe gesehen, dass Oszilloskope im Wert von 18.000 US-Dollar nicht in weniger als 5 ms umkehren und erneut auslösen können. Ziemlich traurig, wirklich. Mit einem 2s-Intervall sollte das zumindest nicht Ihr Problem sein.
@darron Zufällig waren die 2s ein Tippfehler - die Impulse sind in 2-ms-Intervallen. Ich denke, das Zielfernrohr stellt den Abzug schnell genug wieder scharf, aber andere Faktoren spielen eine Rolle, wie ich im Update zu der Frage erwähnt habe.

Antworten (4)

Sie haben wahrscheinlich eine Art Trigger-Filterung oder Verzögerung aktiviert. Andernfalls hätte ein regulärer Trigger mit steigender Flanke den ersten Impuls abfangen und nicht bis zum zweiten warten müssen. Sehen Sie sich das Trigger-Menü genau an und schalten Sie alles aus, was als "Filter", "Verzögerung", "Holdoff" und dergleichen bezeichnet wird.

Ich habe die Frage bearbeitet. Der Datenstrom wiederholt sich alle 2 ms, nicht alle 2 s. Ich habe sichergestellt, dass keine Filterung aktiviert ist und dass die Triggerverzögerung etwas länger als die Impulsfolge ist. Mein analoges (BK 2190B) Oszilloskop löst beim ersten Taktimpuls problemlos aus. Der Digitale verfehlt sie jedoch immer. Ich bin mir nicht sicher, was ich sonst tun soll, außer das digitale Oszilloskop zurückzugeben, es scheint nicht sehr leistungsfähig zu sein.

Dasselbe Signal triggert problemlos mit einem Tektronix TDS3014, mit Trigger-Holdoff-Werten im Bereich von 350 μs bis 1,5 ms oder mehr.

Tek TDS3014 Ergebnis

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

Ich konnte den BK 2542B nie dazu bringen, die Uhr richtig anzuzeigen, ohne entweder den ersten Impuls zu verpassen oder zufällige "Störungen" oder "Müll" zu zeigen, die die Taktimpulse unzählbar machen.

Nun, technisch gesehen hat Ihr Oszilloskop nichts falsch gemacht: Sie wollten bei steigender Taktflanke synchronisieren, und alle Ihre Screenshots sind. Niemand hat dir gesagt, dass es der erste Impuls sein wird . Wenn das Oszilloskop früh genug aufzeichnet, sollte der Auslöser den allerersten Impuls treffen, wenn nicht - Pech gehabt, Sie erhalten Bild Nr. 2.

Was ich nicht ganz verstehen kann, ist, warum Sie Ihren Trigger auf CLK und nicht auf SS-Signal haben möchten. Eine fallende Flanke an SS garantiert, dass Sie sich am Beginn der Transaktion befinden, eine steigende CLK-Flanke jedoch nicht.

EDIT: Wenn man bedenkt, dass Sie immer genau einen Impuls zu verpassen scheinen, sieht es doch wie ein Fehler im Bereich aus. Sehen Sie trotzdem, ob das Auslösen auf SS hilft.

Alter, der SPI-Bus wird beim Abfallen der Taktleitung synchronisiert, nicht beim Anstieg, deshalb sieht alles fehl am Platz aus!

Grüße Max

Ich wette, dem Oszilloskop ist es egal, wie SPI synchronisiert ist, es sieht nur Signal A und Signal B.