AnsweredAssumed Answered

adc_capture to local memory

Question asked by a55moham on Sep 8, 2016
Latest reply on Sep 9, 2016 by a55moham

Hi,

 

After using adc_capture, I want to make processing on one of the receiver chains of fmcomms5/zc702, then I want to capture other samples using adc_capture again. The  problem is that I found that some samples in the second capture are corrupted.

What I am suspecting is a function that transfer bytes from the DDR to a local memory. The functions is as follows.

 

int16_t sampleI[40000]={0};
int16_t sampleQ[40000]={0};

uint32_t temp[40000*4] ;

 

 

int size = 40000;

memcpy( temp, ADC_DDR_BASEADDR, size*4);

for (i=0;i<size*4;i+=4)
{

ii = (i>>2) ;
i1 = i+1;
sampleQ[ii] = (int16_t)(temp[i1]& 0xFFFF);
sampleI[ii] = (int16_t)((temp[i1] >> 16) & 0xFFFF);
}

 

I found that most of the samples in the second capture are corrupted when I do not do memcpy and when I do it 2 or 3 samples are corrupted. 

 

Do you have explanation to this?

 

Best Regards,

Ahmed

Outcomes