AnsweredAssumed Answered

ad-fmcomms2-ebz+zed ADC data peak is strange 

Question asked by LI1234 on Oct 15, 2016
Latest reply on Nov 3, 2016 by DragosB

Hi everyone,

   I use ad-fmcomms2-ebz+zedboard. I transmit custom data via DMA. The custom data waveform is data_i and data_q:

the I/Q data array contain 1536 points that make up of LFM and 1536 zeros. I store them in the DDR like the sine of example project. Then I use adc_capture function to get the sample like no-OS example project. I change points of capture. I set capture data number 100*1536* 2 and I also change the capture.tcl. when I change capture.tcl, I find it can't capture so much, so i make capture.tcl is:

set currentWorkingDirectory [pwd]
set bitFileName "/system_top.bit"
set tclFileName "/ps7_init.tcl"
set elfFileName "/capture.elf"


set bitFilePath $currentWorkingDirectory$bitFileName
set tclFilePath $currentWorkingDirectory$tclFileName
set elfFilePath $currentWorkingDirectory$elfFileName


fpga -debugdevice devicenr 2 -f $bitFilePath
connect arm hw
rst -processor
source $tclFilePath
dow $elfFilePath


puts "Capturing data..."


after 5000


set startAddress 8388608


for {set cnt 1} {$cnt < 81} {incr cnt 1} {
puts "Moving data into rx.csv file..."
set readData [mrd $startAddress 30720]


set fp [ open rx.csv a ]
for {set index 1} {$index < 61440} {incr index 4} {
    set data [lindex $readData $index]
    set intData [expr 0x$data] 
    set sampleQ1 [expr {$intData & 0xFFFF}]
    set sampleI1 [expr {($intData >> 16) & 0xFFFF}] 
    set data [lindex $readData [expr {$index + 2}]]
    set intData [expr 0x$data]
    set sampleQ2 [expr {$intData & 0xFFFF}]
    set sampleI2 [expr {($intData >> 16) & 0xFFFF}] 
    set line $sampleI1,$sampleQ1,$sampleI2,$sampleQ2
    puts $fp $line
close $fp
incr startAddress 122880

puts "Done."

disconnect 64


Is that ture? if yes, i got the 4 kinds of samples for I1,Q1,I2,Q2. Because I only use I1 and Q1, I only give the I1 and Q1 waveform. They are ADC_data_I.png and ADC_data_Q.png by matlab. They are like my send data. But when I make them close with each other, I find data of I chain is strange in ADC_data_I100.png and their peak is not the same while data of Q in ADC_data_Q100.png is the same. I sample the data in many times and get diffrent result, for eample ADC_data_I100(1).png. Could you anyone tell me reason?

Thank you!