エントリーレベルのデジタルストレージオシロスコープを使用してSPIバスクロックとデータを分析する方法を学習しています。私はBK Precision 2542Bを使用して、ARMマイクロコントローラーを利用するNetduinoからのクロックおよびMOSIラインの出力を測定しています。
この画像では、チャネル1(黄色)にクロックがあり、チャネル2(青)にMOSIがあります。トリガは、1.44Vの立ち上がりエッジトリガを使用して、チャネル1を使用するように設定されています。クロック方形波の振幅は約3.3Vです。
トリガーインジケーターはディスプレイの水平方向の中央にありますが、左側にパルスがあります。クロックの最初のパルスがトリガーの場所で始まると思っていました。デジタルストレージオシロスコープを使用すると、プリトリガーイベントとポストトリガーイベントを確認できることは知っていますが、最初のパルスが思ったとおりにならない理由がわかりません。
トリガーの理解が間違っていますか、それとも奇妙なスコープを使用していますか?
編集:パルス列は300μs幅で、2ms間隔で繰り返され、トリガーホールドオフ値は500μsです。ホールドオフを調整しても、1つのパルスがトリガーに先行するという事実は変わりません。
編集2:
アナログオシロスコープの使用など、信号をさらに分析した結果、パルス幅が300 µsではなく350 µsになることがあると判断したと思います。これは、フレームを生成するコードの不具合の可能性があります。
ホールドオフ時間が352μsになると期待どおりの結果が得られることを発見しましたが、トリガーの前に時々余分なパルスが発生します。
いくつかのフレームを記録して、パルスの不在と存在の両方を示しました。
パルスの持続時間を確認するのに十分な長さの水平タイムベースを設定した場合、それらの間には常に少なくとも1.7ミリ秒の間隔があるように見えます。
したがって、リーディングパルスはソースからの「グリッチ」の結果であると思いますが、トリガーホールドオフ>360μsがどのようにして予期しないリーディングパルスを生成するかはまだわかりません。