Post Go back to editing

How to send waveform file with IronPython in ADRV9375-PCB/Z + Xilinx ZC706?

I used ADRV9375-W/PCBZ + Xilinx ZC706, connected ObsRx to Tx1, then tried to send LTE_DL_30p72_20M_TM3p1_122.88rate.txt waveform file to Tx1 and check the ObsDataPlot in TES.

1) First, I loaded the waveform file with TES, and got TxDataPlot and ObsDataPlot which looks correct;

2) Then, I loaded the waveform file with IronPython, and got ObsDataPlot which doesn't look like it worked.

The IronPython code is as follow, please help me to see what is wrong. Thanks a lot!

#########################################################################################
#Create an Instance of the Class
Link = AdiCommandServerClient.Instance
Mykonos = AdiCommandServerClient.Instance.Mykonos
FpgaMykonos = AdiCommandServerClient.Instance.FpgaMykonos

#Connect to the Zynq Platform
if(Link.hw.Connected == 1):
    Connect = 1
else:
    Connect = 0
    Link.hw.Connect('192.168.1.10', 55555)


############################################################
# check environment #
############################################################
print Link.identify()[:-2]

pllStatus = Link.Mykonos.checkPllsLockStatus()
if not (pllStatus & 0x01):
    print 'Error pllStatus = ', hex(pllStatus)

print 'Radio State = ', hex(Link.Mykonos.getRadioState(0))

print 'TX PLL Frequency = ', Link.Mykonos.getRfPllFrequency(Link.Mykonos.PLLNAME.TX_PLL, 0), 'Hz'
print 'RX PLL Frequency = ', Link.Mykonos.getRfPllFrequency(Link.Mykonos.PLLNAME.RX_PLL, 0), 'Hz'


############################################################
# Radio Off #
############################################################
#Link.Mykonos.radioOff()
#print 'Radio State = ', hex(Link.Mykonos.getRadioState(0))

############################################################
# get transimtting data from file #
############################################################
fid = open('LTE_DL_30p72_20M_TM3p1_122.88rate.txt', 'r')
fcontent = fid.read()
fid.close()

tx1Datalist = []
lines = fcontent.split('\n')
for i in range(len(lines)):
    iq = lines[i].split('\t')
    if len(iq) == 2:
        tx1Datalist.append(int(iq[0]))
        tx1Datalist.append(int(iq[1]))
tx1Data = Array[Int16](tx1Datalist)
print run_index, '# Samples: ', tx1Data.Length

############################################################
# Start TX data #
############################################################
Link.FpgaMykonos.stopTxData() # blocks until FPGA shuts down Tx data mover
Link.FpgaMykonos.enableTxDataPaths(Link.FpgaMykonos.TX_DATAPATH.DISABLE)
Link.FpgaMykonos.setTxTrigger(Link.FpgaMykonos.TXTRIGGER.IMMEDIATE)

Link.hw.ReceiveTimeout = 0 # debug only, Disable TCPIP timeout
Link.writeRam(Enums.FPGA_CHANNEL.TX1, 0, tx1Data)
Link.FpgaMykonos.setTxTransmitMode(1) # continuous Transmit = 1
Link.FpgaMykonos.setTxTransmitSamples(Link.FpgaMykonos.TXBUFFER.TX1_DM, tx1Data.Length)

print run_index, 'transmit started'
Link.FpgaMykonos.startTxData() # Start FPGA Tx data
Link.FpgaMykonos.enableTxDataPaths(Link.FpgaMykonos.TX_DATAPATH.TX1)

############################################################
# Radio On #
############################################################
#Link.Mykonos.radioOn()
#print 'Radio State = ', hex(Link.Mykonos.getRadioState(0))


#Disconnect from the Zynq Platform
if(Connect == 0):
    Link.hw.Disconnect()
########################################################################################

TxDataPlot in Step 1:

ObsDataPlot in Step 1:

ObsDataPlot in Step 2: