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 -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to