ADALM-PLUTO
Python 3.9.6 64-bit for Windows
I installed Windows drivers for ADALM-PLUTO
https://wiki.analog.com/university/tools/pluto/drivers/windows
and pyadi-iio https://wiki.analog.com/resources/tools-software/linux-software/pyadi-iio
and tried short Python program
import adi
cf = 436e6
sdr = adi.Pluto('ip:192.168.2.1')
sdr.tx_lo = int(cf)
print(sdr.tx_lo)
Result: AttributeError: function 'iio_device_get_label' not found
Fix: I copied iio.py file in the same directory where my Python program is
iio.py can be found from here (libiio-0.21.g565bf68-Windows.zip)
https://github.com/analogdevicesinc/libiio/releases
Direct Digital Synthesizers
https://analogdevicesinc.github.io/pyadi-iio/fpga/index.html#direct-digital-synthesizers
dds_single_tone and dds_dual_tone produce continuos tone*. Tone generation can be stopped with:
dds_single_tone(0, 0)
dds_dual_tone(0, 0, 0, 0)
* stops automatically after about within 50 seconds
Generate FM tone
import adi
import numpy as np
import time
sample_rate = 1.0e6
cf = 436e6
hw_gain_chan0 = -10
tone = 1124
carrier = 440
num_samples = 100000
t = 0.12
sdr = adi.Pluto('ip:192.168.2.1')
sdr.tx_lo = int(cf)
sdr.sample_rate = int(sample_rate)
sdr.tx_hardwaregain_chan0 = int(hw_gain_chan0)
sdr.tx_rf_bandwidth = int(sample_rate)
print(sdr.tx_lo)
print(sdr.tx_hardwaregain_chan0)
print(sdr.sample_rate)
d = np.linspace(0, t, int(t * sample_rate), endpoint = False)
b = np.linspace(0, 1, int(t * sample_rate))
o = np.sin(2 * np.pi * carrier * d + b * np.sin(2 * np.pi * tone * d))
o *= 2**14
for n in range(128):
sdr.tx(o)
time.sleep(0.12)
https://i.ibb.co/jrCHGbs/sdr-ccir-pluto.jpg
Visual Studio 2019 Python environment
Debug -> Start Without Debugging
Result: Error
Exception ignored in: <function Buffer.__del__ at 0x03363D68>
OSError: exception: access violation writing 0x00000014
Fix: Debug -> Execute Project in Python Interactive
I once noticed that suddenly sdr.tx stopped working, I disconnected pluto device and restarted PC and tx worked after that
Kommentit
Tämän blogin kommentit tarkistetaan ennen julkaisua.