本文主要是在Window 系统上,搭建ADALM-PLUTO的Python API调用,记录分享以备后期查阅。
环境: window7 64bit / python3.6 64bit
搭建步骤:1、安装驱动和设备测试2、用VS编译DLL动态库;3、安装iio模块 4、调用测试
ADALM-PLUTO
软件无线电平台
官方介绍
- 独立自足的便携式RF学习模块
- 高性价比实验平台
- 基于ADI公司的AD9363--高度集成的RF捷变收发器和Xilinx® Zynq Z-7010 FPGA
- RF频率范围:325 MHz至3.8 GHz
- 瞬时带宽最高达20 MHz
- 灵活速率、12位ADC和DAC
- 一个发射器和一个接收器,半双工或全双工
- 支持MATLAB®、Simulink®
- GNU无线电吸电流和源电流模块
- libiio、C、C++、C#和Python API
- USB 2.0供电接口,带有Micro-USB 2.0连接器
- 高质量塑料外壳
相关连接速查
user
https://wiki.analog.com/university/tools/pluto/users
ADALM-PLUTO for Developers
https://wiki.analog.com/university/tools/pluto/developers
github
https://github.com/analogdevicesinc/plutosdr-fw
What is libiio?
https://wiki.analog.com/resources/tools-software/linux-software/libiio
About libiio
https://wiki.analog.com/resources/tools-software/linux-software/libiio_internals
安装驱动和测试软件
安装没什么特别注意的,一路下一步就可,下对了软件就行,一个是USB驱动,一个是iio软件,可在上面user链接中找到,下面给出当前可用的连接地址:
设备连接如下图,TX/RX端用射频线链接组成环路,下面两个usb口白色连接USB充电器,黑色连接电脑
设备测试截图如下
设置一下参数,如给tx端一个单频信号,tx/rx采样率、tx/rx中心频率设置等。
新建一个查看波形窗口,file->new plot,在打开的窗口中 勾选voltage0/voltage1,设置plot type,不出意外,就可以在右侧看到信号的频谱了。
编译libiio.dll动态链接库
这里可参考官方文档
Building libiio in Visual Studio
我自己编译的库文件链接
libiio.dll x86/x64版本 ADALM-PLUTO用
安装IIO模块
这里我偷了个懒,没把libiio安装在环境中,而是直接将依赖和封装接口拷贝到了工程中,所需文件可在我上传的资源中找到libiio.dll x86/x64版本 ADALM-PLUTO用
编译器用的Pycharm,所需文件如下图所示,记得要对应系统版本

调用测试
一切就绪,接下来就是在Python下对plutoSDR进行测试了,运行iio_info.py会出现如下的错误
Traceback (most recent call last):
File "H:/pulto_work/test/iio_info.py", line 89, in <module>
Library version: 0.16 (git tag: v0.16)
main()
File "H:/pulto_work/test/iio_info.py", line 34, in main
ctx = iio.Context(uri)
File "H:\pulto_work\test\iio.py", line 734, in __init__
self._context = _new_default()
File "H:\pulto_work\test\iio.py", line 33, in _checkNull
raise OSError(err, _strerror(err))
OSError: [Errno 0] No error
看了一下代码,原来需要给它传入设备信息,在Pycharm的Run->Edit Configuration设置参数,如下图所示
再次运行iio_info.py,会看到如下的打印信息,至此环境搭建完成
IIO context created: network
Backend version: 0.14 (git tag: v0.14 )
Backend description string: 192.168.2.1 Linux (none) 4.9.0-10315-gb07f3c6 #234 SMP PREEMPT Tue Apr 24 13:47:24 CEST 2018 armv7l
IIO context has 8 attributes:
hw_model: Analog Devices PlutoSDR Rev.B (Z7010-AD9363)
hw_model_variant: 0
hw_serial: 104473dc599300131c001600ad622aba9b
fw_version: v0.28
ad9361-phy,xo_correction: 40000010
ad9361-phy,model: ad9363a
local,kernel: 4.9.0-10315-gb07f3c6
ip,ip-addr: 192.168.2.1
......