Post Go back to editing

Libiio command logging

Category: Software
Product Number: Libiio
Software Version: Windows IIO Oscilloscope Ver 15, ZCU102 + AD9082 + 2021_r1

I am able configure AD9082 device and send/receive payload data using IIO Oscilloscope running on the Windows PC. However, I am not able to do the same with MATLAB toolbox, which I am debugging now, so I am wondering whether there is any log file captured somewhere containing all libiio commands issued to the target device when I configure and display the data using IIO Oscilloscope. Thanks for your help. 

  • iiod does not do logging of commands. Are you seeing errors in MATLAB or just not getting the behavior expected?

    -Travis

  • Thanks for the quick response. I am using the file from zynqmp-zcu102-rev10-ad9082-m4-l8-vcxo100.zip for the BOOT partition. IIO Oscilloscope works (two complex channels RX and TX) and I am able to get data using pyadi-iio as well. However, it doesn't work with the high speed converter toolbox of MATLAB.

    Here is the MATLAB code I am testing, using R2021b

      rx = adi.AD9081.Rx('uri', 'ip:192.168.1.5', 'num_data_channels',2,'num_coarse_attr_channels',2,'num_fine_attr_channels',2);
      [out, valid] = rx();

    The rx() function returns all zeros and valid is always false. Once this happens, IIO Oscilloscope does not work anymore (iio_info works, but not getting any RX data). Sometimes I have to replace the files in the BOOT partition to make it work again. Your help on this matter would be greatly appreciated.

  • I overlooked the comment in the release note "Targeting support for AD9081 RX & TX design is unavailable. Please use toolbox version v21.2.1." I am able to get the data if I use v21.2.1.

    I have one additional question. The following is the snapshot of the command window

    >> nrx = 2;
    >> rx = adi.AD9081.Rx('uri', 'ip:192.168.1.5', 'num_data_channels',nrx,'num_coarse_attr_channels',nrx,'num_fine_attr_channels',nrx);
    >> rx.EnabledChannels = [1,2];
    >> data=rx();
    >> size(data)

    ans =

    32768 2

    >> rx

    rx =

    adi.AD9081.Rx with properties:

    SamplingRate: 1500000000
    ChannelNCOFrequencies: [0 0]
    MainNCOFrequencies: [0 0]
    ChannelNCOPhases: [0 0]
    MainNCOPhases: [0 0]
    TestMode: 'off'
    EnablePFIRs: false
    PFIRFilenames: ''
    SamplesPerFrame: 32768
    EnabledChannels: [1 2]
    uri: 'ip:analog'

    >>

    I think I enabled two complex channels, and I should get 32768 complex numbers from rx() function, but doesn't seem that way. Could you clarify?