3 Replies Latest reply on Oct 27, 2014 9:33 AM by user_78878863

    DeltaSigma->FIR->IRQ works with interrupts, while DeltaSigma->DMA->FIR->IRQ  doesn't

    stephan.laska

      Hi,

         

      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[0] = CyDmaTdAllocate();
      CyDmaTdSetConfiguration(DMA_TD[0], 3, DMA_TD[0], 0);
      CyDmaTdSetAddress(DMA_TD[0], LO16((uint32)ADC_DEC_SAMP_PTR), LO16((uint32)Filter_STAGEB_PTR));
      CyDmaChSetInitialTd(DMA_Chan, DMA_TD[0]);
      CyDmaChEnable(DMA_Chan, 1);
       

         

      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