2 Replies Latest reply on Sep 12, 2015 3:53 AM by JoMe_264151

    Terminating DMA

    jofic_334026

      I'm using the PSoC 5LP to overlay pixels on a 8-bit parallel (BT.656) video stream. I need to synchronize my DMA with the vertical sync signal embedded in the video stream.  I'm using one DMA channel with four TD's.  What is the proper way to reset the entire chain?  Currently, I have the vertical sync signal generating an interrupt.  Here is the ISR:

         

      CY_ISR(SYNC_ISR)

         

      {

         

           CyDmaChSetRequest(DMA1_Chan, CY_DMA_CPU_TERM_CHAIN);   // Terminate the entire chain of TD's

         

           while(CyDmaChGetRequest(DMA1_Chan));                                               // Wait for the request to be processed.

         

           CyDmaChEnable(DMA1_Chan, 1);                                                              // Re-enable the DMA channel.

         

      }