USRP-RIOのフロントパネルAUX I/Oコネクタから外部トリガを入力し、”Digital Edge”トリガとして送受信開始タイミングを同期させるテスト

概要

USRP-RIOのフロントパネルにAUX I/Oコネクタが存在しています。
この2番ピンに外部トリガを入力すると、"Digital Edge"トリガとして使用することが出来、送信と受信を同じタイミングで行えます。
USRP-RIOで使えるスタートトリガの種類はこちら

ハードウェア

NI USRP-2943R (40MHz BW)

LabVIEW

2015 SP1

NI-USRP

NI USRP 15.0

サンプルソフト

Simple USRP Streaming

AUX I/Oに外部トリガを入れる

USRP-RIOのAUX I/Oを使うためには、GPIO Expansion Kitを購入する必要があります。
D-SUB 15pinなので自作しても良いですが、その時間も惜しいので購入します。
clip_image001

次にPPSを、GPIO Expansion Kitの2番ピンに接続します。
この写真では、クロック/PPS分配器のOctoclockのPPS出力から信号を引き出して、GPIOに接続しています。

clip_image002

USRP-RIOフロントパネルに接続する。

clip_image003

Digital Edgeで送受信する

次にサンプルの受信側、送信側の"Start Trigger"を"Digital Edge"にします。

clip_image004

実行してみると、このように先頭からデータを取得できています。

clip_image005

拡大すると40us程度で出力は落ち着いているようです。

clip_image006

さらに拡大すると17.5usで立ち上がっています。
Rx Start Triggerの時とは送受信の開始時間が違うようです。トリガの処理時間と経路差でしょうか。

clip_image007

Digital Edge時のタイムアウト時間について

Digital Edgeに限らずトリガのタイムアウト時間は、サンプルアプリ

  • Rx Streaming (Host).vi
    Tx Streaming (Host).vi
    Tx and Rx Streaming (Host).vi

などでは、設定箇所はありません。ソフト内部でハードコードされていて、デフォルトで10秒です。

サンプルアプリをたどっていくと、

  • Fetch Rx Data (U32).vi
  • Write Tx Data (U32).vi

に行き着きますが、ここでタイムアウト時間が10秒と指定されています。
サンプルアプリUI側で設定箇所はなく、このVIに至るまでのVI階層でも設定されていないので、設定したい場合は、呼ばれているVI階層すべてで設定値を引き出す必要がありますね。

clip_image001

clip_image002

で、タイムアウトエラーが発生するのも上記2つのVIです。
以下は、Write Tx Data (U32).viですが、この中でFIFO WriteしているInvokeノードでタイムアウトエラーが発生します。

clip_image003

以上です。

コメント