LoginSignup
0
0

IIO Command Line Toolsの使い方

Last updated at Posted at 2023-08-16

ADALM-PLUTOをコマンドラインから使う方法の技術メモです。

本家はこちら->IIO Command Line Tools

解説

iio_info

USBで接続したあと接続するURIを確認する。

接続可能なバックエンドを表示する
iio_info -s

Available contexts:
0: 192.168.2.1 (Analog Devices PlutoSDR ... [ip:pluto.local]
1: .... [usb:2.9.5]
などが出力される。以下これをURIに用いる。

情報出力
iio_info -u ip:pluto.local

iio_attr

具体的な操作はこちらを使用する。

(ローカル周波数とフィルタの帯域幅の設定)
ローカル周波数は325MHzから3800MHzの間、帯域幅は20MHzまで

ローカル周波数とフィルタの帯域幅をセットする
#デバイスは"ad9361-phy"
#チャネルは"RX_LO""voltage0"
iio_attr -u ip:pluto.local -c ad9361-phy RX_LO frequency 82500000
iio_attr -u ip:pluto.local -c ad9361-phy voltage0 rf_bandwidth 300000

サンプリング周波数は521kspsから61.4Mspsで次のように設定する。しかし、低いサンプリング周波数はこれでは設定できず、ダウンサンプラーを設定する必要がある。

サンプリング周波数をセットする
#デバイスはad9361-phy
#チャネルはvoltage0
iio_attr -u ip:pluto.local -c ad9361-phy voltage0 sampling_frequency 705600

ダウンサンプラーを設定するには、次のようなコマンドで行えることになっている。しかしながら、コンパイル済みのiio_attrは、入力バッファが256バイトに制限されているため、コマンドラインツールでは、小さなタップのフィルタしか設定できない。このため、libiioを直接叩いて設定するしかない。

ダウンサンプルフィルタを設定する例
iio_attr -u ip:pluto.local -d ad9361-phy filter_fir_config
 RX 3 GAIN -6 DEC 4
 TX 3 GAIN 0 INT 4
 <FIR パラメータ>

データキャプチャーは、こんな感じでstd_outにバイナリデータで出力される。単発のデータでよければこれでキャプチャできる。コマンドラインツールではキャプチャしてデータを出力する処理に時間がかかり、連続して受信しようとするとギャップがあいてしまう。

データキャプチャ
#デバイスは"cf-ad9361-lpc"
#1024サンプルの(I,Q)を取り込む
iio_readdev -u ip:pluto.local -b 512 -s 1024 cf-ad9361-lpc

Juliaでデータを取り込むには、STDOUT出力を16bit signedのI,Qデータとして読み取ればよい。

IIO Command Line Toolでデータを取り込む
dat=Array{Int16}(undef,1024*2)
open(`iio_readdev -u ip:pluto.local -b 512 -s 1024 cf-ad9361-lpc` )  do io
    read!(io,dat)
end

性能、残課題など

IIO Command Line ToolでPlutoを設定し、データを取り込む方法を解説しました。しかしながら、ダウンサンプルフィルタを設定したり、データを連続的に取り込むには、libiioを直接叩く必要があります。

関連記事)
KATU @0x20FE, Julia ライブラリ呼び出し
KATU @0x20FE, ADALM PLUTOでFM受信(Julia版)
KATU @0x20FE, ADALM PLUTOでFM受信してみる(python版)
参考情報)
JA1SYK,http://www5.wind.ne.jp/ja1syk/pluto/pluto-index.html
JA1SYK,ADALM-PLUTO(PlutoSDR)の設定マニュアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0