Category: Software
Product Number: AD9363
Software Version: v0.38
I am trying to develop a FMCW RADAR using pluto. I want to synchronize Tx and Rx. For that I am using TDD Channel[1] and Channel[2].
I have enabled TDD as explained in this link: WIKI
Here is my code:
import time
import adi
import numpy as np
# Modulr Init
sdr_ip = "ip:pluto.local" # "192.168.2.1, or pluto.local" # IP address of the Transceiver Block
my_sdr = adi.ad9361(uri=sdr_ip) # Pluto Init
sdr_pins = adi.one_bit_adc_dac(sdr_ip) # Pluto GPIO Pins
tdd = adi.tdd(sdr_ip) # TDD Engine INIT
sample_rate = fs = 60e6
N = 1024
num_chirps = 256
ts = 1/int(fs)
center_freq= 2.2e9
signal_freq = 3e6
BW = sample_rate/4
slope = BW/(N*ts)
ramp_time_us = 300
ramp_time_ms = ramp_time_us/1e3
ramp_time_s = ramp_time_ms/1e3
# SDR Config
my_sdr.rx_lo = int(center_freq)
my_sdr.rx_enabled_channels = 0 # enable Rx1 and Rx2
my_sdr.tx_lo = int(center_freq)
my_sdr.tx_cyclic_buffer = True
my_sdr.sample_rate = sample_rate
my_sdr.rx_buffer_size = N * num_chirps
# TDD Config
# sdr_pins.gpio_tdd_ext_sync = False # If set to True, this enables external capture triggering using the L24N GPIO on the Pluto. When set to false, an internal trigger pulse will be generated every second
tdd.enable = False # disable TDD to configure the registers
tdd.sync_external = False
tdd.startup_delay_ms = 0
PRI_ms = ramp_time_ms
tdd.frame_length_ms = PRI_ms # each chirp is spaced this far apart
tdd.burst_count = num_chirps # number of chirps in one continuous receive buffer
tdd.channel[0].enable = False
tdd.channel[0].polarity = False
tdd.channel[0].on_raw = 0
tdd.channel[0].off_raw = 10
tdd.channel[1].enable = True
tdd.channel[1].polarity = False
tdd.channel[1].on_raw = 0
tdd.channel[1].off_raw = 10
tdd.channel[2].enable = True
tdd.channel[2].polarity = False
tdd.channel[2].on_raw = 0
tdd.channel[2].off_raw = 10
tdd.enable = True
# Generate Signal
t = np.linspace(0, N*ts, ts)
fc = int(signal_freq * fs/N)* N/fs
i = (2**14) * np.cos(2 * np.pi * fc * t) # A cos(2PiFt)
q = (2**14) * np.sin(2 * np.pi * fc * t) # A sin(2PiFt)
iq = i + 1j * q # Complex N
my_sdr.tx(iq)
while True:
data = my_sdr.rx()
print(len(data))I am getting following errors:
Exception: No device found for one-bit-adc-dac
If I comment
sdr_pins = adi.one_bit_adc_dac(sdr_ip) # Pluto GPIO Pins
I get ,
File "/home/zebu/pluto_tests/test.py", line 9, in <module> tdd = adi.tddn(sdr_ip) # TDD Engine INIT File "/usr/local/lib/python3.10/dist-packages/adi/tddn.py", line 23, in __init__ for ch in self._ctrl.channels: AttributeError: 'NoneType' object has no attribute 'channels'