DeltaSigma->FIR->IRQ works with interrupts, while DeltaSigma->DMA->FIR->IRQ doesn't | Cypress Semiconductor
DeltaSigma->FIR->IRQ works with interrupts, while DeltaSigma->DMA->FIR->IRQ doesn't
I am having problems getting the DMA to work.
My setup has the Delta Sigma to set to output 20bits. I use the Delta Sigma irq to transfer the ADC result to the FIR channel A. An IRQ atttached to the FIR triggers obtaining the results. This works fine.
I attached a DMA to the eoc of the delta sigma. and set the DMA to transfer the ADC result to filter B FIR.
The DMA setup is:
#define DMA_BYTES_PER_BURST 3
#define DMA_REQUEST_PER_BURST 1
#define DMA_SRC_BASE (CYDEV_PERIPH_BASE)
#define DMA_DST_BASE (CYDEV_PERIPH_BASE)
DMA_Chan = DMA_DmaInitialize(DMA_BYTES_PER_BURST, DMA_REQUEST_PER_BURST, HI16(DMA_SRC_BASE), HI16(DMA_DST_BASE));
DMA_TD = CyDmaTdAllocate();
CyDmaTdSetConfiguration(DMA_TD, 3, DMA_TD, 0);
CyDmaTdSetAddress(DMA_TD, LO16((uint32)ADC_DEC_SAMP_PTR), LO16((uint32)Filter_STAGEB_PTR));
I can't seem to get the DMA to transfer anything from the ADC to the filter.
I've been at this for a while, and can't seem to find anything that resolves my issue