Hi All,
I'm using UHD 4.2 to play around with RFNOC4. I successfully added an FFT block
to the XG image of an X300, no static connections. uhd_usrp_probe returns as
expected. I use the attached code to test it out.
When I commit the graph I get the following error:
Traceback (most recent call last):
File "/home/lorenzo/test_rfnoc_fft.py", line 71, in <module>
graph.commit()
RuntimeError: ValueError: samples per package must not be smaller than atomic
item size
Digging a bit in the libraries I see that it originates from
rfnoc_streamer.cpp, specifically:
[...]
if (ais.is_valid()) {
const auto spp = this->rx_streamer_impl::get_max_num_samps();
if (spp < ais.get()) {
throw uhd::value_error("samples per package must not be
smaller than atomic item size");
}
[...]
Has someone encountered this error before?
Thenks,
Lorenzo
Attached code:
args = "addr=192.168.30.2"
graph = uhd.rfnoc.RfnocGraph(args)
radio_ID_A = uhd.rfnoc.BlockID(0, "Radio", 0);
radio_block_A = graph.get_block(radio_ID_A);
radio_ctrl_A = uhd.rfnoc.RadioControl(radio_block_A)
set_freq = 300e6
spp = 512
radio_ctrl_A.set_tx_frequency(set_freq, 0)
tx_freq = radio_ctrl_A.get_tx_frequency(0)
radio_ctrl_A.set_rx_frequency(set_freq, 0)
rx_freq = radio_ctrl_A.get_rx_frequency(0)
print("Tuning is TX %.1f, RX: %.1f MHz" % (tx_freq/1e6,rx_freq/1e6 ) )
radio_ctrl_A.set_properties(f'spp={spp}', 0)
radio_ctrl_A.set_rx_antenna('RX2',0)
radio_ctrl_A.set_rate(200e6)
DDC_ID = graph.find_blocks("DDC")[0]
DDC_block = graph.get_block(DDC_ID)
DDC_control = uhd.rfnoc.DdcBlockControl(DDC_block)
DDC_control.set_input_rate(200e6, 0)
DDC_control.set_output_rate(5e6, 0)
FFT_ID = graph.find_blocks("FFT")[0]
FFT_block = graph.get_block(FFT_ID)
FFT_control = uhd.rfnoc.FftBlockControl(FFT_block)
FFT_control.set_length(spp)
FFT_control.set_magnitude(uhd.libpyuhd.rfnoc.fft_magnitude.COMPLEX)
FFT_control.set_direction(uhd.libpyuhd.rfnoc.fft_direction.FORWARD)
FFT_control.set_shift_config(uhd.libpyuhd.rfnoc.fft_shift.REVERSE)
stream_args = uhd.usrp.StreamArgs('fc32','sc16')
stream_args.args = 'spp='+str(spp)
rx_stream = graph.create_rx_streamer(1, stream_args)
graph.connect(
radio_ID_A,0,
DDC_ID,0,
False
)
graph.connect(
DDC_ID,0,
FFT_ID,0,
False
)
graph.connect(
FFT_ID,0,
rx_stream,0
)
graph.commit()
_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]