2 Replies Latest reply on Aug 23, 2012 9:21 PM by jia.decun

    fx3 DMA Error

    jia.decun

      Hello  everyone

         

       

         

      Dma transfer meet an error  when the transfer size is more than 0x300,Use CyU3PDmaChannelGetStatus to get the DMA statue and the return status is CY_U3P_DMA_ERROR.what can lead the error ,and how can I solve it

        • 1. Re: fx3 DMA Error
          rama.sai.krishna.vakkantula

          Ayi,

             

          Please change the starting piece of code in the main function as shown below, if you are using GPIF II in 32-bit mode.

             

          CyU3PIoMatrixConfig_t io_cfg;
              CyU3PReturnStatus_t status = CY_U3P_SUCCESS;
              CyU3PSysClockConfig_t clkCfg = {
                      CyTrue,
                      2, 2, 2,
                      CyFalse,
                      CY_U3P_SYS_CLK
              };

              /* Initialize the device */
              status = CyU3PDeviceInit (&clkCfg);
              if (status != CY_U3P_SUCCESS)
              {
                  goto handle_fatal_error;
              }

              /* Initialize the caches. Enable instruction cache and keep data cache disabled.
               * The data cache is useful only when there is a large amount of CPU based memory
               * accesses. When used in simple cases, it can decrease performance due to large
               * number of cache flushes and cleans and also it adds to the complexity of the
               * code. */

             

          Let me know the result after doing this modification.

             

          Thanks,

             

          sai kirshna.

          • 2. Re: fx3 DMA Error
            jia.decun

             Hello RSKV

               

             

               

            Thank you very much,The problem has been solved with your suggestion.The issue confused me a week.I am so hanppy the moment of solved the problem. I have notivecd the clock (status = CyU3PDeviceInit (NULL);)last week ,I know you add a parameter in the CyU3PSysClockConfig_t from SDK V1.1.1 , I also went to configure the CyU3PSysClockConfig_t to replease the NULL.But I failed ,becouse I don't know how to configure the other parameter expected setSysClk400 and all the examples are configuration with NULL.So I thought the NULL is the corrected configuration.So I suggest you add the configuration infomation in the examples  with the new release SDK ,maybe others will meet the same issue. 

               

             

               

            Thanks

               

            Best regards