MATLAB: Zynq Radio Software Interface Model: UDP send/receive blocks not working

ad9361/ad9364adi rf somadrv9361Communications ToolboxDSP System ToolboxEmbedded CoderHDL Coderhw/sw co-designMATLABpicozedqpskqpsk modelsimulinksoftware interface modeludpudp blockudp receiveudp sendudp send/receivezynq

Working through the HW/SW Co-Design QPSK Transmit and Receive Using Analog Devices AD9361/AD9364 reference design, I have loaded the image onto the FPGA of an ADI RF SOM – ADRV9361.
I'm now trying to run the 'software interface model' supplied on the same page, along with the UDP_HostPrintout model for data reception, but I'm having trouble with the UDP send/receive blocks.
Everything runs nicely with no errors and I've got a busy blinking light on Ethernet port 1 of the carrier board, but I can not get the UDP send/receive blocks to do anything – I can not view the data that is supposedly being sent and received.
I think I've got the IP addresses right – Using the default 192.168.3.2 for the board and 192.168.3.1 for the host, and according to 'netstat' the port '25000' is not already in use.
When I run the simulation and call 'netstat' in 'cmd' there are no new UDP connections appearing and there is no data showing in the Diagnostics Viewer.
Am I supposed to be using the second Ethernet port on the carrier board? If so how do I first configure that?
Otherwise is there something else that I'm missing?
I have the following toolboxes/addons installed:
MATLAB Version 9.4 (R2018a)
Simulink Version 9.1 (R2018a)
Communications System Toolbox Version 6.6 (R2018a)
DSP System Toolbox Version 9.6 (R2018a)
Embedded Coder Version 7.0 (R2018a)
Fixed-Point Designer Version 6.1 (R2018a)
HDL Coder Version 3.12 (R2018a)
HDL Verifier Version 5.4 (R2018a)
LTE HDL Toolbox Version 1.1 (R2018a)
LTE System Toolbox Version 2.6 (R2018a)
MATLAB Coder Version 4.0 (R2018a)
Phased Array System Toolbox Version 3.6 (R2018a)
RF Blockset Version 7.0 (R2018a)
RF Toolbox Version 3.4 (R2018a)
Signal Processing Toolbox Version 8.0 (R2018a)
Simulink Coder Version 8.14 (R2018a)
Stateflow Version 9.1 (R2018a)
WLAN System Toolbox Version 1.5 (R2018a)
Any help would be greatly appreciated!
Kind regards
Harry
EDIT: The receive side appears to work – when I give it an active port number listed in netstat, it sends garbled text to the Diagnostics Viewer.

Best Answer

Hi Harry,
The setup details you are providing are correct. The Ethernet port you are currently using will be fine if it is the same one that has been used during the hardware configuration at installation.
There are a few things you can try to understand what is happening:
  • The example's log file on the target will display some details about potential errors. You should see Hello World written in that file. You can read it with these commands:
>> devzynq = zynq('linux','192.168.3.2','root','root','/tmp');
>> system(devzynq, 'cat /tmp/zynqRadioHWSWQPSKAD9361AD9364SL_interface.log')
% If that was the wrong filename, you can find the right one by listing the files in the /tmp folder:
>> dir(devzynq, '/tmp')
  • We should check if the hardware is the cause of the issue. There might be no data being received.
What have you connected on the Rx and Tx ports of the RF board? A loopback cable or two antennas will ensure a good communication.
Running other examples will make sure the hardware and antennas are working. For example you can start the QPSK transmit repeat on MATLAB and then the Rx Simulink examples together to see if you receive the data correctly:
>> zynqRadioQPSKTransmitRepeatAD9361AD9364ML
>> zynqRadioQPSKRxAD9361AD9364SL
You should see the Hello World message printed out in the Diagnostic view of zynqRadioQPSKRxAD9361AD9364SL once it is running.
Let me know if that helps you getting further,
Paul