AnsweredAssumed Answered

AD-FMCOMMS1-EBZ  No OS Reference design - Pausing ADC Capture

Question asked by DrTom on Feb 17, 2013
Latest reply on Feb 19, 2013 by ACozma

Working with the No OS Ref Design for the AD-FMCOMMS1-EBZ and the ML605 board, how do you pause the ADC capture/DMA transfer?

If you only call the adc_capture() function once instead of the while(1){} loop like is in the NO Ref Design, the Chipscope still displays live data coming into the receiver, it doesn't stop acquisition even though you have said capture 1024 samples. I have tried creating a adc_pause() routine that is shown below but it doesn't pause or stop anything.

Thanks...Tom

 

main()

{...

adc_capture(fmcSel, 1024, DDR_BASEADDR);      //Start the ADC-DMA transfer, Chipscope shows this working.

adc_capture_pause(fmcSel);                                   //Calls function to pause sampling-transfer --- DOESN'T WORK

}

 

 

void adc_capture_pause(uint32_t sel)

{//This is an attempt to pause the ADC-DMA transfer, but it doesn't pause.....

    uint32_t baddr;

    baddr = (sel == IICSEL_B1HPC) ? DMA9643_1_BASEADDR : DMA9643_0_BASEADDR;

    Xil_Out32((baddr + 0x030), 0); // clear dma operations

    baddr = (sel == IICSEL_B1HPC) ? CFAD9643_1_BASEADDR : CFAD9643_0_BASEADDR;

    Xil_Out32((baddr + 0x00c), 0x0); // capture disable

 

}

Outcomes