Post Go back to editing

FMCOMMS5 + ZC702, Linux Drivers, IIO-OSC Calibration crashes

Category: Software
Software Version: Win 10

Hi,

I am using FMCOMMS5 + ZC702 with Linux Drivers and I am streaming data via Ethernet to IIO-OSC and Matlab on a Windows 10 PC. I am using the newest version of IIO-Osc and Linux on the ZC702, also all tools and everything was updated just a few days ago. I have these problems/questions:

1.) I do exactly as you describe it here: https://wiki.analog.com/resources/eval/user-guides/ad-fmcomms5-ebz/phase-sync , with SMA connectors between each TX and RX-port (I also tried it with a 4 port splitter and a Pluto-SDR and with an antenna array too) but still in 80% of the case IIO-OSC simply crashes during the calibration. Is there a remedy for this?

2.) I would like to do the calibration and MCS in Matlab using the Transceiver-Toolbox, what are the IIO-commands I need to accomplish this? In IIO-Osc it is possible to set the phase shift for each RX-Channel (I guess the phase shift is then done on the board itself?), I also need the command for this please.

3.) Sometimes the received samples in IIO-Osc of a few channels are simply some random constant value, see here:

But I never have this problem with Matlab.

   

Thank you very much!

Parents Reply
  • Thank you, Ramona, unfortunately the Windows Installer for libad9361-iio on github cannot be downloaded, I get the error:

    {"message":"Artifact not found or access denied."}

    I'm not sure how to access this function via Matlab. I mean, there is theoretically a way to access c-functions in Matlab, but then there is the issue of passing the rx.adi.fmcomms5 Matlab data object to a c function. Can you provide a simple example? It is really sad that there is no MCS function provided in the Transceiver Toolbox by default for FMCOMMS5.

    But anyway, I think it would be much easier to access the console and call the MCS-function on the board itself remotely, since I have libad9361-iio installed there. I am searching the entire forum for a few days now, I cannot find a working example. Could you help me please, I would be very grateful for this line of console code.

    UPDATE: I found the Windows installer for libad9361-iio and installed it, but where are all the files? I also found the right MATLAB command, I think:

    https://github.com/analogdevicesinc/TransceiverToolbox/blob/d1a745221f759e2a483cdb45cf2bf7a79961961e/%2Badi/%2BFMComms5/Rx.m#L297

     now I have written a public method in Rx.m in the FMComms5 folder:

    		function MultiChipSync(obj)
    		    setupLibad9361(obj);
              calllib('libad9361','ad9361_fmcomms5_multichip_sync',obj.iioCtx,uint32(3));
    		end

    I have also tried this:

     ip_address= 'analog.local';
     iio_ctx = calllib('libiio', 'iio_create_network_context', ip_address);
    calllib('libad9361','ad9361_fmcomms5_multichip_sync',iio_ctx,uin;t32(3))

    As shown, I use this function the same way as it is done in the setupInit(obj) function in the same file, but I often get the error that the Library was not found. When it does not return an error, the device actually does not perform the MCS as there are still random phase differences between e.g. RX 1/2 and RX 3/4 whenever I change the RX LO and call the function. I'm also not sure if the MCS that is done during the Initialization (said line 297) is working at all because whenever I turn on the device, there always is a random phase difference between the mentioned RX channels. Maybe the problem is that i create a new iio_ctx, but I see not other way..

    There is also this very helpful script which shows how to call library functions: https://github.com/analogdevicesinc/libad9361-iio/blob/main/test/testLoadLibrary.m

Children