I ‘m successful using FMCOMMS1 to capture signal form a signal generator that feed into RF in and pass through this signal to RF out and then connected to spectrum analyser.
In main.c , I called this function
Then in test.c , I do some modification to add this following code..
adc_capture(fmcSel, sample, DDR_BASEADDR);
for(index = 0; index < sample; index ++)
rdata = Xil_In32(DDR_BASEADDR+(index*4));
data_i = rdata & 0xFFFF;
data_q = (rdata >> 16) & 0xFFFF;
tx_count = sizeof(mydata_i) / sizeof(uint16_t);
//*******************send data to DAC********************
for(index = 0; index < tx_count; index ++)
data_i = (mydata_i[index] << 16);
data_q = (mydata_q[index] << 0);
Xil_Out32(DDRDAC_BASEADDR + index * 4, data_i | data_q );
Then I connect RF cable from external signal generator to RF in FMCOMMS1 and another RF cable from RF out to spectrum analyzer. In Signal generator I setting up the fc 2.4Ghz with -10dbm.
From chipscope I can see perfect adc as shown in figure below.
However in dac, I see the waveform seems incomplete cycle or some cylce are missing as shown in following figure.
As a result the output from spectrum analyzer shows a lot of unwanted frequency.
My question, how can I eliminate this phenomenon? Its is because of synchronization issue? Any C code should be redefine ?
Pls advice. Thank You