技术分享

了解最新公司动态及行业资讯

LogicRF™ H102 Pyadi-iio使用说明

时间:2024-04-12   访问量:1023


PyADI-IIO_Logo_600.png

LogicRF™ H102支持PyADI-IIO,版本0.0.13,对应Libiio V0.24。

PyADI-IIO 相关链接:

https://wiki.analog.com/resources/tools-software/linux-software/pyadi-iio

https://analogdevicesinc.github.io/pyadi-iio/devices/adi.adrv9002.html

对应API函数源码见如下链接:

https://github.com/analogdevicesinc/pyadi-iio/blob/v0.0.13/adi/adrv9002.py


1、安装libiio驱动

a)Windows环境

windows环境下直接安装libiio驱动,libiio-0.24.gc4498c2-Windows-setup.exe,

下载链接:https://github.com/analogdevicesinc/libiio/releases/download/v0.24/libiio-0.24.gc4498c2-Windows-setup.exe

b)Python环境安装

windows下建议Anaconda(内置Spyder IDE),下载地址:https://www.anaconda.com/download/

c)准备工作

安装完成后,打开Anaconda Prompt 命令行窗口,输入iio_info -s,如下就说明libiio驱动安装好了。

image-202406241114388051739963670162684.png

打开Spyder,Ipython控制台输入

pip install pyadi-iio==0.0.13

1739963670109693.png

新建.py文件,输入

import adi
# 检查pyadi-iio是否安装成功
print("pyadi-iio version:", adi.__version__)

执行程序,在右下的Ipython控制台可以看到 打印信息”pyadi-iio version: 0.0.13“,则说明pyadi-iio安装好了。

1739963670151306.png

d)测试H102

新建py文件,代码如下,执行就可以获取数据。

# -*- coding: utf-8 -*-
"""
Created on Mon May 24 11:20:18 2023
@author: LogicRF
@email:info@logicrf.com
"""

import adi
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
import time

# 检查pyadi-iio是否安装成功
#print("pyadi-iio version:", adi.__version__)

# 初始化ADRV9002设备
h102 = adi.adrv9002(uri="ip:10.0.0.48")  # 替换为你设备的实际IP地址
# 关闭发射通道
# 禁用发射通道0,1
h102.tx0_en = 0 
h102.tx1_en = 0  

# 打印当前设置的LO频率
print("RX LO Frequency: ", h102.rx0_lo)
print("RX LO Frequency: ", h102.rx1_lo)

# 设置RX的LO频率
h102.rx0_lo = 1650000000  # 设置RX1 LO频率为1.65 GHz
h102.rx1_lo = 1650000000  # 设置RX2 LO频率为1.65 GHz

# 或者使用属性名称设置RX LO频率
#h102._set_iio_attr("altvoltage0", "RX1_LO_frequency", True, 1450000000)
#h102._set_iio_attr("altvoltage1", "RX2_LO_frequency", True, 1450000000)
#获取采样率
fs = int(h102.rx0_sample_rate)
print("rx0_sample_rate: ", fs)

#获取采样率
bw = int(h102.rx0_rf_bandwidth)
print("rx0_rf_bandwidth: ", bw)
h102.rx_buffer_size = 2 ** 10
# Collect data
for r in range(20):
    x = h102.rx2() #从RX2通道接收数据
    f, Pxx_den = signal.periodogram(x, fs)
    plt.clf()
    plt.semilogy(f, Pxx_den)
    # plt.ylim([1e-9, 1e2])
    plt.xlabel("frequency [Hz]")
    plt.ylabel("PSD [V**2/Hz]")
    plt.draw()
    plt.pause(0.05)
    time.sleep(0.1)
# 从RX1通道接收数据
rx_data = h102.rx1()
# 绘制接收到的数据
plt.figure()
plt.plot(np.real(rx_data), label='Real Part')
plt.plot(np.imag(rx_data), label='Imaginary Part')
plt.legend()
plt.title('Received Data')
plt.xlabel('Sample Index')
plt.ylabel('Amplitude')
plt.show()

# 关闭设备
del h102`


上一篇:logicrfclk库使用说明

下一篇:没有了!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

服务热线

工作时间: 08:00~18:00

服务电话: +86 130-9449-9002

服务电话: +86 180-8187-6464

服务热线

微信扫一扫

微信联系
返回顶部