Post Go back to editing

Ask for help on how to log Rx data with AD9371 EVB and ZC706 on Windows

I use AD9371 EVB and ZC706 on Windows
 1) AD9371 initial setting
 2) Log Rx data to txt file
I want to create a program that can do both of the above.

I will use the SD card for TES delivered with the AD9371 EVB.

In my opinion, I can use the DLL file provided by TES (GUI).

Can I get the documentation for the DLL file?

I look forward to your help.

thank you.

Parents
  • You can get the DLL help file from the help tab in TES GUI.

    From Tools tab in the GUI , you can create the full initialization script in iron python format.

    Attached is the RX capture script in python format.

    ########################
    #ADI Demo Python Script
    ########################
    #Gui Version:2.0.68	DLL Version:1.5.2.3566	Fpga Version:46000200 ArmVersion: 5.2.2
    
    #Import Reference to the DLL
    import System
    from System import Array
    from System import Int16
    from System import UInt32
    from System import Byte
    from System import SByte
    import time
    import clr
    clr.AddReferenceToFileAndPath("C:\\Program Files (x86)\\Analog Devices\\AD9371 Transceiver Evaluation Software\\AdiCmdServerClient.dll")
    from AdiCmdServerClient import AdiCommandServerClient
    from AdiCmdServerClient import Enums
    from AdiCmdServerClient import MykDpdConfig
    from AdiCmdServerClient import MykClgcConfig
    from AdiCmdServerClient import MykVswrConfig
    from AdiCmdServerClient import TddFsmParameters_us
    from AdiCmdServerClient import MykonosProfileData
    from AdiCmdServerClient.AD9528 import AD9528Settings
    
    #Create an Instance of the Class
    Link = AdiCommandServerClient.Instance
    Mykonos = AdiCommandServerClient.Instance.Mykonos
    FpgaMykonos = AdiCommandServerClient.Instance.FpgaMykonos
    
    #Connect to the Zynq Platform
    #Connect to the Zynq Platform
    if(Link.hw.Connected == 1):
        Connect = 1
    else:
    	Connect = 0
    	Link.hw.Connect("192.168.1.10", 55555)
       
    
    Link.Mykonos.radioOff()
    Link.Mykonos.setRfPllFrequency(Mykonos.PLLNAME.RX_PLL,2400000000)
    Link.Mykonos.radioOn()
    Link.FpgaMykonos.enableRxDataPaths(Link.FpgaMykonos.RX_DATAPATH.DISABLE)
    Link.FpgaMykonos.setRxCaptureSamples(FpgaMykonos.RXCAPTURE.RX1_DM , 122880)
    Link.FpgaMykonos.setRxTrigger(FpgaMykonos.RXTRIGGER.IMMEDIATE)
    print("capture started")
    
    Link.FpgaMykonos.enableRxDataPaths(Link.FpgaMykonos.RX_DATAPATH.RX1_RX2)
    Link.FpgaMykonos.CaptureRxData()	
    Link.FpgaMykonos.waitRxCapture(1000)
    rx_data = Link.readRam(Enums.FPGA_CHANNEL.RX1,0,122880)
    #orx2_data = Link.readRam(Enums.FPGA_CHANNEL.RX2,0,8000000)
    Link.FpgaMykonos.enableRxDataPaths(Link.FpgaMykonos.RX_DATAPATH.DISABLE)
    
    print("capture complet")
    fid = open('C:/Users/sroy/Desktop/rx1_data.txt','w')
       
    j=0
    for i in range(len(rx_data)/2):
        rx_i = str(rx_data[j])
        rx_q = str(rx_data[j+1])
        fid.write(rx_i+"\t"+rx_q+"\n")
        j=j+2
    fid.close()
    #Read the Version
    print Link.version()
    
    #Disconnect from the Zynq Platform
    if(Connect == 0):
        Link.hw.Disconnect()

Reply
  • You can get the DLL help file from the help tab in TES GUI.

    From Tools tab in the GUI , you can create the full initialization script in iron python format.

    Attached is the RX capture script in python format.

    ########################
    #ADI Demo Python Script
    ########################
    #Gui Version:2.0.68	DLL Version:1.5.2.3566	Fpga Version:46000200 ArmVersion: 5.2.2
    
    #Import Reference to the DLL
    import System
    from System import Array
    from System import Int16
    from System import UInt32
    from System import Byte
    from System import SByte
    import time
    import clr
    clr.AddReferenceToFileAndPath("C:\\Program Files (x86)\\Analog Devices\\AD9371 Transceiver Evaluation Software\\AdiCmdServerClient.dll")
    from AdiCmdServerClient import AdiCommandServerClient
    from AdiCmdServerClient import Enums
    from AdiCmdServerClient import MykDpdConfig
    from AdiCmdServerClient import MykClgcConfig
    from AdiCmdServerClient import MykVswrConfig
    from AdiCmdServerClient import TddFsmParameters_us
    from AdiCmdServerClient import MykonosProfileData
    from AdiCmdServerClient.AD9528 import AD9528Settings
    
    #Create an Instance of the Class
    Link = AdiCommandServerClient.Instance
    Mykonos = AdiCommandServerClient.Instance.Mykonos
    FpgaMykonos = AdiCommandServerClient.Instance.FpgaMykonos
    
    #Connect to the Zynq Platform
    #Connect to the Zynq Platform
    if(Link.hw.Connected == 1):
        Connect = 1
    else:
    	Connect = 0
    	Link.hw.Connect("192.168.1.10", 55555)
       
    
    Link.Mykonos.radioOff()
    Link.Mykonos.setRfPllFrequency(Mykonos.PLLNAME.RX_PLL,2400000000)
    Link.Mykonos.radioOn()
    Link.FpgaMykonos.enableRxDataPaths(Link.FpgaMykonos.RX_DATAPATH.DISABLE)
    Link.FpgaMykonos.setRxCaptureSamples(FpgaMykonos.RXCAPTURE.RX1_DM , 122880)
    Link.FpgaMykonos.setRxTrigger(FpgaMykonos.RXTRIGGER.IMMEDIATE)
    print("capture started")
    
    Link.FpgaMykonos.enableRxDataPaths(Link.FpgaMykonos.RX_DATAPATH.RX1_RX2)
    Link.FpgaMykonos.CaptureRxData()	
    Link.FpgaMykonos.waitRxCapture(1000)
    rx_data = Link.readRam(Enums.FPGA_CHANNEL.RX1,0,122880)
    #orx2_data = Link.readRam(Enums.FPGA_CHANNEL.RX2,0,8000000)
    Link.FpgaMykonos.enableRxDataPaths(Link.FpgaMykonos.RX_DATAPATH.DISABLE)
    
    print("capture complet")
    fid = open('C:/Users/sroy/Desktop/rx1_data.txt','w')
       
    j=0
    for i in range(len(rx_data)/2):
        rx_i = str(rx_data[j])
        rx_q = str(rx_data[j+1])
        fid.write(rx_i+"\t"+rx_q+"\n")
        j=j+2
    fid.close()
    #Read the Version
    print Link.version()
    
    #Disconnect from the Zynq Platform
    if(Connect == 0):
        Link.hw.Disconnect()

Children
No Data